CigiTerrestrialSurfaceCtrlV3 Class Reference

#include <CigiTerrestrialSurfaceCtrlV3.h>

Inheritance diagram for CigiTerrestrialSurfaceCtrlV3:

CigiBaseTerrestrialSurfaceCtrl CigiBasePacket List of all members.

Public Member Functions

 CigiTerrestrialSurfaceCtrlV3 ()
virtual ~CigiTerrestrialSurfaceCtrlV3 ()
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 58 of file CigiTerrestrialSurfaceCtrlV3.h.


Constructor & Destructor Documentation

CigiTerrestrialSurfaceCtrlV3::CigiTerrestrialSurfaceCtrlV3 (  ) 

General Constructor

Definition at line 67 of file CigiTerrestrialSurfaceCtrlV3.cpp.

References CIGI_TERRESTRIAL_SURFACE_CTRL_PACKET_ID_V3, CIGI_TERRESTRIAL_SURFACE_CTRL_PACKET_SIZE_V3, CigiBaseTerrestrialSurfaceCtrl::Coverage, CigiBaseTerrestrialSurfaceCtrl::EntityRgnID, CigiBaseTerrestrialSurfaceCtrl::Global, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseTerrestrialSurfaceCtrl::Scope, CigiBaseTerrestrialSurfaceCtrl::Severity, CigiBaseTerrestrialSurfaceCtrl::SurfaceCondEn, CigiBaseTerrestrialSurfaceCtrl::SurfaceCondID, and CigiBasePacket::Version.

00068 {
00069 
00070    PacketID = CIGI_TERRESTRIAL_SURFACE_CTRL_PACKET_ID_V3;
00071    PacketSize = CIGI_TERRESTRIAL_SURFACE_CTRL_PACKET_SIZE_V3;
00072    Version = 3;
00073    MinorVersion = 0;
00074 
00075    EntityRgnID = 0;
00076    SurfaceCondID = 0;
00077    SurfaceCondEn = false;
00078    Scope = Global;
00079    Severity = 0;
00080    Coverage = 0;
00081 
00082 }

CigiTerrestrialSurfaceCtrlV3::~CigiTerrestrialSurfaceCtrlV3 (  )  [virtual]

General Destructor

Definition at line 87 of file CigiTerrestrialSurfaceCtrlV3.cpp.

00088 {
00089 
00090 }


Member Function Documentation

int CigiTerrestrialSurfaceCtrlV3::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 CigiBaseTerrestrialSurfaceCtrl.

Definition at line 99 of file CigiTerrestrialSurfaceCtrlV3.cpp.

References PackPointerUnion::c, CigiBaseTerrestrialSurfaceCtrl::Coverage, CigiBaseTerrestrialSurfaceCtrl::EntityRgnID, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseTerrestrialSurfaceCtrl::Scope, CigiBaseTerrestrialSurfaceCtrl::Severity, CigiBaseTerrestrialSurfaceCtrl::SurfaceCondEn, and CigiBaseTerrestrialSurfaceCtrl::SurfaceCondID.

00100 {
00101    PackPointer CDta;
00102 
00103    CigiBaseTerrestrialSurfaceCtrl * Data = ( CigiBaseTerrestrialSurfaceCtrl *)Base;
00104 
00105    CDta.c = Buff;
00106 
00107    *CDta.c++ = PacketID;
00108    *CDta.c++ = PacketSize;
00109 
00110    *CDta.s++ = Data->EntityRgnID;
00111    *CDta.s++ = Data->SurfaceCondID;
00112 
00113    Cigi_uint8 HDta = (Data->SurfaceCondEn) ? 0x01 : 0;
00114    HDta |= (Data->Scope << 1) & 0x06;
00115    HDta |= (Data->Severity << 3) & 0xf8;
00116    *CDta.c++ = HDta;
00117 
00118    *CDta.c++ = Data->Coverage;
00119 
00120    return(PacketSize);
00121 
00122 }

int CigiTerrestrialSurfaceCtrlV3::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 CigiBaseTerrestrialSurfaceCtrl.

Definition at line 127 of file CigiTerrestrialSurfaceCtrlV3.cpp.

References PackPointerUnion::c, CigiSwap2(), CigiBaseTerrestrialSurfaceCtrl::Coverage, CigiBaseTerrestrialSurfaceCtrl::EntityRgnID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseTerrestrialSurfaceCtrl::Scope, CigiBaseTerrestrialSurfaceCtrl::Severity, CigiBaseTerrestrialSurfaceCtrl::SurfaceCondEn, and CigiBaseTerrestrialSurfaceCtrl::SurfaceCondID.

00128 {
00129    PackPointer CDta;
00130 
00131    CDta.c = Buff;
00132 
00133    CDta.c += 2;  // Step over packet id and size
00134 
00135    if(!Swap)
00136    {
00137       EntityRgnID = *CDta.s++;
00138       SurfaceCondID = *CDta.s++;
00139 
00140       Cigi_uint8 HDta = *CDta.c++;
00141       SurfaceCondEn = ((HDta & 0x01) != 0);
00142       Scope = (ScopeGrp)((HDta >> 1) & 0x03);
00143       Severity = (HDta >> 3) & 0x1f;
00144 
00145       Coverage = *CDta.c++;
00146    }
00147    else
00148    {
00149       CigiSwap2(&EntityRgnID, CDta.s++);
00150       CigiSwap2(&SurfaceCondID, CDta.s++);
00151 
00152       Cigi_uint8 HDta = *CDta.c++;
00153       SurfaceCondEn = ((HDta & 0x01) != 0);
00154       Scope = (ScopeGrp)((HDta >> 1) & 0x03);
00155       Severity = (HDta >> 3) & 0x1f;
00156 
00157       Coverage = *CDta.c++;
00158    }
00159 
00160    return(PacketSize);
00161 
00162 }


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