CigiLosSegReqV1 Class Reference

#include <CigiLosSegReqV1.h>

Inheritance diagram for CigiLosSegReqV1:

CigiBaseLosSegReq CigiBasePacket List of all members.

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)

Detailed Description

Definition at line 57 of file CigiLosSegReqV1.h.


Constructor & Destructor Documentation

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]

General Destructor

Definition at line 123 of file CigiLosSegReqV1.cpp.

00124 {
00125 
00126 }


Member Function Documentation

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

The virtual Pack function for CIGI 1

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 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

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 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 }


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