#include <CigiSensorRespV3.h>
Inheritance diagram for CigiSensorRespV3:
Public Member Functions | |
CigiSensorRespV3 () | |
virtual | ~CigiSensorRespV3 () |
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 |
int | SetFrameCntr (const Cigi_uint32 FrameCntrIn, bool bndchk=true) |
Cigi_uint32 | GetFrameCntr (void) const |
Definition at line 61 of file CigiSensorRespV3.h.
CigiSensorRespV3::CigiSensorRespV3 | ( | ) |
General Constructor
Definition at line 67 of file CigiSensorRespV3.cpp.
References CIGI_SENSOR_RESP_PACKET_ID_V3, CIGI_SENSOR_RESP_PACKET_SIZE_V3, 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.
00068 { 00069 00070 PacketID = CIGI_SENSOR_RESP_PACKET_ID_V3; 00071 PacketSize = CIGI_SENSOR_RESP_PACKET_SIZE_V3; 00072 Version = 3; 00073 MinorVersion = 0; 00074 00075 ViewID = 0; 00076 SensorID = 0; 00077 SensorStat = Searching; 00078 EntityTgt = false; 00079 EntityID = 0; 00080 GateSzX = 0; 00081 GateSzY = 0; 00082 GateXoff = 0.0; 00083 GateYoff = 0.0; 00084 FrameCntr = 0; 00085 TrackPntLat = 0.0; 00086 TrackPntLon = 0.0; 00087 TrackPntAlt = 0.0; 00088 00089 }
CigiSensorRespV3::~CigiSensorRespV3 | ( | ) | [virtual] |
Cigi_uint32 CigiSensorRespV3::GetFrameCntr | ( | void | ) | const [inline] |
Gets the FrameCntr value.
Definition at line 149 of file CigiSensorRespV3.h.
00149 { return(FrameCntr); }
Cigi_uint16 CigiSensorRespV3::GetViewID | ( | void | ) | const [inline] |
Gets the ViewID value.
Definition at line 128 of file CigiSensorRespV3.h.
00128 { return(ViewID); }
int CigiSensorRespV3::Pack | ( | CigiBasePacket * | Base, | |
Cigi_uint8 * | Buff, | |||
void * | Spec | |||
) | const [virtual] |
The virtual Pack function for CIGI 3
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 106 of file CigiSensorRespV3.cpp.
References PackPointerUnion::c, CigiBaseSensorResp::EntityTgt, PackPointerUnion::f, CigiBaseSensorResp::FrameCntr, CigiBaseSensorResp::GateSzX, CigiBaseSensorResp::GateSzY, CigiBaseSensorResp::GateXoff, CigiBaseSensorResp::GateYoff, PackPointerUnion::l, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSensorResp::SensorID, CigiBaseSensorResp::SensorStat, and CigiBaseSensorResp::ViewID.
00107 { 00108 PackPointer CDta; 00109 00110 CigiBaseSensorResp * Data = ( CigiBaseSensorResp *)Base; 00111 00112 CDta.c = Buff; 00113 00114 *CDta.c++ = PacketID; 00115 *CDta.c++ = PacketSize; 00116 00117 *CDta.s++ = Data->ViewID; 00118 *CDta.c++ = Data->SensorID; 00119 00120 Cigi_uint8 HDta = (Data->EntityTgt) ? 0x04 : 0x00; 00121 HDta |= (Cigi_uint8)(Data->SensorStat & 0x03); 00122 *CDta.c++ = HDta; 00123 00124 *CDta.s++ = 0; 00125 *CDta.s++ = Data->GateSzX; 00126 *CDta.s++ = Data->GateSzY; 00127 *CDta.f++ = Data->GateXoff; 00128 *CDta.f++ = Data->GateYoff; 00129 *CDta.l++ = Data->FrameCntr; 00130 00131 return(PacketSize); 00132 00133 }
int CigiSensorRespV3::SetFrameCntr | ( | const Cigi_uint32 | FrameCntrIn, | |
bool | bndchk = true | |||
) | [inline] |
Sets the FrameCntr with bound checking control
FrameCntrIn | - Frame counter value | |
bndchk | - Enables (true) or disables (false) bounds checking. |
Definition at line 140 of file CigiSensorRespV3.h.
References CIGI_SUCCESS.
00141 { 00142 FrameCntr = FrameCntrIn; 00143 return(CIGI_SUCCESS); 00144 }
int CigiSensorRespV3::SetViewID | ( | const Cigi_uint16 | ViewIDIn, | |
bool | bndchk = true | |||
) | [inline] |
Sets the ViewID with bound checking control
ViewIDIn | - View ID | |
bndchk | - Enables (true) or disables (false) bounds checking. |
Definition at line 119 of file CigiSensorRespV3.h.
References CIGI_SUCCESS.
00120 { 00121 ViewID = ViewIDIn; 00122 return(CIGI_SUCCESS); 00123 }
int CigiSensorRespV3::Unpack | ( | Cigi_uint8 * | Buff, | |
bool | Swap, | |||
void * | Spec | |||
) | [virtual] |
The virtual Unpack function for CIGI 3
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 138 of file CigiSensorRespV3.cpp.
References PackPointerUnion::c, CigiSwap2(), CigiSwap4(), CigiBaseSensorResp::EntityTgt, PackPointerUnion::f, CigiBaseSensorResp::FrameCntr, CigiBaseSensorResp::GateSzX, CigiBaseSensorResp::GateSzY, CigiBaseSensorResp::GateXoff, CigiBaseSensorResp::GateYoff, PackPointerUnion::l, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSensorResp::SensorID, CigiBaseSensorResp::SensorStat, and CigiBaseSensorResp::ViewID.
00139 { 00140 PackPointer CDta; 00141 00142 CDta.c = Buff; 00143 00144 CDta.c += 2; // Step over packet id and size 00145 00146 if(!Swap) 00147 { 00148 ViewID = *CDta.s++; 00149 SensorID = *CDta.c++; 00150 00151 Cigi_uint8 HDta = *CDta.c++; 00152 SensorStat = (SensorStatGrp)(HDta & 0x03); 00153 EntityTgt = ((HDta & 0x04) != 0); 00154 00155 CDta.s++; 00156 00157 GateSzX = *CDta.s++; 00158 GateSzY = *CDta.s++; 00159 GateXoff = *CDta.f++; 00160 GateYoff = *CDta.f++; 00161 FrameCntr = *CDta.l++; 00162 } 00163 else 00164 { 00165 CigiSwap2(&ViewID, CDta.s++); 00166 SensorID = *CDta.c++; 00167 00168 Cigi_uint8 HDta = *CDta.c++; 00169 SensorStat = (SensorStatGrp)(HDta & 0x03); 00170 EntityTgt = ((HDta & 0x04) != 0); 00171 00172 CDta.s++; 00173 00174 CigiSwap2(&GateSzX, CDta.s++); 00175 CigiSwap2(&GateSzY, CDta.s++); 00176 CigiSwap4(&GateXoff, CDta.f++); 00177 CigiSwap4(&GateYoff, CDta.f++); 00178 CigiSwap4(&FrameCntr, CDta.l++); 00179 } 00180 00181 return(PacketSize); 00182 00183 }