17 #ifndef MITKUSDevice_H_HEADER_INCLUDED_
18 #define MITKUSDevice_H_HEADER_INCLUDED_
25 #include <MitkUSExports.h>
40 #include <itkObjectFactory.h>
41 #include <itkConditionVariable.h>
52 template<
class T>
class SmartPointer;
56 class USAbstractControlInterface;
57 class USControlInterfaceBMode;
58 class USControlInterfaceProbes;
59 class USControlInterfaceDoppler;
120 : US_INTERFACE_NAME(
"org.mitk.services.UltrasoundDevice"),
121 US_PROPKEY_MANUFACTURER(US_INTERFACE_NAME +
".manufacturer"),
122 US_PROPKEY_NAME(US_INTERFACE_NAME +
".name"),
123 US_PROPKEY_COMMENT(US_INTERFACE_NAME +
".comment"),
124 US_PROPKEY_LABEL(US_INTERFACE_NAME +
".label"),
125 US_PROPKEY_ISCONNECTED(US_INTERFACE_NAME +
".isConnected"),
126 US_PROPKEY_ISACTIVE(US_INTERFACE_NAME +
".isActive"),
127 US_PROPKEY_CLASS(US_INTERFACE_NAME +
".class"),
128 US_PROPKEY_PROBES_SELECTED(US_INTERFACE_NAME +
".probes.selected"),
129 US_PROPKEY_BMODE_FREQUENCY(US_INTERFACE_NAME +
".bmode.frequency"),
130 US_PROPKEY_BMODE_POWER(US_INTERFACE_NAME +
".bmode.power"),
131 US_PROPKEY_BMODE_DEPTH(US_INTERFACE_NAME +
".bmode.depth"),
132 US_PROPKEY_BMODE_GAIN(US_INTERFACE_NAME +
".bmode.gain"),
133 US_PROPKEY_BMODE_REJECTION(US_INTERFACE_NAME +
".bmode.rejection"),
134 US_PROPKEY_BMODE_DYNAMIC_RANGE(US_INTERFACE_NAME +
".bmode.dynamicRange")
207 void ConnectAsynchron();
233 virtual
void SetIsFreezed(
bool freeze);
238 virtual
bool GetIsFreezed();
248 void ProbeChanged(
std::
string probename);
254 void DepthChanged(
double depth);
262 void UpdateServiceProperty(
std::
string key,
std::
string value);
263 void UpdateServiceProperty(
std::
string key,
double value);
264 void UpdateServiceProperty(
std::
string key,
bool value);
271 virtual
std::
string GetDeviceClass() = 0;
276 bool GetIsInitialized();
287 bool GetIsConnected();
302 itkGetMacro(Manufacturer,
std::
string);
303 itkGetMacro(Name,
std::
string);
304 itkGetMacro(Comment,
std::
string);
306 void SetManufacturer(
std::
string manufacturer);
307 void SetName(
std::
string name);
308 void SetComment(
std::
string comment);
317 itkSetMacro(SpawnAcquireThread,
bool);
318 itkGetMacro(SpawnAcquireThread,
bool);
320 static ITK_THREAD_RETURN_TYPE Acquire(
void* pInfoStruct);
321 static ITK_THREAD_RETURN_TYPE ConnectThread(
void* pInfoStruct);
324 mitk::Image::Pointer m_OutputImage;
330 void ProvideViaOIGTL();
353 us::ServiceProperties ConstructServiceProperties();
358 void UnregisterOnService();
368 virtual
bool OnInitialization() = 0;
378 virtual
bool OnConnection() = 0;
388 virtual
bool OnDisconnection() = 0;
398 virtual
bool OnActivation() = 0;
408 virtual
bool OnDeactivation() = 0;
415 virtual
void OnFreeze(
bool) { }
420 USDevice(std::string manufacturer, std::string model);
434 virtual void GenerateData()
override;
436 std::string GetServicePropertyLabel();
440 std::string m_Manufacturer;
442 std::string m_Comment;
444 bool m_SpawnAcquireThread;
458 itk::SimpleMutexLock m_FreezeMutex;
463 bool m_UnregisteringStarted;
470 #endif // MITKUSDevice_H_HEADER_INCLUDED_
Superclass for all ultrasound device control interfaces. Defines an interface for activating and deac...
Superclass of all classes generating Images (instances of class Image) as output. ...
A device holds information about it's model, make and the connected probes. It is the common super cl...
Superclass for OpenIGTLink server.
itk::SmartPointer< Self > Pointer
Interface defining methods for probe selection of ultrasound devices. It consists of methods for gett...
const std::string US_PROPKEY_LABEL
const std::string US_INTERFACE_NAME
const std::string US_PROPKEY_BMODE_FREQUENCY
DataCollection - Class to facilitate loading/accessing structured data.
Interface defining methods for scanning mode doppler of ultrasound devices. There are no methods defi...
const std::string US_PROPKEY_ISCONNECTED
This is an abstract superclass for delivering USImages. Each subclass must implement the method mitk:...
const std::string US_PROPKEY_BMODE_POWER
const std::string US_PROPKEY_BMODE_REJECTION
const std::string US_PROPKEY_BMODE_GAIN
const std::string US_PROPKEY_CLASS
const std::string US_PROPKEY_BMODE_DEPTH
These constants are used in conjunction with Microservices. The constants aren't defined as static me...
#define mitkClassMacro(className, SuperClassName)
Image class for storing images.
const std::string US_PROPKEY_PROBES_SELECTED
Provides information/objects from a MITK-Pipeline to other OpenIGTLink devices.
This filter creates IGTL messages from mitk::Image objects.
Interface for image filters on OpenCV images.
Interface defining methods for scanning mode b of ultrasound devices. It consists of methods for scan...
const std::string US_PROPKEY_MANUFACTURER
US_UNORDERED_MAP_TYPE< std::string, Any > ServiceProperties
const std::string US_PROPKEY_ISACTIVE
const std::string US_PROPKEY_NAME
#define mitkNewMessage2Macro(msgHandleObject, type1, type2)
MITK_DECLARE_SERVICE_INTERFACE(mitk::ISimulationService,"org.mitk.ISimulationService")
const std::string US_PROPKEY_BMODE_DYNAMIC_RANGE
const std::string US_PROPKEY_COMMENT