14#ifndef mitkNDITrackingDevice_h
15#define mitkNDITrackingDevice_h
19#include <MitkIGTExports.h>
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);
164 virtual void SetDeviceName(std::string _arg);
166 virtual void SetBaudRate(
const BaudRate _arg);
168 virtual void SetDataBits(
const DataBits _arg);
170 virtual void SetParity(
const Parity _arg);
172 virtual void SetStopBits(
const StopBits _arg);
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;
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();
The NDI Protocol class provides building and parsing of command strings and answers to and from a NDI...
superclass for specific NDI tracking Devices that use serial communication.
Tool6DContainerType m_6DTools
list of 6D tools
OperationMode m_OperationMode
tracking mode (6D tool tracking, 3D marker tracking,...)
PortNumber m_PortNumber
COM Port Number.
std::mutex m_MarkerPointsMutex
mutex for marker point data container
itkGetStringMacro(DeviceName)
returns the device name for serial communication
itkGetConstMacro(BaudRate, BaudRate)
returns the baud rate for serial communication
itkGetConstMacro(DataTransferMode, DataTransferMode)
returns the data transfer mode
mitk::TrackingDeviceType NDITrackingDeviceType
This enumeration includes the two types of NDI tracking devices (Polaris, Aurora).
itkGetConstMacro(HardwareHandshake, HardwareHandshake)
returns the hardware handshake setting
std::vector< NDIPassiveTool::Pointer > Tool6DContainerType
List of 6D tools of the correct type for this tracking device.
DataTransferMode m_DataTransferMode
use TX (text) or BX (binary) (
std::vector< int > TrackingVolumeDimensionType
List of the supported tracking volume dimensions.
std::mutex m_SerialCommunicationMutex
mutex for coordinated access of serial communication interface
std::mutex m_ToolsMutex
mutex for coordinated access of tool container
mitkClassMacro(NDITrackingDevice, TrackingDevice)
MarkerPointContainerType m_MarkerPoints
container for markers (3D point tracking mode)
NDIProtocol::Pointer m_DeviceProtocol
create and parse NDI protocol strings
mitk::SerialCommunication::Pointer m_SerialCommunication
serial communication interface
itkGetConstMacro(IlluminationActivationRate, IlluminationActivationRate)
returns the activation rate of IR illumator for polaris
mitk::SerialCommunication::HardwareHandshake HardwareHandshake
Hardware handshake mode of the serial connection.
HardwareHandshake m_HardwareHandshake
which tracking volume is currently used (if device supports multiple volumes) (
std::string m_DeviceName
Device Name.
mitk::NDIPassiveTool::TrackingPriority TrackingPriority
Tracking priority used for tracking a tool.
mitk::SerialCommunication::PortNumber PortNumber
Port number of the serial connection.
DataBits m_DataBits
Number of Data Bits per token.
mitk::SerialCommunication::Parity Parity
Parity mode used in the serial connection.
itkFactorylessNewMacro(Self)
itkGetConstMacro(PortNumber, PortNumber)
returns the port number for serial communication
BaudRate m_BaudRate
COM Port Baud Rate.
itkGetConstMacro(StopBits, StopBits)
returns the number of stop bits
itkGetConstMacro(DataBits, DataBits)
returns the data bits for serial communication
std::vector< std::string > NDITrackingVolumeContainerType
vector of tracking volumes
std::thread m_Thread
ID of tracking thread.
mitk::SerialCommunication::StopBits StopBits
Number of stop bits used in the serial connection.
IlluminationActivationRate m_IlluminationActivationRate
update rate of IR illuminator for Polaris
Parity m_Parity
Parity mode for communication.
itkGetConstMacro(Parity, Parity)
returns the parity mode
NDIErrorCode GetErrorCode(const std::string *input)
returns the error code for a string that contains an error code in hexadecimal format
mitk::SerialCommunication::BaudRate BaudRate
Baud rate of the serial connection.
mitk::SerialCommunication::DataBits DataBits
Number of data bits used in the serial connection.
StopBits m_StopBits
number of stop bits per token
Interface for all Tracking Devices.
DataTransferMode
Data transfer mode for NDI tracking devices.
IlluminationActivationRate
activation rate of IR illuminator for NDI Polaris tracking device
std::vector< MarkerPointType > MarkerPointContainerType
std::string TrackingDeviceType
OperationMode
Error codes of NDI tracking devices.
NDIErrorCode
Error codes of NDI tracking devices.