#include <CigiLosVectReqV2.h>
Inheritance diagram for CigiLosVectReqV2:
Public Member Functions | |
CigiLosVectReqV2 () | |
virtual | ~CigiLosVectReqV2 () |
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) |
int | SetMinRange (const float MinRangeIn, bool bndchk=true) |
float | GetMinRange (void) const |
Definition at line 58 of file CigiLosVectReqV2.h.
CigiLosVectReqV2::CigiLosVectReqV2 | ( | ) |
General Constructor
Definition at line 90 of file CigiLosVectReqV2.cpp.
References CigiBaseLosVectReq::AlphaThresh, CIGI_LOS_VECT_REQ_PACKET_ID_V2, CIGI_LOS_VECT_REQ_PACKET_SIZE_V2, 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_V2; 00094 PacketSize = CIGI_LOS_VECT_REQ_PACKET_SIZE_V2; 00095 Version = 2; 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 }
CigiLosVectReqV2::~CigiLosVectReqV2 | ( | ) | [virtual] |
float CigiLosVectReqV2::GetMinRange | ( | void | ) | const [inline] |
Gets the MinRange value.
Definition at line 149 of file CigiLosVectReqV2.h.
00149 { return(MinRange); }
float CigiLosVectReqV2::GetVectAz | ( | void | ) | [inline] |
Gets the VectAz value.
Definition at line 121 of file CigiLosVectReqV2.h.
int CigiLosVectReqV2::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 CigiBaseLosVectReq.
Definition at line 132 of file CigiLosVectReqV2.cpp.
References PackPointerUnion::c, CIGI_LOS_VECT_REQ_PACKET_SIZE_V2, CIGI_SCOPY2, CIGI_SCOPY4, CIGI_SCOPY8, PackPointerUnion::d, PackPointerUnion::f, PackPointerUnion::l, CigiBaseLosVectReq::LosID, CigiBaseLosVectReq::MaxRange, CigiBaseLosVectReq::MinRange, 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++ = PacketID; 00148 *CDta.c++ = PacketSize; 00149 00150 CIGI_SCOPY2(CDta.s++, &Data->LosID); 00151 00152 if(Data->VectAz < 0.0f) 00153 Data->VectAz += 360.0f; 00154 00155 CIGI_SCOPY4(CDta.f++, &Data->VectAz); 00156 00157 CIGI_SCOPY4(CDta.f++, &Data->VectEl); 00158 00159 *CDta.l++ = 0; 00160 00161 CIGI_SCOPY4(CDta.f++, &Data->MinRange); 00162 CIGI_SCOPY4(CDta.f++, &Data->MaxRange); 00163 CIGI_SCOPY8(CDta.d++, &Data->SrcZAlt); 00164 CIGI_SCOPY8(CDta.d++, &Data->SrcXLat); 00165 CIGI_SCOPY8(CDta.d++, &Data->SrcYLon); 00166 00167 memcpy(Buff,tBuf,CIGI_LOS_VECT_REQ_PACKET_SIZE_V2); 00168 00169 return(PacketSize); 00170 00171 }
int CigiLosVectReqV2::SetMinRange | ( | const float | MinRangeIn, | |
bool | bndchk = true | |||
) | [inline] |
Sets the MinRange with bound checking control
MinRangeIn | - Minimum range from the starting point where intersections will be reported. | |
bndchk | - Enables (true) or disables (false) bounds checking. |
Definition at line 140 of file CigiLosVectReqV2.h.
References CIGI_SUCCESS.
00141 { 00142 MinRange = MinRangeIn; 00143 return(CIGI_SUCCESS); 00144 }
int CigiLosVectReqV2::SetVectAz | ( | const float | VectAzIn, | |
bool | bndchk = true | |||
) |
Sets the VectAz with bound checking control
VectAzIn | - Azimuth angle of the vector | |
bndchk | - Enables (true) or disables (false) bounds checking. |
Definition at line 220 of file CigiLosVectReqV2.cpp.
References CIGI_ERROR_VALUE_OUT_OF_RANGE, CIGI_SUCCESS, and CigiBaseLosVectReq::VectAz.
00221 { 00222 00223 #ifndef CIGI_NO_BND_CHK 00224 if(bndchk && ((VectAzIn < 0.0)||(VectAzIn > 360.0))) 00225 { 00226 #ifndef CIGI_NO_EXCEPT 00227 throw CigiValueOutOfRangeException("VectAz",(float)VectAzIn,0.0,360.0); 00228 #endif 00229 return(CIGI_ERROR_VALUE_OUT_OF_RANGE); 00230 } 00231 #endif 00232 00233 VectAz = VectAzIn; 00234 return(CIGI_SUCCESS); 00235 00236 }
int CigiLosVectReqV2::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 CigiBaseLosVectReq.
Definition at line 176 of file CigiLosVectReqV2.cpp.
References PackPointerUnion::c, CIGI_LOS_VECT_REQ_PACKET_SIZE_V2, CIGI_SCOPY2, CIGI_SCOPY4, CIGI_SCOPY8, PackPointerUnion::d, PackPointerUnion::f, PackPointerUnion::l, CigiBaseLosVectReq::LosID, CigiBaseLosVectReq::MaxRange, CigiBaseLosVectReq::MinRange, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseLosVectReq::SrcXLat, CigiBaseLosVectReq::SrcYLon, CigiBaseLosVectReq::SrcZAlt, CigiBaseLosVectReq::UpdatePeriod, CigiBaseLosVectReq::ValidV1or2, CigiBaseLosVectReq::VectAz, and CigiBaseLosVectReq::VectEl.
00177 { 00178 double DBuf[6]; 00179 00180 Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf; 00181 00182 PackPointer CDta; 00183 00184 memcpy(tBuf,Buff,CIGI_LOS_VECT_REQ_PACKET_SIZE_V2); 00185 00186 CDta.d = DBuf; 00187 00188 CDta.c += 2; // Step over packet id and size 00189 00190 CIGI_SCOPY2(&LosID, CDta.s++); 00191 CIGI_SCOPY4(&VectAz, CDta.f++); 00192 CIGI_SCOPY4(&VectEl, CDta.f++); 00193 00194 CDta.l++; 00195 00196 CIGI_SCOPY4(&MinRange, CDta.f++); 00197 CIGI_SCOPY4(&MaxRange, CDta.f++); 00198 CIGI_SCOPY8(&SrcZAlt, CDta.d++); 00199 CIGI_SCOPY8(&SrcXLat, CDta.d++); 00200 CIGI_SCOPY8(&SrcYLon, CDta.d++); 00201 00202 UpdatePeriod = 0; 00203 00204 ValidV1or2 = true; 00205 00206 return(PacketSize); 00207 00208 }