#include <CigiLosSegReqV1.h>
Inheritance diagram for CigiLosSegReqV1:
Public Member Functions | |
CigiLosSegReqV1 () | |
virtual | ~CigiLosSegReqV1 () |
virtual int | Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const |
virtual int | Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec) |
Definition at line 57 of file CigiLosSegReqV1.h.
CigiLosSegReqV1::CigiLosSegReqV1 | ( | ) |
General Constructor
Definition at line 91 of file CigiLosSegReqV1.cpp.
References CigiBaseLosSegReq::AlphaThresh, CIGI_LOS_SEG_REQ_PACKET_ID_V1, CIGI_LOS_SEG_REQ_PACKET_SIZE_V1, CigiBaseLosSegReq::DestEntityID, CigiBaseLosSegReq::DestEntityIDValid, CigiBaseLosSegReq::DstCoordSys, CigiBaseLosSegReq::DstXLat, CigiBaseLosSegReq::DstYLon, CigiBaseLosSegReq::DstZAlt, CigiBaseLosSegReq::EntityID, CigiBaseLosSegReq::Extended, CigiBaseLosSegReq::Geodetic, CigiBaseLosSegReq::LosID, CigiBaseLosSegReq::Mask, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseLosSegReq::ReqType, CigiBaseLosSegReq::ResponseCoordSys, CigiBaseLosSegReq::SrcCoordSys, CigiBaseLosSegReq::SrcXLat, CigiBaseLosSegReq::SrcYLon, CigiBaseLosSegReq::SrcZAlt, CigiBaseLosSegReq::UpdatePeriod, CigiBaseLosSegReq::ValidV1or2, and CigiBasePacket::Version.
00092 { 00093 00094 PacketID = CIGI_LOS_SEG_REQ_PACKET_ID_V1; 00095 PacketSize = CIGI_LOS_SEG_REQ_PACKET_SIZE_V1; 00096 Version = 1; 00097 MinorVersion = 0; 00098 00099 LosID = 0; 00100 ReqType = Extended; 00101 SrcCoordSys = Geodetic; 00102 DstCoordSys = Geodetic; 00103 ResponseCoordSys = Geodetic; 00104 AlphaThresh = 0; 00105 EntityID = 0; 00106 SrcXLat = 0.0; 00107 SrcYLon = 0.0; 00108 SrcZAlt = 0.0; 00109 DstXLat = 0.0; 00110 DstYLon = 0.0; 00111 DstZAlt = 0.0; 00112 Mask = 0; 00113 DestEntityIDValid = false; 00114 UpdatePeriod = 0; 00115 DestEntityID = 0; 00116 ValidV1or2 = true; 00117 00118 }
CigiLosSegReqV1::~CigiLosSegReqV1 | ( | ) | [virtual] |
int CigiLosSegReqV1::Pack | ( | CigiBasePacket * | Base, | |
Cigi_uint8 * | Buff, | |||
void * | Spec | |||
) | const [virtual] |
The virtual Pack function for CIGI 1
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 CigiBaseLosSegReq.
Definition at line 135 of file CigiLosSegReqV1.cpp.
References PackPointerUnion::c, CIGI_LOS_SEG_REQ_PACKET_SIZE_V1, CIGI_SCOPY2, CIGI_SCOPY4, CIGI_SCOPY8, PackPointerUnion::d, CigiBaseLosSegReq::DstXLat, CigiBaseLosSegReq::DstYLon, CigiBaseLosSegReq::DstZAlt, PackPointerUnion::f, PackPointerUnion::l, CigiBaseLosSegReq::LosID, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseLosSegReq::SrcXLat, CigiBaseLosSegReq::SrcYLon, CigiBaseLosSegReq::SrcZAlt, and CigiBaseLosSegReq::ValidV1or2.
00136 { 00137 double DBuf[6]; 00138 00139 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf; 00140 00141 PackPointer CDta; 00142 00143 00144 CigiBaseLosSegReq * Data = ( CigiBaseLosSegReq *)Base; 00145 00146 // At this point return without unpacking if the 00147 // data is not valid for CIGI 1 or 2. 00148 if(!Data->ValidV1or2) 00149 return(0); 00150 00151 CDta.d = DBuf; 00152 00153 *CDta.c++ = PacketID; 00154 *CDta.c++ = PacketSize; 00155 00156 CIGI_SCOPY2(CDta.s++, &Data->LosID); 00157 float talt = (float)Data->SrcZAlt; 00158 CIGI_SCOPY4(CDta.f++, &talt); 00159 CIGI_SCOPY8(CDta.d++, &Data->SrcXLat); 00160 CIGI_SCOPY8(CDta.d++, &Data->SrcYLon); 00161 *CDta.l++ = 0; 00162 talt = (float)Data->DstZAlt; 00163 CIGI_SCOPY4(CDta.f++, &talt); 00164 CIGI_SCOPY8(CDta.d++, &Data->DstXLat); 00165 CIGI_SCOPY8(CDta.d++, &Data->DstYLon); 00166 00167 memcpy(Buff,tBuf,CIGI_LOS_SEG_REQ_PACKET_SIZE_V1); 00168 00169 return(PacketSize); 00170 00171 }
int CigiLosSegReqV1::Unpack | ( | Cigi_uint8 * | Buff, | |
bool | Swap, | |||
void * | Spec | |||
) | [virtual] |
The virtual Unpack function for CIGI 1
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 CigiBaseLosSegReq.
Definition at line 176 of file CigiLosSegReqV1.cpp.
References PackPointerUnion::c, CIGI_LOS_SEG_REQ_PACKET_SIZE_V1, CIGI_SCOPY2, CIGI_SCOPY4, CIGI_SCOPY8, PackPointerUnion::d, CigiBaseLosSegReq::DestEntityID, CigiBaseLosSegReq::DestEntityIDValid, CigiBaseLosSegReq::DstXLat, CigiBaseLosSegReq::DstYLon, CigiBaseLosSegReq::DstZAlt, PackPointerUnion::f, CigiBaseLosSegReq::LosID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseLosSegReq::SrcXLat, CigiBaseLosSegReq::SrcYLon, CigiBaseLosSegReq::SrcZAlt, CigiBaseLosSegReq::UpdatePeriod, and CigiBaseLosSegReq::ValidV1or2.
00177 { 00178 double DBuf[6]; 00179 00180 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf; 00181 00182 PackPointer CDta; 00183 00184 float talt; 00185 00186 memcpy(tBuf,Buff,CIGI_LOS_SEG_REQ_PACKET_SIZE_V1); 00187 00188 CDta.d = DBuf; 00189 00190 CDta.c += 2; // Step over packet id and size 00191 00192 CIGI_SCOPY2(&LosID, CDta.s++); 00193 00194 CIGI_SCOPY4(&talt, CDta.f++); 00195 SrcZAlt = (double)talt; 00196 00197 CIGI_SCOPY8(&SrcXLat, CDta.d++); 00198 CIGI_SCOPY8(&SrcYLon, CDta.d++); 00199 00200 CDta.c += 4; 00201 00202 CIGI_SCOPY4(&talt, CDta.f++); 00203 DstZAlt = (double)talt; 00204 00205 CIGI_SCOPY8(&DstXLat, CDta.d++); 00206 CIGI_SCOPY8(&DstYLon, CDta.d++); 00207 00208 00209 DestEntityIDValid = false; 00210 UpdatePeriod = 0; 00211 DestEntityID = 0; 00212 00213 ValidV1or2 = true; 00214 00215 return(PacketSize); 00216 00217 }