UsTK : Ultrasound ToolKit  version 2.0.1 under development (2023-12-07)
usNetworkGrabberRF3D.h
1 /****************************************************************************
2  *
3  * This file is part of the ustk software.
4  * Copyright (C) 2016 - 2017 by Inria. All rights reserved.
5  *
6  * This software is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * ("GPL") version 2 as published by the Free Software Foundation.
9  * See the file LICENSE.txt at the root directory of this source
10  * distribution for additional information about the GNU GPL.
11  *
12  * For using ustk with software that can not be combined with the GNU
13  * GPL, please contact Inria about acquiring a ViSP Professional
14  * Edition License.
15  *
16  * This software was developed at:
17  * Inria Rennes - Bretagne Atlantique
18  * Campus Universitaire de Beaulieu
19  * 35042 Rennes Cedex
20  * France
21  *
22  * If you have questions regarding the use of this file, please contact
23  * Inria at ustk@inria.fr
24  *
25  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
26  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27  *
28  * Authors:
29  * Marc Pouliquen
30  *
31  *****************************************************************************/
32 
38 #ifndef __usNetworkGrabberRF3D_h_
39 #define __usNetworkGrabberRF3D_h_
40 
41 #include <visp3/ustk_core/usConfig.h>
42 
43 #if defined(USTK_HAVE_QT5) || defined(USTK_HAVE_VTK_QT)
44 
45 #include <vector>
46 
47 #include <visp3/ustk_core/usImageRF2D.h>
48 #include <visp3/ustk_core/usImageRF3D.h>
49 #include <visp3/ustk_core/usMHDSequenceWriter.h>
50 #include <visp3/ustk_grabber/usFrameGrabbedInfo.h>
51 #include <visp3/ustk_grabber/usNetworkGrabber.h>
52 #include <visp3/ustk_grabber/usVolumeGrabbedInfo.h>
53 
70 class VISP_EXPORT usNetworkGrabberRF3D : public usNetworkGrabber
71 {
72  Q_OBJECT
73 public:
74  explicit usNetworkGrabberRF3D(usNetworkGrabber *parent = 0);
76 
77  void activateRecording(std::string path);
78 
80 
81  void dataArrived();
82 
83  bool isFirstFrameAvailable() { return m_firstFrameAvailable; }
84 
85  void setVolumeField(usVolumeField volumeField);
86 
87  void stopRecording();
88 
89 signals:
91 
92 protected:
93  void includeFrameInVolume();
94 
95 private:
96  // grabbed image (we have to "turn" it if it is a pre-scan frame):
97  // the rows and cols have to be interverted, it is not a valid image to use.
99 
100  // to keep saved motor settings from one frame to next one
101  usMotorSettings m_motorSettings;
102 
103  // Output images: we have to invert (i <-> j) in the image grabbed
104  std::vector<usVolumeGrabbedInfo<usImageRF3D<short int> > *> m_outputBuffer;
105  bool m_firstFrameAvailable;
106  bool m_firstVolumeAvailable;
107 
108  // to manage the recording process
109  bool m_recordingOn;
110  usMHDSequenceWriter m_sequenceWriter;
111  uint64_t m_firstImageTimestamp;
112 
113  // volume selection
114  usNetworkGrabber::usVolumeField m_volumeField;
115 };
116 
117 #endif // QT4 || QT5
118 #endif // __usNetworkGrabberRF3D_h_
Class to store additionnal informations arriving on the network with ultrasound images grabbed,...
Writer for a sequence of images stored as mhd/raw files in a directory Image filenames are set based ...
Generic class for 3D ultrasound motor settings associated to the 3D probe used during acquisition.
Specific class to grab RF volumes from the ultrasound station on the network.
Generic abstract class to manage tcp connection to grab ultrasound frames (on port 8080).
virtual void dataArrived()=0
Class to store additionnal informations arriving on the network with ultrasound volumes grabbed,...