CigiMaritimeSurfaceCtrlV3 Class Reference

#include <CigiMaritimeSurfaceCtrlV3.h>

Inheritance diagram for CigiMaritimeSurfaceCtrlV3:

CigiBaseMaritimeSurfaceCtrl CigiBasePacket List of all members.

Public Member Functions

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


Constructor & Destructor Documentation

CigiMaritimeSurfaceCtrlV3::CigiMaritimeSurfaceCtrlV3 (  ) 

General Constructor

Definition at line 70 of file CigiMaritimeSurfaceCtrlV3.cpp.

References CIGI_MARITIME_SURFACE_CTRL_PACKET_ID_V3, CIGI_MARITIME_SURFACE_CTRL_PACKET_SIZE_V3, CigiBaseMaritimeSurfaceCtrl::Clarity, CigiBaseMaritimeSurfaceCtrl::EntityRgnID, CigiBaseMaritimeSurfaceCtrl::Global, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseMaritimeSurfaceCtrl::Scope, CigiBaseMaritimeSurfaceCtrl::SurfaceCondEn, CigiBaseMaritimeSurfaceCtrl::SurfaceHeight, CigiBasePacket::Version, CigiBaseMaritimeSurfaceCtrl::WaterTemp, and CigiBaseMaritimeSurfaceCtrl::WhitecapEn.

00071 {
00072 
00073    PacketID = CIGI_MARITIME_SURFACE_CTRL_PACKET_ID_V3;
00074    PacketSize = CIGI_MARITIME_SURFACE_CTRL_PACKET_SIZE_V3;
00075    Version = 3;
00076    MinorVersion = 0;
00077 
00078    EntityRgnID = 0;
00079    SurfaceCondEn = false;
00080    WhitecapEn = false;
00081    Scope = Global;
00082    SurfaceHeight = 0.0;
00083    WaterTemp = 0.0;
00084    Clarity = 0.0;
00085 
00086 }

CigiMaritimeSurfaceCtrlV3::~CigiMaritimeSurfaceCtrlV3 (  )  [virtual]

General Destructor

Definition at line 91 of file CigiMaritimeSurfaceCtrlV3.cpp.

00092 {
00093 
00094 }


Member Function Documentation

int CigiMaritimeSurfaceCtrlV3::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 CigiBaseMaritimeSurfaceCtrl.

Definition at line 103 of file CigiMaritimeSurfaceCtrlV3.cpp.

References PackPointerUnion::c, CigiBaseMaritimeSurfaceCtrl::Clarity, CigiBaseMaritimeSurfaceCtrl::EntityRgnID, PackPointerUnion::f, PackPointerUnion::l, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseMaritimeSurfaceCtrl::Scope, CigiBaseMaritimeSurfaceCtrl::SurfaceCondEn, CigiBaseMaritimeSurfaceCtrl::SurfaceHeight, CigiBaseMaritimeSurfaceCtrl::WaterTemp, and CigiBaseMaritimeSurfaceCtrl::WhitecapEn.

00104 {
00105    PackPointer CDta;
00106 
00107    CigiBaseMaritimeSurfaceCtrl * Data = ( CigiBaseMaritimeSurfaceCtrl *)Base;
00108 
00109    CDta.c = Buff;
00110 
00111    *CDta.c++ = PacketID;
00112    *CDta.c++ = PacketSize;
00113 
00114    *CDta.s++ = Data->EntityRgnID;
00115 
00116    Cigi_uint8 HDta = (Data->SurfaceCondEn) ? 0x01 : 0;
00117    HDta |= (Data->WhitecapEn) ? 0x02 : 0;
00118    HDta |= (Data->Scope << 2) & 0x0c;
00119    *CDta.c++ = HDta;
00120 
00121    *CDta.c++ = 0;
00122    *CDta.s++ = 0;
00123 
00124    *CDta.f++ = Data->SurfaceHeight;
00125    *CDta.f++ = Data->WaterTemp;
00126    *CDta.f++ = Data->Clarity;
00127    *CDta.l++ = 0;
00128 
00129    return(PacketSize);
00130 
00131 }

int CigiMaritimeSurfaceCtrlV3::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 CigiBaseMaritimeSurfaceCtrl.

Definition at line 136 of file CigiMaritimeSurfaceCtrlV3.cpp.

References PackPointerUnion::c, CigiSwap2(), CigiSwap4(), CigiBaseMaritimeSurfaceCtrl::Clarity, CigiBaseMaritimeSurfaceCtrl::EntityRgnID, PackPointerUnion::f, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseMaritimeSurfaceCtrl::Scope, CigiBaseMaritimeSurfaceCtrl::SurfaceCondEn, CigiBaseMaritimeSurfaceCtrl::SurfaceHeight, CigiBaseMaritimeSurfaceCtrl::WaterTemp, and CigiBaseMaritimeSurfaceCtrl::WhitecapEn.

00137 {
00138    PackPointer CDta;
00139 
00140    CDta.c = Buff;
00141 
00142    CDta.c += 2;  // Step over packet id and size
00143 
00144    if(!Swap)
00145    {
00146       EntityRgnID = *CDta.s++;
00147 
00148       Cigi_uint16 HDta = *CDta.c++;
00149       SurfaceCondEn = ((HDta & 0x01) != 0);
00150       WhitecapEn = ((HDta & 0x02) != 0);
00151       Scope = (ScopeGrp)((HDta >> 2) & 0x03);
00152 
00153       CDta.c += 3;
00154 
00155       SurfaceHeight = *CDta.f++;
00156       WaterTemp = *CDta.f++;
00157       Clarity = *CDta.f++;
00158    }
00159    else
00160    {
00161       CigiSwap2(&EntityRgnID, CDta.s++);
00162 
00163       Cigi_uint16 HDta = *CDta.c++;
00164       SurfaceCondEn = ((HDta & 0x01) != 0);
00165       WhitecapEn = ((HDta & 0x02) != 0);
00166       Scope = (ScopeGrp)((HDta >> 2) & 0x03);
00167 
00168       CDta.c += 3;
00169 
00170       CigiSwap4(&SurfaceHeight, CDta.f++);
00171       CigiSwap4(&WaterTemp, CDta.f++);
00172       CigiSwap4(&Clarity, CDta.f++);
00173    }
00174 
00175    return(PacketSize);
00176 
00177 }


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