#include <CigiLosSegReqV2.h>
Inheritance diagram for CigiLosSegReqV2:
Public Member Functions | |
CigiLosSegReqV2 () | |
virtual | ~CigiLosSegReqV2 () |
virtual int | Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const |
virtual int | Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec) |
Definition at line 58 of file CigiLosSegReqV2.h.
CigiLosSegReqV2::CigiLosSegReqV2 | ( | ) |
General Constructor
Definition at line 91 of file CigiLosSegReqV2.cpp.
References CigiBaseLosSegReq::AlphaThresh, CIGI_LOS_SEG_REQ_PACKET_ID_V2, CIGI_LOS_SEG_REQ_PACKET_SIZE_V2, 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_V2; 00095 PacketSize = CIGI_LOS_SEG_REQ_PACKET_SIZE_V2; 00096 Version = 2; 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 }
CigiLosSegReqV2::~CigiLosSegReqV2 | ( | ) | [virtual] |
int CigiLosSegReqV2::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 CigiBaseLosSegReq.
Definition at line 135 of file CigiLosSegReqV2.cpp.
References PackPointerUnion::c, CIGI_LOS_SEG_REQ_PACKET_SIZE_V2, CIGI_SCOPY2, CIGI_SCOPY8, PackPointerUnion::d, CigiBaseLosSegReq::DstXLat, CigiBaseLosSegReq::DstYLon, CigiBaseLosSegReq::DstZAlt, PackPointerUnion::l, CigiBaseLosSegReq::LosID, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseLosSegReq::SrcXLat, CigiBaseLosSegReq::SrcYLon, CigiBaseLosSegReq::SrcZAlt, and CigiBaseLosSegReq::ValidV1or2.
00136 { 00137 double DBuf[7]; 00138 00139 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf; 00140 00141 PackPointer CDta; 00142 00143 CigiBaseLosSegReq * Data = ( CigiBaseLosSegReq *)Base; 00144 00145 // At this point return without unpacking if the 00146 // data is not valid for CIGI 1 or 2. 00147 if(!Data->ValidV1or2) 00148 return(0); 00149 00150 CDta.d = DBuf; 00151 00152 *CDta.c++ = PacketID; 00153 *CDta.c++ = PacketSize; 00154 00155 CIGI_SCOPY2(CDta.s++, &Data->LosID); 00156 *CDta.l++ = 0; 00157 CIGI_SCOPY8(CDta.d++, &Data->SrcZAlt); 00158 CIGI_SCOPY8(CDta.d++, &Data->SrcXLat); 00159 CIGI_SCOPY8(CDta.d++, &Data->SrcYLon); 00160 CIGI_SCOPY8(CDta.d++, &Data->DstZAlt); 00161 CIGI_SCOPY8(CDta.d++, &Data->DstXLat); 00162 CIGI_SCOPY8(CDta.d++, &Data->DstYLon); 00163 00164 memcpy(Buff,tBuf,CIGI_LOS_SEG_REQ_PACKET_SIZE_V2); 00165 00166 return(PacketSize); 00167 00168 }
int CigiLosSegReqV2::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 CigiBaseLosSegReq.
Definition at line 173 of file CigiLosSegReqV2.cpp.
References PackPointerUnion::c, CIGI_LOS_SEG_REQ_PACKET_SIZE_V2, CIGI_SCOPY2, CIGI_SCOPY8, PackPointerUnion::d, CigiBaseLosSegReq::DestEntityID, CigiBaseLosSegReq::DestEntityIDValid, CigiBaseLosSegReq::DstXLat, CigiBaseLosSegReq::DstYLon, CigiBaseLosSegReq::DstZAlt, CigiBaseLosSegReq::LosID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseLosSegReq::SrcXLat, CigiBaseLosSegReq::SrcYLon, CigiBaseLosSegReq::SrcZAlt, CigiBaseLosSegReq::UpdatePeriod, and CigiBaseLosSegReq::ValidV1or2.
00174 { 00175 double DBuf[7]; 00176 00177 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf; 00178 00179 PackPointer CDta; 00180 00181 memcpy(tBuf,Buff,CIGI_LOS_SEG_REQ_PACKET_SIZE_V2); 00182 00183 CDta.d = DBuf; 00184 00185 CDta.c += 2; // Step over packet id and size 00186 00187 CIGI_SCOPY2(&LosID, CDta.s++); 00188 CDta.c += 4; 00189 CIGI_SCOPY8(&SrcZAlt, CDta.d++); 00190 CIGI_SCOPY8(&SrcXLat, CDta.d++); 00191 CIGI_SCOPY8(&SrcYLon, CDta.d++); 00192 CIGI_SCOPY8(&DstZAlt, CDta.d++); 00193 CIGI_SCOPY8(&DstXLat, CDta.d++); 00194 CIGI_SCOPY8(&DstYLon, CDta.d++); 00195 00196 00197 DestEntityIDValid = false; 00198 UpdatePeriod = 0; 00199 DestEntityID = 0; 00200 00201 ValidV1or2 = true; 00202 00203 return(PacketSize); 00204 00205 }