14 #ifndef MITKNDITRACKINGDEVICE_H_HEADER_INCLUDED_C1C2FCD2 15 #define MITKNDITRACKINGDEVICE_H_HEADER_INCLUDED_C1C2FCD2 57 itkFactorylessNewMacro(Self);
78 bool OpenConnection()
override;
85 bool CloseConnection()
override;
88 bool InitializeWiredTools();
113 bool DiscoverWiredTools();
123 bool StartTracking()
override;
128 TrackingTool* GetTool(
unsigned int toolNumber)
const override;
134 unsigned int GetToolCount()
const override;
162 virtual void SetPortNumber(
const PortNumber _arg);
163 itkGetConstMacro(PortNumber, PortNumber);
164 virtual void SetDeviceName(std::string _arg);
165 itkGetStringMacro(DeviceName);
166 virtual void SetBaudRate(
const BaudRate _arg);
167 itkGetConstMacro(BaudRate, BaudRate);
168 virtual void SetDataBits(
const DataBits _arg);
169 itkGetConstMacro(DataBits, DataBits);
170 virtual void SetParity(
const Parity _arg);
171 itkGetConstMacro(Parity, Parity);
172 virtual void SetStopBits(
const StopBits _arg);
173 itkGetConstMacro(StopBits, StopBits);
174 virtual void SetHardwareHandshake(
const HardwareHandshake _arg);
175 itkGetConstMacro(HardwareHandshake, HardwareHandshake);
180 virtual bool Beep(
unsigned char count);
196 virtual int GetMajorFirmwareRevisionNumber();
202 virtual const char* GetFirmwareRevisionNumber();
205 bool AutoDetectToolsAvailable()
override;
208 bool AddSingleToolIsAvailable()
override;
214 mitk::NavigationToolStorage::Pointer AutoDetectTools()
override;
228 virtual bool GetSupportedVolumes(
unsigned int* numberOfVolumes, NDITrackingVolumeContainerType* volumes, TrackingVolumeDimensionType* volumesDimensions);
244 virtual void InvalidateAll();
259 NDIErrorCode Send(
const std::string* message,
bool addCRC =
true);
260 NDIErrorCode Receive(std::string* answer,
unsigned int numberOfBytes);
263 void ClearSendBuffer();
264 void ClearReceiveBuffer();
265 const std::string CalcCRC(
const std::string* input);
277 virtual void TrackTools();
286 virtual void TrackMarkerPositions();
295 virtual void TrackToolsAndMarkers();
300 void ThreadStartTracking();
NDIProtocol::Pointer m_DeviceProtocol
create and parse NDI protocol strings
HardwareHandshake m_HardwareHandshake
which tracking volume is currently used (if device supports multiple volumes) (
mitk::SerialCommunication::DataBits DataBits
Number of data bits used in the serial connection.
std::vector< std::string > NDITrackingVolumeContainerType
vector of tracking volumes
mitk::SerialCommunication::StopBits StopBits
Number of stop bits used in the serial connection.
OperationMode
Error codes of NDI tracking devices.
IlluminationActivationRate
activation rate of IR illuminator for NDI Polaris tracking device
DataCollection - Class to facilitate loading/accessing structured data.
Tool6DContainerType m_6DTools
list of 6D tools
PortNumber m_PortNumber
COM Port Number.
std::thread m_Thread
ID of tracking thread.
mitk::SerialCommunication::BaudRate BaudRate
Baud rate of the serial connection.
std::mutex m_ToolsMutex
mutex for coordinated access of tool container
DataTransferMode m_DataTransferMode
use TX (text) or BX (binary) (
std::vector< NDIPassiveTool::Pointer > Tool6DContainerType
List of 6D tools of the correct type for this tracking device.
mitk::SerialCommunication::HardwareHandshake HardwareHandshake
Hardware handshake mode of the serial connection.
std::vector< int > TrackingVolumeDimensionType
List of the supported tracking volume dimensions.
mitk::SerialCommunication::Pointer m_SerialCommunication
serial communication interface
std::string m_DeviceName
Device Name.
#define mitkClassMacro(className, SuperClassName)
Interface for all Tracking Devices.
std::mutex m_SerialCommunicationMutex
mutex for coordinated access of serial communication interface
mitk::SerialCommunication::Parity Parity
Parity mode used in the serial connection.
std::vector< MarkerPointType > MarkerPointContainerType
mitk::SerialCommunication::PortNumber PortNumber
Port number of the serial connection.
OperationMode m_OperationMode
tracking mode (6D tool tracking, 3D marker tracking,...)
Parity m_Parity
Parity mode for communication.
std::string TrackingDeviceType
BaudRate m_BaudRate
COM Port Baud Rate.
superclass for specific NDI tracking Devices that use serial communication.
mitk::NDIPassiveTool::TrackingPriority TrackingPriority
Tracking priority used for tracking a tool.
DataBits m_DataBits
Number of Data Bits per token.
NDIErrorCode
Error codes of NDI tracking devices.
MarkerPointContainerType m_MarkerPoints
container for markers (3D point tracking mode)
DataTransferMode
Data transfer mode for NDI tracking devices.
StopBits m_StopBits
number of stop bits per token
The NDI Protocol class provides building and parsing of command strings and answers to and from a NDI...
std::mutex m_MarkerPointsMutex
mutex for marker point data container
mitk::TrackingDeviceType NDITrackingDeviceType
This enumeration includes the two types of NDI tracking devices (Polaris, Aurora).