PlusLib  2.9.0
Software library for tracked ultrasound image acquisition, calibration, and processing.
vtkPlusUSDigitalEncodersTracker.h
Go to the documentation of this file.
1 /*=Plus=header=begin======================================================
2 Program: Plus
3 Copyright (c) Laboratory for Percutaneous Surgery. All rights reserved.
4 See License.txt for details.
5 =========================================================Plus=header=end*/
6 
7 #ifndef _vtkUSDigitalA2EncodersTracker_h_
8 #define _vtkUSDigitalA2EncodersTracker_h_
9 
10 #include "vtkPlusDataCollectionExport.h"
11 #include "vtkPlusDevice.h"
12 #include "vtkIGSIOTransformRepository.h"
13 
14 #include <map>
15 
27 class vtkPlusDataCollectionExport vtkPlusUSDigitalEncodersTracker : public vtkPlusDevice
28 {
29 public:
30  static const long INVALID_SEI_ADDRESS = -1;
31 
34  void PrintSelf(ostream& os, vtkIndent indent);
35 
39 
40  bool IsTracker() const override
41  {
42  return true;
43  }
44 
47 
50 
52  virtual PlusStatus ReadConfiguration(vtkXMLDataElement* config);
53 
55  virtual PlusStatus WriteConfiguration(vtkXMLDataElement* config);
56 
61  PlusStatus Probe();
62 
69 
71  virtual PlusStatus IsStepperAlive();
72 
74  PlusStatus SetUSDigitalA2EncodersStrobeMode();
75 
77  PlusStatus SetUSDigitalA2EncodersSleep();
78 
80  PlusStatus SetUSDigitalA2EncodersWakeup();
81 
83  PlusStatus SetUSDigitalA2EncoderOriginWithID(long id);
84 
86  PlusStatus SetAllUSDigitalA2EncoderOrigin();
87 
89  PlusStatus SetUSDigitalA2EncoderModeWithID(long id, long mode);
90 
92  PlusStatus GetUSDigitalA2EncoderModeWithID(long id, long* mode);
93 
95  PlusStatus SetUSDigitalA2EncoderResoultionWithID(long id, long res);
96 
98  PlusStatus GetUSDigitalA2EncoderResoultionWithID(long id, long* res);
99 
101  PlusStatus SetUSDigitalA2EncoderPositionWithID(long id, long pos);
102 
104  PlusStatus GetUSDigitalA2EncoderPositionWithID(long id, long* pos);
105 
106 protected:
109 
115 
118 
119  class vtkPlusUSDigitalEncoderInfo;
120 
121 protected:
122  vtkSmartPointer<vtkIGSIOTransformRepository> TransformRepository
123  = vtkSmartPointer<vtkIGSIOTransformRepository>::New();
124 
125  typedef std::map<long, vtkPlusUSDigitalEncoderInfo*> EncoderInfoMapType;
127  typedef std::list<vtkPlusUSDigitalEncoderInfo> EncoderListType;
129  typedef std::map<long, long> IDtoAddressType;
131  bool coreXY = false;
132 
133 
134 public:
136  void operator=(const vtkPlusUSDigitalEncodersTracker&) = delete;
137 };
138 
139 #endif
virtual void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
virtual PlusStatus InternalStopRecording()
Abstract interface for tracker and video devices.
Definition: vtkPlusDevice.h:60
std::map< long, vtkPlusUSDigitalEncoderInfo * > EncoderInfoMapType
Phidget_MeshMode mode
Definition: phidget22.h:1332
virtual PlusStatus InternalConnect()
igsioStatus PlusStatus
Definition: PlusCommon.h:40
virtual PlusStatus Probe()
virtual PlusStatus ReadConfiguration(vtkXMLDataElement *)
virtual PlusStatus WriteConfiguration(vtkXMLDataElement *)
virtual PlusStatus InternalStartRecording()
Interface for multiple US Digital A2, A2T, A4, HBA2, HBA4 or HD25A encoders to generate pose informat...
std::list< vtkPlusUSDigitalEncoderInfo > EncoderListType
virtual PlusStatus InternalDisconnect()
virtual PlusStatus InternalUpdate()
static vtkPlusDevice * New()