00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __igstkAuroraTrackerTool_h
00019 #define __igstkAuroraTrackerTool_h
00020
00021 #include "igstkTrackerTool.h"
00022
00023 namespace igstk
00024 {
00025
00026 igstkEventMacro( AuroraTrackerToolEvent,StringEvent);
00027 igstkEventMacro( AuroraTrackerToolErrorEvent, TrackerToolErrorEvent);
00028 igstkEventMacro( InvalidAuroraPortNumberErrorEvent,
00029 AuroraTrackerToolErrorEvent);
00030 igstkEventMacro( InvalidAuroraSROMFilenameErrorEvent,
00031 AuroraTrackerToolErrorEvent);
00032 igstkEventMacro( InvalidAuroraPartNumberErrorEvent,
00033 AuroraTrackerToolErrorEvent);
00034 igstkEventMacro( InvalidAuroraChannelNumberErrorEvent,
00035 AuroraTrackerToolErrorEvent);
00036
00037 class AuroraTracker;
00038
00050 class AuroraTrackerTool : public TrackerTool
00051 {
00052 public:
00053
00055 igstkStandardClassTraitsMacro( AuroraTrackerTool, TrackerTool )
00056
00057
00060 void RequestSetPortNumber( unsigned int portNumber );
00061
00063 void RequestSetChannelNumber( unsigned int channelNumber );
00064
00066 void RequestSetSROMFileName( const std::string & filename );
00067
00069 void RequestSetPartNumber( const std::string & toolId );
00070
00072 void RequestSelect5DOFTrackerTool( );
00073
00075 void RequestSelect6DOFTrackerTool( );
00076
00078 bool IsSROMFileNameSpecified() const;
00079
00081 bool IsPartNumberSpecified() const;
00082
00084 igstkGetStringMacro( SROMFileName );
00085
00087 igstkGetMacro( PortNumber, unsigned int );
00088
00090 igstkGetMacro( ChannelNumber, unsigned int );
00091
00093 igstkGetStringMacro( PartNumber );
00094
00097 bool IsTrackerTool5DOF() const;
00098
00099 protected:
00100
00101 AuroraTrackerTool();
00102 virtual ~AuroraTrackerTool();
00103
00105 virtual void PrintSelf( std::ostream& os, itk::Indent indent ) const;
00106
00107 private:
00108
00110 void SetPortNumberProcessing( );
00111
00113 void ReportInValidPortNumberSpecifiedProcessing( );
00114
00116 void SetChannelNumberProcessing( );
00117
00119 void ReportInValidChannelNumberSpecifiedProcessing( );
00120
00122 void SetSROMFileNameProcessing( );
00123
00125 void ReportInValidSROMFileSpecifiedProcessing( );
00126
00128 void SetPartNumberProcessing( );
00129
00131 void ReportInValidPartNumberSpecifiedProcessing( );
00132
00134 void Report5DOFTrackerToolSelectedProcessing();
00135
00137 void Report6DOFTrackerToolSelectedProcessing();
00138
00139 AuroraTrackerTool(const Self&);
00140 void operator=(const Self&);
00141
00144 virtual bool CheckIfTrackerToolIsConfigured() const;
00145
00147 igstkDeclareStateMacro( Idle );
00148 igstkDeclareStateMacro( 5DOFTrackerToolSelected );
00149 igstkDeclareStateMacro( 6DOFTrackerToolSelected );
00150 igstkDeclareStateMacro( 5DOFTrackerToolPortNumberSpecified );
00151 igstkDeclareStateMacro( 6DOFTrackerToolPortNumberSpecified );
00152 igstkDeclareStateMacro( 5DOFTrackerToolChannelNumberSpecified );
00153 igstkDeclareStateMacro( 5DOFTrackerToolSROMFileNameSpecified );
00154 igstkDeclareStateMacro( 6DOFTrackerToolSROMFileNameSpecified );
00155 igstkDeclareStateMacro( 5DOFTrackerToolPartNumberSpecified );
00156 igstkDeclareStateMacro( 6DOFTrackerToolPartNumberSpecified );
00157
00158
00160 igstkDeclareInputMacro( Select5DOFTrackerTool );
00161 igstkDeclareInputMacro( Select6DOFTrackerTool );
00162 igstkDeclareInputMacro( ValidPortNumber );
00163 igstkDeclareInputMacro( InValidPortNumber );
00164 igstkDeclareInputMacro( ValidChannelNumber );
00165 igstkDeclareInputMacro( InValidChannelNumber );
00166 igstkDeclareInputMacro( ValidSROMFileName );
00167 igstkDeclareInputMacro( InValidSROMFileName );
00168 igstkDeclareInputMacro( ValidPartNumber);
00169 igstkDeclareInputMacro( InValidPartNumber);
00170
00172 unsigned int m_PortNumberToBeSet;
00173 unsigned int m_PortNumber;
00174
00176 unsigned int m_ChannelNumberToBeSet;
00177 unsigned int m_ChannelNumber;
00178
00180 std::string m_SROMFileNameToBeSet;
00181 std::string m_SROMFileName;
00182
00184 std::string m_PartNumberToBeSet;
00185 std::string m_PartNumber;
00186
00187 bool m_TrackerToolConfigured;
00188 bool m_PartNumberSpecified;
00189 bool m_SROMFileNameSpecified;
00190 bool m_ChannelNumberSpecified;
00191
00192 bool m_FiveDOFTrackerToolSelected;
00193
00194 };
00195
00196
00197 }
00198
00199
00200 #endif // __igstk_AuroraTrackerTool_h_