CigiLosVectReqV2 Class Reference

#include <CigiLosVectReqV2.h>

Inheritance diagram for CigiLosVectReqV2:

CigiBaseLosVectReq CigiBasePacket List of all members.

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

Detailed Description

Definition at line 58 of file CigiLosVectReqV2.h.


Constructor & Destructor Documentation

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]

General Destructor

Definition at line 120 of file CigiLosVectReqV2.cpp.

00121 {
00122 
00123 }


Member Function Documentation

float CigiLosVectReqV2::GetMinRange ( void   )  const [inline]

Gets the MinRange value.

Returns:
the current MinRange.

Definition at line 149 of file CigiLosVectReqV2.h.

00149 { return(MinRange); }

float CigiLosVectReqV2::GetVectAz ( void   )  [inline]

Gets the VectAz value.

Returns:
the current VectAz.

Definition at line 121 of file CigiLosVectReqV2.h.

00122    {
00123       if(VectAz < 0.0f)
00124          VectAz += 360.0f;
00125 
00126       return(VectAz);
00127    }

int CigiLosVectReqV2::Pack ( CigiBasePacket Base,
Cigi_uint8 Buff,
void *  Spec 
) const [virtual]

The virtual Pack function for CIGI 2

Parameters:
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.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

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

Parameters:
MinRangeIn - Minimum range from the starting point where intersections will be reported.
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

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

Parameters:
VectAzIn - Azimuth angle of the vector
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

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

Parameters:
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.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

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 }


The documentation for this class was generated from the following files:
Generated on Wed Apr 29 09:00:09 2009 for CCL by  doxygen 1.4.7