#include <CigiMaritimeSurfaceCtrlV3.h>
Inheritance diagram for CigiMaritimeSurfaceCtrlV3:
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) |
Definition at line 57 of file CigiMaritimeSurfaceCtrlV3.h.
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] |
int CigiMaritimeSurfaceCtrlV3::Pack | ( | CigiBasePacket * | Base, | |
Cigi_uint8 * | Buff, | |||
void * | Spec | |||
) | const [virtual] |
The virtual Pack function for CIGI 3
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. |
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
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. |
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 }