00001
00002
00003
00004
00005 #ifndef __NORTHSTAR_INTERFACE_H_
00006 #define __NORTHSTAR_INTERFACE_H_
00007
00013 class NorthStarReadings
00014 {
00015 public:
00016 NorthStarReadings()
00017 {
00018 reset();
00019 }
00020
00024 inline unsigned int sequenceNo() const;
00025
00029 inline char roomId() const;
00030
00034 inline unsigned char numSpotsVisible() const;
00035
00039 inline signed short posX() const;
00040
00044 inline signed short posY() const;
00045
00049 inline float posTheta() const;
00050
00054 inline unsigned short magSpot0() const;
00055
00059 inline unsigned short magSpot1() const;
00060
00064 inline void setSequenceNo( unsigned int number );
00065 inline void incSequenceNo();
00066 inline void setRoomId( char roomId );
00067 inline void setNumSpotsVisible( unsigned char numSpotsVisible );
00068 inline void setPosX( signed short posX );
00069 inline void setPosY( signed short posY );
00070 inline void setPosTheta( float posTheta );
00071 inline void setMagSpot0( unsigned short magSpot0 );
00072 inline void setMagSpot1( unsigned short magSpot1 );
00073
00077 void reset()
00078 {
00079 _sequenceNo = 0;
00080 _roomId = 0 ;
00081 _numSpotsVisible = 0 ;
00082 _posX = 0 ;
00083 _posY = 0 ;
00084 _posTheta = 0.0 ;
00085 _magSpot0 = 0 ;
00086 _magSpot1 = 0 ;
00087 }
00088
00089 private:
00090 unsigned int _sequenceNo;
00091 char _roomId;
00092 unsigned char _numSpotsVisible;
00093 signed short _posX;
00094 signed short _posY;
00095 float _posTheta;
00096 unsigned short _magSpot0;
00097 unsigned short _magSpot1;
00098 };
00099
00100 unsigned int NorthStarReadings::sequenceNo() const{ return _sequenceNo; }
00101 char NorthStarReadings::roomId() const{ return _roomId; }
00102 unsigned char NorthStarReadings::numSpotsVisible() const{ return _numSpotsVisible; }
00103 signed short NorthStarReadings::posX() const{ return _posX; }
00104 signed short NorthStarReadings::posY() const{ return _posY; }
00105 float NorthStarReadings::posTheta() const{ return _posTheta; }
00106 unsigned short NorthStarReadings::magSpot0() const{ return _magSpot0; }
00107 unsigned short NorthStarReadings::magSpot1() const{ return _magSpot1; }
00108
00109 void NorthStarReadings::setSequenceNo( unsigned int number ){ _sequenceNo = number; }
00110 void NorthStarReadings::incSequenceNo(){ ++_sequenceNo; if( _sequenceNo <= 1 ) _sequenceNo = 2; }
00111 void NorthStarReadings::setRoomId( char roomId ){ _roomId = roomId; }
00112 void NorthStarReadings::setNumSpotsVisible( unsigned char numSpotsVisible ){ _numSpotsVisible = numSpotsVisible; }
00113 void NorthStarReadings::setPosX( signed short posX ){ _posX = posX; }
00114 void NorthStarReadings::setPosY( signed short posY ){ _posY = posY; }
00115 void NorthStarReadings::setPosTheta( float posTheta ){ _posTheta = posTheta; }
00116 void NorthStarReadings::setMagSpot0( unsigned short magSpot0 ){ _magSpot0 = magSpot0; }
00117 void NorthStarReadings::setMagSpot1( unsigned short magSpot1 ){ _magSpot1 = magSpot1; }
00118
00122 typedef enum{ UndefinedCalState=-1, RotationStart=0, RotationStop, LinearStart, LinearStop, RotationStopResetWeights=9, LinearStopResetWeights=11 } NorthStarCalState;
00123
00127 typedef enum{ ReportMode=0, Calibration, StartReport, StopReport, ResetSequenceNumber } NorthStarCalFlag;
00128
00134 class NorthStarCommand
00135 {
00136 public:
00137 NorthStarCommand()
00138 {
00139 reset();
00140 }
00141
00142 inline char roomId() const;
00143 inline NorthStarCalState calState() const;
00144 inline unsigned char calFlag() const;
00145 inline unsigned short calDistance() const;
00146
00147 inline void setRoomId( char roomId );
00148
00149 inline void setCalState( unsigned char calState );
00150
00151 inline void setCalFlag( unsigned char calFlag );
00152
00153 inline void setCalDistance( unsigned short calDistance );
00154
00155 void reset()
00156 {
00157 _roomId = -1;
00158 _calState = 0;
00159 _calFlag = 0;
00160 _calDistance = 10;
00161 }
00162
00163 private:
00164 char _roomId;
00165 unsigned char _calState;
00166
00171 unsigned char _calFlag;
00172 unsigned short _calDistance;
00173 };
00174
00175 char NorthStarCommand::roomId() const{ return _roomId; }
00176 NorthStarCalState NorthStarCommand::calState() const{ return (NorthStarCalState)_calState; }
00177 unsigned char NorthStarCommand::calFlag() const{ return _calFlag; }
00178 unsigned short NorthStarCommand::calDistance() const{ return _calDistance; }
00179
00180 void NorthStarCommand::setRoomId( char roomId ){ _roomId = roomId; }
00181 void NorthStarCommand::setCalState( unsigned char calState ){ _calState = calState; }
00182 void NorthStarCommand::setCalFlag( unsigned char calFlag ){ _calFlag = calFlag; }
00183 void NorthStarCommand::setCalDistance( unsigned short calDistance ){ _calDistance = calDistance; }
00184
00185 #endif //__NORTHSTAR_INTERFACE_H_
00186