PlusLib  2.9.0
Software library for tracked ultrasound image acquisition, calibration, and processing.
vtkPlusClariusOEM.h
Go to the documentation of this file.
1 /*=Plus=header=begin======================================================
2  Program: Plus
3  Copyright (c) Verdure Imaging Inc, Stockton, California. All rights reserved.
4  See License.txt for details.
5 
6  We would like to acknowledge Verdure Imaging Inc for generously open-sourcing
7  this support for the Clarius OEM interface to the PLUS & Slicer communities.
8 =========================================================Plus=header=end*/
9 
10 #ifndef _VTKPLUSCLARIUSOEM_H
11 #define _VTKPLUSCLARIUSOEM_H
12 
13 // Local includes
14 #include "vtkPlusDataCollectionExport.h"
15 #include "vtkPlusUsDevice.h"
16 
17 // STL includes
18 #include <vector>
19 
27 class vtkPlusDataCollectionExport vtkPlusClariusOEM : public vtkPlusUsDevice
28 {
29 public:
31  static vtkPlusClariusOEM* New();
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33 
36  PlusStatus Probe() override;
37 
39  std::string GetSdkVersion() override;
40  bool IsTracker() const override { return true; };
41  bool IsVirtual() const override { return false; };
42 
43  static const std::string OVERLAY_PORT_NAME;
44 
45 public:
46 
48  PlusStatus ReadConfiguration(vtkXMLDataElement* config) override;
49 
51  PlusStatus WriteConfiguration(vtkXMLDataElement* config) override;
52 
59  PlusStatus NotifyConfigured() override;
60 
62  static vtkPlusClariusOEM* GetInstance();
63 
64  PlusStatus InternalUpdate() override;
65 
66  PlusStatus UpdateProbeStatus();
67 
68 protected:
71 
72 protected:
73 
75  PlusStatus InitializeBLE();
76 
78  PlusStatus InitializeProbe();
79 
81  PlusStatus InitializeWifi();
82 
84  PlusStatus InitializeOEM();
85 
87  PlusStatus SetClariusCert();
88 
90  PlusStatus ConfigureProbeApplication();
91 
93  PlusStatus SetInitialUsParams();
94 
96  PlusStatus InternalConnect() override;
97 
99  void DeInitializeOEM();
100 
102  void DeInitializeWifi();
103 
105  void DeInitializeProbe();
106 
108  void DeInitializeBLE();
109 
111  PlusStatus InternalDisconnect() override;
112 
115 
118 
121 
122 public:
123 
124  // US parameters API
125 
127  PlusStatus GetDepthMm(double& aDepthMm);
129  PlusStatus SetDepthMm(double aDepthMm);
130 
132  PlusStatus GetGainPercent(double& aGainPercent);
134  PlusStatus SetGainPercent(double aGainPercent);
135 
137  PlusStatus GetDynRangePercent(double& aDynamicRangePercent);
139  PlusStatus SetDynRangePercent(double aDynamicRangePercent);
140 
142  PlusStatus GetTimeGainCompensationDb(std::vector<double>& aTGC);
144  PlusStatus SetTimeGainCompensationDb(const std::vector<double>& aTGC);
145 
147  PlusStatus SetEnableAutoFocus(bool aEnableAutoFocus);
149  PlusStatus GetEnableAutoFocus(bool& aEnableAutoFocus);
150 
152  PlusStatus SetEnableAutoGain(bool aEnableAutoGain);
154  PlusStatus GetEnableAutoGain(bool& aEnableAutoGain);
155 
157  PlusStatus SetEnablePenetrationMode(bool aEnablePenetrationMode);
159  PlusStatus GetEnablePenetrationMode(bool& aEnablePenetrationMode);
160 
162  PlusStatus GetFocusDepthPercent(double& aFocusDepthPercent);
164  PlusStatus SetFocusDepthPercent(double aFocusDepthPercent);
165 
167  double ConvertDepthCmToPercent(double aFocusDepthMm);
169  double ConvertDepthPercentToCm(double aFocusDepthPercent);
170 
171  PlusStatus UpdateFrameSize();
172 
173 private:
174 
175  static vtkPlusClariusOEM* instance;
176 
177  class vtkInternal;
178  vtkInternal* Internal;
179 };
180 
181 #endif
virtual PlusStatus InternalStopRecording()
bool IsTracker() const override
virtual PlusStatus InternalConnect()
igsioStatus PlusStatus
Definition: PlusCommon.h:40
virtual std::string GetSdkVersion()
virtual PlusStatus Probe()
virtual PlusStatus WriteConfiguration(vtkXMLDataElement *)
virtual void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
virtual PlusStatus InternalStartRecording()
static vtkPlusUsDevice * New()
virtual PlusStatus ReadConfiguration(vtkXMLDataElement *)
virtual PlusStatus InternalApplyImagingParameterChange()
virtual PlusStatus NotifyConfigured()
virtual PlusStatus InternalDisconnect()
Abstract interface for ultrasound video devices.
virtual bool IsVirtual() const
virtual PlusStatus InternalUpdate()
Interface to Clarius Ultrasound Devices This class talks with a Clarius US Scanner over the Clarius O...