#include <CigiSensorRespV2.h>
Inheritance diagram for CigiSensorRespV2:
Public Member Functions | |
CigiSensorRespV2 () | |
virtual | ~CigiSensorRespV2 () |
virtual int | Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const |
virtual int | Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec) |
int | SetViewID (const Cigi_uint16 ViewIDIn, bool bndchk=true) |
Cigi_uint16 | GetViewID (void) const |
Definition at line 61 of file CigiSensorRespV2.h.
CigiSensorRespV2::CigiSensorRespV2 | ( | ) |
General Constructor
Definition at line 85 of file CigiSensorRespV2.cpp.
References CIGI_SENSOR_RESP_PACKET_ID_V2, CIGI_SENSOR_RESP_PACKET_SIZE_V2, CigiBaseSensorResp::EntityID, CigiBaseSensorResp::EntityTgt, CigiBaseSensorResp::FrameCntr, CigiBaseSensorResp::GateSzX, CigiBaseSensorResp::GateSzY, CigiBaseSensorResp::GateXoff, CigiBaseSensorResp::GateYoff, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseSensorResp::Searching, CigiBaseSensorResp::SensorID, CigiBaseSensorResp::SensorStat, CigiBaseSensorResp::TrackPntAlt, CigiBaseSensorResp::TrackPntLat, CigiBaseSensorResp::TrackPntLon, CigiBasePacket::Version, and CigiBaseSensorResp::ViewID.
00086 { 00087 00088 PacketID = CIGI_SENSOR_RESP_PACKET_ID_V2; 00089 PacketSize = CIGI_SENSOR_RESP_PACKET_SIZE_V2; 00090 Version = 2; 00091 MinorVersion = 0; 00092 00093 ViewID = 0; 00094 SensorID = 0; 00095 SensorStat = Searching; 00096 EntityTgt = false; 00097 EntityID = 0; 00098 GateSzX = 0; 00099 GateSzY = 0; 00100 GateXoff = 0.0; 00101 GateYoff = 0.0; 00102 FrameCntr = 0; 00103 TrackPntLat = 0.0; 00104 TrackPntLon = 0.0; 00105 TrackPntAlt = 0.0; 00106 00107 }
CigiSensorRespV2::~CigiSensorRespV2 | ( | ) | [virtual] |
Cigi_uint16 CigiSensorRespV2::GetViewID | ( | void | ) | const [inline] |
Gets the ViewID value.
Definition at line 124 of file CigiSensorRespV2.h.
00124 { return(ViewID); }
int CigiSensorRespV2::Pack | ( | CigiBasePacket * | Base, | |
Cigi_uint8 * | Buff, | |||
void * | Spec | |||
) | const [virtual] |
The virtual Pack function for CIGI 2
Base | - A pointer to the instance of the packet to be packed. (Downcast to CigiBasePacket) | |
Buff | - A pointer to the current pack point. | |
Spec | - A pointer to special data - This is not used in this class. |
Implements CigiBaseSensorResp.
Definition at line 124 of file CigiSensorRespV2.cpp.
References PackPointerUnion::c, CIGI_SCOPY2, CIGI_SENSOR_RESP_PACKET_SIZE_V2, PackPointerUnion::d, CigiBaseSensorResp::GateSzX, CigiBaseSensorResp::GateSzY, CigiBaseSensorResp::GateXoff, CigiBaseSensorResp::GateYoff, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSensorResp::SensorID, CigiBaseSensorResp::SensorStat, and CigiBaseSensorResp::ViewID.
00125 { 00126 double DBuf[6]; 00127 00128 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf; 00129 00130 PackPointer CDta; 00131 00132 CigiBaseSensorResp * Data = ( CigiBaseSensorResp *)Base; 00133 00134 CDta.d = DBuf; 00135 00136 *CDta.c++ = PacketID; 00137 *CDta.c++ = PacketSize; 00138 00139 Cigi_uint8 HDta = (Cigi_uint8)((Data->ViewID << 3) & 0x00f8); 00140 HDta |= (Cigi_uint8)((Data->SensorStat << 1) & 0x06); 00141 *CDta.c++ = HDta; 00142 00143 *CDta.c++ = Data->SensorID; 00144 00145 float tfoff = (float)Data->GateXoff / 0.015625f; 00146 Cigi_int16 tsoff = (Cigi_int16)tfoff; 00147 CIGI_SCOPY2(CDta.s++, &tsoff); 00148 00149 tfoff = Data->GateYoff / 0.015625f; 00150 tsoff = (Cigi_int16)tfoff; 00151 CIGI_SCOPY2(CDta.s++, &tsoff); 00152 00153 CIGI_SCOPY2(CDta.s++, &Data->GateSzX); 00154 CIGI_SCOPY2(CDta.s++, &Data->GateSzY); 00155 00156 memcpy(Buff,tBuf,CIGI_SENSOR_RESP_PACKET_SIZE_V2); 00157 00158 return(PacketSize); 00159 00160 }
int CigiSensorRespV2::SetViewID | ( | const Cigi_uint16 | ViewIDIn, | |
bool | bndchk = true | |||
) |
Sets the ViewID with bound checking control
ViewIDIn | - View ID | |
bndchk | - Enables (true) or disables (false) bounds checking. |
Definition at line 210 of file CigiSensorRespV2.cpp.
References CIGI_ERROR_VALUE_OUT_OF_RANGE, CIGI_SUCCESS, and CigiBaseSensorResp::ViewID.
00211 { 00212 00213 #ifndef CIGI_NO_BND_CHK 00214 if(bndchk && ((ViewIDIn < 0)||(ViewIDIn > 32))) 00215 { 00216 #ifndef CIGI_NO_EXCEPT 00217 throw CigiValueOutOfRangeException("ViewID",(Cigi_uint16)ViewIDIn,0,32); 00218 #endif 00219 return(CIGI_ERROR_VALUE_OUT_OF_RANGE); 00220 } 00221 #endif 00222 00223 ViewID = ViewIDIn; 00224 return(CIGI_SUCCESS); 00225 00226 }
int CigiSensorRespV2::Unpack | ( | Cigi_uint8 * | Buff, | |
bool | Swap, | |||
void * | Spec | |||
) | [virtual] |
The virtual Unpack function for CIGI 2
Buff | - A pointer to the current pack point. | |
Swap | - N/A for V1 & V2 | |
Spec | - A pointer to special data - This is not used in this class. |
Implements CigiBaseSensorResp.
Definition at line 165 of file CigiSensorRespV2.cpp.
References PackPointerUnion::c, CIGI_SCOPY2, CIGI_SENSOR_RESP_PACKET_SIZE_V2, PackPointerUnion::d, CigiBaseSensorResp::GateSzX, CigiBaseSensorResp::GateSzY, CigiBaseSensorResp::GateXoff, CigiBaseSensorResp::GateYoff, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSensorResp::SensorID, CigiBaseSensorResp::SensorStat, and CigiBaseSensorResp::ViewID.
00166 { 00167 double DBuf[6]; 00168 00169 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf; 00170 00171 PackPointer CDta; 00172 00173 memcpy(tBuf,Buff,CIGI_SENSOR_RESP_PACKET_SIZE_V2); 00174 00175 CDta.d = DBuf; 00176 00177 CDta.c += 2; // Step over packet id and size 00178 00179 Cigi_uint8 HDta = *CDta.c++; 00180 ViewID = (Cigi_uint16)((HDta >> 3) & 0x1f); 00181 SensorStat = (SensorStatGrp)((HDta >> 1) & 0x03); 00182 SensorID = *CDta.c++; 00183 00184 Cigi_int16 tsoff; 00185 CIGI_SCOPY2(&tsoff, CDta.s++); 00186 float tfoff = (float)tsoff; 00187 GateXoff = tfoff * 0.015625f; 00188 00189 CIGI_SCOPY2(&tsoff, CDta.s++); 00190 tfoff = (float)tsoff; 00191 GateYoff = tfoff * 0.015625f; 00192 00193 CIGI_SCOPY2(&GateSzX, CDta.s++); 00194 CIGI_SCOPY2(&GateSzY, CDta.s++); 00195 00196 return(PacketSize); 00197 00198 }