CigiPositionReqV3 Class Reference

#include <CigiPositionReqV3.h>

Inheritance diagram for CigiPositionReqV3:

CigiBasePositionReq CigiBasePacket List of all members.

Public Member Functions

 CigiPositionReqV3 ()
virtual ~CigiPositionReqV3 ()
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 CigiPositionReqV3.h.


Constructor & Destructor Documentation

CigiPositionReqV3::CigiPositionReqV3 (  ) 

General Constructor

Definition at line 67 of file CigiPositionReqV3.cpp.

References CigiBasePositionReq::ArtPartID, CIGI_POSITION_REQ_PACKET_ID_V3, CIGI_POSITION_REQ_PACKET_SIZE_V3, CigiBasePositionReq::CoordSys, CigiBasePositionReq::Entity, CigiBasePositionReq::Geodetic, CigiBasePacket::MinorVersion, CigiBasePositionReq::ObjectClass, CigiBasePositionReq::ObjectID, CigiBasePositionReq::OneShot, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBasePositionReq::UpdateMode, and CigiBasePacket::Version.

00068 {
00069 
00070    PacketID = CIGI_POSITION_REQ_PACKET_ID_V3;
00071    PacketSize = CIGI_POSITION_REQ_PACKET_SIZE_V3;
00072    Version = 3;
00073    MinorVersion = 0;
00074 
00075    ObjectID = 0;
00076    ArtPartID = 0;
00077    UpdateMode = OneShot;
00078    ObjectClass = Entity;
00079    CoordSys = Geodetic;
00080 
00081 }

CigiPositionReqV3::~CigiPositionReqV3 (  )  [virtual]

General Destructor

Definition at line 86 of file CigiPositionReqV3.cpp.

00087 {
00088 
00089 }


Member Function Documentation

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

The virtual Pack function for CIGI 3

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

Definition at line 98 of file CigiPositionReqV3.cpp.

References CigiBasePositionReq::ArtPartID, PackPointerUnion::c, CigiBasePositionReq::CoordSys, CigiBasePositionReq::ObjectClass, CigiBasePositionReq::ObjectID, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, and CigiBasePositionReq::UpdateMode.

00099 {
00100    PackPointer CDta;
00101 
00102    CigiBasePositionReq * Data = ( CigiBasePositionReq *)Base;
00103 
00104    CDta.c = Buff;
00105 
00106    *CDta.c++ = PacketID;
00107    *CDta.c++ = PacketSize;
00108 
00109    *CDta.s++ = Data->ObjectID;
00110    *CDta.c++ = Data->ArtPartID;
00111 
00112    Cigi_uint8 HDta = Data->UpdateMode & 0x01;
00113    HDta |= (Data->ObjectClass << 1) & 0x0e;
00114    HDta |= (Data->CoordSys << 4) & 0x30;
00115    *CDta.c++ = HDta;
00116 
00117    *CDta.s++ = 0;
00118 
00119    return(PacketSize);
00120 
00121 }

int CigiPositionReqV3::Unpack ( Cigi_uint8 Buff,
bool  Swap,
void *  Spec 
) [virtual]

The virtual Unpack function for CIGI 3

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

Definition at line 126 of file CigiPositionReqV3.cpp.

References CigiBasePositionReq::ArtPartID, PackPointerUnion::c, CigiSwap2(), CigiBasePositionReq::CoordSys, CigiBasePositionReq::ObjectClass, CigiBasePositionReq::ObjectID, CigiBasePacket::PacketSize, PackPointerUnion::s, and CigiBasePositionReq::UpdateMode.

00127 {
00128    PackPointer CDta;
00129 
00130    CDta.c = Buff;
00131 
00132    CDta.c += 2;  // Step over packet id and size
00133 
00134    if(!Swap)
00135       ObjectID = *CDta.s++;
00136    else
00137       CigiSwap2(&ObjectID, CDta.s++);
00138 
00139    ArtPartID = *CDta.c++;
00140 
00141    Cigi_uint8 HDta = *CDta.c++;
00142    UpdateMode = (UpdateModeGrp)(HDta & 0x01);
00143    ObjectClass = (ObjectClassGrp)((HDta >> 1) & 0x07);
00144    CoordSys = (CoordSysGrp)((HDta >> 4) & 0x03);
00145 
00146 
00147    return(PacketSize);
00148 
00149 }


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