18 #ifndef __igstkAscension3DGTracker_h
19 #define __igstkAscension3DGTracker_h
175 virtual void PrintSelf( std::ostream& os, ::itk::Indent indent )
const;
180 void operator=(
const Self&);
186 Ascension3DGTrackerToolConstPointer;
190 void EnableToolPorts(
void );
193 void DisableToolPorts(
void );
197 int CheckAPIReturnStatus(
int status);
200 unsigned int m_NumberOfTools;
202 enum {TRANSMITTER_OFF = -1};
205 itk::MutexLock::Pointer m_BufferLock;
207 typedef std::map< std::string, std::vector < double > >
208 TrackerToolTransformContainerType;
210 TrackerToolTransformContainerType m_ToolTransformBuffer;
212 typedef std::map< unsigned int, std::string> ErrorCodeContainerType;
214 static ErrorCodeContainerType m_ErrorCodeContainer;
216 enum ToolAvailabilityStatus {TOOL_UNAVAILABLE, TOOL_AVAILABLE};
218 std::map< std::string, ToolAvailabilityStatus > m_ToolStatusContainer;
221 static unsigned short ConvertToolNameToSensorID(
const std::string &name);
223 static std::string ConvertSensorIDToToolName(
unsigned short id);
232 std::vector<bool> m_SensorSaturated;
233 std::vector<bool> m_SensorAttached;
234 std::vector<bool> m_SensorInMotionBox;
235 bool m_TransmitterAttached;
238 void InvokeSensorToolEvent(std::string sensorName,
int sensorID,
242 void NoProcessing(){};
244 void ReportSensorSaturationProcessing();
245 void ReportSensorAttachedProcessing();
246 void ReportTransmitterAttachedProcessing();
247 void ReportSensorInMotionBoxProcessing();
253 igstkDeclareStateMacro(Idle);
254 igstkDeclareStateMacro(Initialized);
255 igstkDeclareStateMacro(AttemptingToGetSaturation);
256 igstkDeclareStateMacro(AttemptingToGetSensorAttached);
257 igstkDeclareStateMacro(AttemptingToGetTransmitterAttached);
258 igstkDeclareStateMacro(AttemptingToGetSensorInMotionBox);
261 igstkDeclareInputMacro(Initialize);
262 igstkDeclareInputMacro(GetSensorSaturation);
263 igstkDeclareInputMacro(GetSensorAttached);
264 igstkDeclareInputMacro(GetTransmitterAttached);
265 igstkDeclareInputMacro(GetSensorInMotionBox);
270 #endif //__igstk_Ascension3DGTracker_h_
void RequestSensorSaturated(int sensorID)
Request whether the particular sensor (0 based), is too close to the magnetic transmitter and is satu...
#define igstkGetMacro(name, type)
Get built-in type.
virtual ~Ascension3DGTracker(void)
Base class for all the IGSTK classes.
virtual ResultType RemoveTrackerToolFromInternalDataContainers(const TrackerToolType *trackerTool)
Remove tracker tool from internal containers.
void RequestSensorInMotionBox(int sensorID)
Request whether the particular sensor (0 based), is outside of the tracking motion box...
virtual ResultType AddTrackerToolToInternalDataContainers(const TrackerToolType *trackerTool)
Add tracker tool entry from internal containers.
igstkStandardClassTraitsMacro(Ascension3DGTracker, Tracker) virtual unsigned int GetNumberOfTools()
Macro with standard traits declarations.
virtual ResultType InternalOpen(void)
Open communication with the tracking device.
Structure holding the Ascension 3DG error type.
void RequestTransmitterAttached()
Request whether a transmitter, is attached.
virtual ResultType InternalStopTracking(void)
Take the tracking device out of tracking mode.
virtual void PrintSelf(std::ostream &os,::itk::Indent indent) const
Print object information.
virtual ResultType InternalThreadedUpdateStatus(void)
Update the status and the transforms.
virtual ResultType InternalUpdateStatus(void)
Update the status and the transforms for all TrackerTools.
::itk::SmartPointer< Self > Pointer
Tracker::ResultType ResultType
typedef for internal boolean return type
Ascension3DGTracker(void)
protected constructor
virtual ResultType InternalClose(void)
Close communication with the tracking device.
Abstract superclass for concrete IGSTK Tracker classes.
void RequestSensorAttached(int sensorID)
Request whether the particular sensor (0 based), is attached.
EventHelperType::StringType ErrorString
String describing the error, as returned from the Ascension tracker.
virtual ResultType InternalReset(void)
Reset the tracking device to put it back to its original state.
igstkStandardAbstractClassTraitsMacro(Tracker, Object) public typedef TrackerTool TrackerToolType
Macro with standard traits declarations.
int AscensionErrorCode
Error code returned from the tracker.
::itk::SmartPointer< const Self > ConstPointer
virtual ResultType InternalStartTracking(void)
Put the tracking device into tracking mode.
igstkLoadedEventMacro(Ascension3DGErrorEvent, IGSTKErrorEvent, Ascension3DGEventErrorType)
virtual ResultType VerifyTrackerToolInformation(const TrackerToolType *trackerTool)
Verify tracker tool information.
virtual ResultType ValidateSpecifiedFrequency(double frequencyInHz)
Verify the specified tracker measurement frequency.
Provides support for the Ascension 3D Guidance trackers.