#include <CigiLosVectReqV1.h>
Inheritance diagram for CigiLosVectReqV1:
Public Member Functions | |
CigiLosVectReqV1 () | |
virtual | ~CigiLosVectReqV1 () |
virtual int | Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const |
virtual int | Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec) |
int | SetVectAz (const float VectAzIn, bool bndchk=true) |
float | GetVectAz (void) |
Definition at line 57 of file CigiLosVectReqV1.h.
CigiLosVectReqV1::CigiLosVectReqV1 | ( | ) |
General Constructor
Definition at line 90 of file CigiLosVectReqV1.cpp.
References CigiBaseLosVectReq::AlphaThresh, CIGI_LOS_VECT_REQ_PACKET_ID_V1, CIGI_LOS_VECT_REQ_PACKET_SIZE_V1, CigiBaseLosVectReq::EntityID, CigiBaseLosVectReq::Extended, CigiBaseLosVectReq::Geodetic, CigiBaseLosVectReq::LosID, CigiBaseLosVectReq::Mask, CigiBaseLosVectReq::MaxRange, CigiBasePacket::MinorVersion, CigiBaseLosVectReq::MinRange, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseLosVectReq::ReqType, CigiBaseLosVectReq::ResponseCoordSys, CigiBaseLosVectReq::SrcCoordSys, CigiBaseLosVectReq::SrcXLat, CigiBaseLosVectReq::SrcYLon, CigiBaseLosVectReq::SrcZAlt, CigiBaseLosVectReq::UpdatePeriod, CigiBaseLosVectReq::ValidV1or2, CigiBaseLosVectReq::VectAz, CigiBaseLosVectReq::VectEl, and CigiBasePacket::Version.
00091 { 00092 00093 PacketID = CIGI_LOS_VECT_REQ_PACKET_ID_V1; 00094 PacketSize = CIGI_LOS_VECT_REQ_PACKET_SIZE_V1; 00095 Version = 1; 00096 MinorVersion = 0; 00097 00098 LosID = 0; 00099 ReqType = Extended; 00100 SrcCoordSys = Geodetic; 00101 ResponseCoordSys = Geodetic; 00102 AlphaThresh = 0; 00103 EntityID = 0; 00104 VectAz = 0.0; 00105 VectEl = 0.0; 00106 MinRange = 0.0; 00107 MaxRange = 0.0; 00108 SrcXLat = 0.0; 00109 SrcYLon = 0.0; 00110 SrcZAlt = 0.0; 00111 Mask = 0; 00112 UpdatePeriod = 0; 00113 ValidV1or2 = true; 00114 00115 }
CigiLosVectReqV1::~CigiLosVectReqV1 | ( | ) | [virtual] |
float CigiLosVectReqV1::GetVectAz | ( | void | ) | [inline] |
Gets the VectAz value.
Definition at line 120 of file CigiLosVectReqV1.h.
int CigiLosVectReqV1::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 CigiBaseLosVectReq.
Definition at line 132 of file CigiLosVectReqV1.cpp.
References PackPointerUnion::c, CIGI_LOS_VECT_REQ_PACKET_SIZE_V1, CIGI_SCOPY2, CIGI_SCOPY4, CIGI_SCOPY8, PackPointerUnion::d, PackPointerUnion::f, PackPointerUnion::l, CigiBaseLosVectReq::LosID, CigiBaseLosVectReq::MaxRange, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseLosVectReq::SrcXLat, CigiBaseLosVectReq::SrcYLon, CigiBaseLosVectReq::SrcZAlt, CigiBaseLosVectReq::ValidV1or2, CigiBaseLosVectReq::VectAz, and CigiBaseLosVectReq::VectEl.
00133 { 00134 double DBuf[6]; 00135 00136 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf; 00137 00138 PackPointer CDta; 00139 00140 CigiBaseLosVectReq * Data = ( CigiBaseLosVectReq *)Base; 00141 00142 if(!Data->ValidV1or2) 00143 return(0); 00144 00145 CDta.d = DBuf; 00146 00147 *CDta.c++ = Data->PacketID; 00148 *CDta.c++ = Data->PacketSize; 00149 00150 CIGI_SCOPY2(CDta.s++, &Data->LosID); 00151 00152 *CDta.l++ = 0; 00153 00154 if(Data->VectAz < 0.0f) 00155 Data->VectAz += 360.0f; 00156 00157 CIGI_SCOPY4(CDta.f++, &Data->VectAz); 00158 00159 CIGI_SCOPY4(CDta.f++, &Data->VectEl); 00160 CIGI_SCOPY4(CDta.f++, &Data->MaxRange); 00161 00162 float tflt = (float)Data->SrcZAlt; 00163 CIGI_SCOPY4(CDta.f++, &tflt); 00164 00165 CIGI_SCOPY8(CDta.d++, &Data->SrcXLat); 00166 CIGI_SCOPY8(CDta.d++, &Data->SrcYLon); 00167 00168 memcpy(Buff,tBuf,CIGI_LOS_VECT_REQ_PACKET_SIZE_V1); 00169 00170 return(PacketSize); 00171 00172 }
int CigiLosVectReqV1::SetVectAz | ( | const float | VectAzIn, | |
bool | bndchk = true | |||
) |
Sets the VectAz with bound checking control
VectAzIn | - | |
bndchk | - Enables (true) or disables (false) bounds checking. |
Definition at line 224 of file CigiLosVectReqV1.cpp.
References CIGI_ERROR_VALUE_OUT_OF_RANGE, CIGI_SUCCESS, and CigiBaseLosVectReq::VectAz.
00225 { 00226 00227 #ifndef CIGI_NO_BND_CHK 00228 if(bndchk && ((VectAzIn < 0.0)||(VectAzIn > 360.0))) 00229 { 00230 #ifndef CIGI_NO_EXCEPT 00231 throw CigiValueOutOfRangeException("VectAz",(float)VectAzIn,0.0,360.0); 00232 #endif 00233 return(CIGI_ERROR_VALUE_OUT_OF_RANGE); 00234 } 00235 #endif 00236 00237 VectAz = VectAzIn; 00238 return(CIGI_SUCCESS); 00239 00240 }
int CigiLosVectReqV1::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 CigiBaseLosVectReq.
Definition at line 177 of file CigiLosVectReqV1.cpp.
References PackPointerUnion::c, CIGI_LOS_VECT_REQ_PACKET_SIZE_V1, CIGI_SCOPY2, CIGI_SCOPY4, CIGI_SCOPY8, PackPointerUnion::d, PackPointerUnion::f, PackPointerUnion::l, CigiBaseLosVectReq::LosID, CigiBaseLosVectReq::MaxRange, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseLosVectReq::SrcXLat, CigiBaseLosVectReq::SrcYLon, CigiBaseLosVectReq::SrcZAlt, CigiBaseLosVectReq::UpdatePeriod, CigiBaseLosVectReq::ValidV1or2, CigiBaseLosVectReq::VectAz, and CigiBaseLosVectReq::VectEl.
00178 { 00179 double DBuf[6]; 00180 00181 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf; 00182 00183 PackPointer CDta; 00184 00185 memcpy(tBuf,Buff,CIGI_LOS_VECT_REQ_PACKET_SIZE_V1); 00186 00187 CDta.d = DBuf; 00188 00189 CDta.c += 2; // Step over packet id and size 00190 00191 CIGI_SCOPY2(&LosID, CDta.s++); 00192 00193 CDta.l++; 00194 00195 CIGI_SCOPY4(&VectAz, CDta.f++); 00196 CIGI_SCOPY4(&VectEl, CDta.f++); 00197 CIGI_SCOPY4(&MaxRange, CDta.f++); 00198 00199 float tflt; 00200 CIGI_SCOPY4(&tflt, CDta.f++); 00201 SrcZAlt = (double)tflt; 00202 00203 CIGI_SCOPY8(&SrcXLat, CDta.d++); 00204 CIGI_SCOPY8(&SrcYLon, CDta.d++); 00205 00206 UpdatePeriod = 0; 00207 00208 ValidV1or2 = true; 00209 00210 return(PacketSize); 00211 00212 }