#include <CigiTerrestrialSurfaceCtrlV3.h>
Inheritance diagram for CigiTerrestrialSurfaceCtrlV3:
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) |
Definition at line 58 of file CigiTerrestrialSurfaceCtrlV3.h.
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] |
int CigiTerrestrialSurfaceCtrlV3::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 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
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 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 }