#include <CigiWaveCtrlV3.h>
Inheritance diagram for CigiWaveCtrlV3:
Public Member Functions | |
CigiWaveCtrlV3 () | |
virtual | ~CigiWaveCtrlV3 () |
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 CigiWaveCtrlV3.h.
CigiWaveCtrlV3::CigiWaveCtrlV3 | ( | ) |
General Constructor
Definition at line 67 of file CigiWaveCtrlV3.cpp.
References CigiBaseWaveCtrl::Breaker, CIGI_WAVE_CTRL_PACKET_ID_V3, CIGI_WAVE_CTRL_PACKET_SIZE_V3, CigiBaseWaveCtrl::Direction, CigiBaseWaveCtrl::EntityRgnID, CigiBaseWaveCtrl::Global, CigiBaseWaveCtrl::Leading, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseWaveCtrl::Period, CigiBaseWaveCtrl::PhaseOff, CigiBaseWaveCtrl::Plunging, CigiBaseWaveCtrl::Scope, CigiBasePacket::Version, CigiBaseWaveCtrl::WaveEn, CigiBaseWaveCtrl::WaveHt, CigiBaseWaveCtrl::WaveID, and CigiBaseWaveCtrl::WaveLen.
00068 { 00069 00070 PacketID = CIGI_WAVE_CTRL_PACKET_ID_V3; 00071 PacketSize = CIGI_WAVE_CTRL_PACKET_SIZE_V3; 00072 Version = 3; 00073 MinorVersion = 0; 00074 00075 EntityRgnID = 0; 00076 WaveID = 0; 00077 WaveEn = false; 00078 Scope = Global; 00079 Breaker = Plunging; 00080 WaveHt = 0.0; 00081 WaveLen = 0.0; 00082 Period = 0.0; 00083 Direction = 0.0; 00084 PhaseOff = 0.0; 00085 Leading = 0.0; 00086 00087 }
CigiWaveCtrlV3::~CigiWaveCtrlV3 | ( | ) | [virtual] |
int CigiWaveCtrlV3::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 CigiBaseWaveCtrl.
Definition at line 104 of file CigiWaveCtrlV3.cpp.
References CigiBaseWaveCtrl::Breaker, PackPointerUnion::c, CigiBaseWaveCtrl::Direction, CigiBaseWaveCtrl::EntityRgnID, PackPointerUnion::f, CigiBaseWaveCtrl::Leading, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseWaveCtrl::Period, CigiBaseWaveCtrl::PhaseOff, PackPointerUnion::s, CigiBaseWaveCtrl::Scope, CigiBaseWaveCtrl::WaveEn, CigiBaseWaveCtrl::WaveHt, CigiBaseWaveCtrl::WaveID, and CigiBaseWaveCtrl::WaveLen.
00105 { 00106 PackPointer CDta; 00107 00108 CigiBaseWaveCtrl * Data = ( CigiBaseWaveCtrl *)Base; 00109 00110 CDta.c = Buff; 00111 00112 *CDta.c++ = PacketID; 00113 *CDta.c++ = PacketSize; 00114 00115 *CDta.s++ = Data->EntityRgnID; 00116 *CDta.c++ = Data->WaveID; 00117 00118 Cigi_uint8 HDta = (Data->WaveEn) ? 0x01 : 0; 00119 HDta |= (Data->Scope<< 1) & 0x06; 00120 HDta |= (Data->Breaker << 3) & 0x18; 00121 *CDta.c++ = HDta; 00122 00123 *CDta.s++ = 0; 00124 00125 *CDta.f++ = Data->WaveHt; 00126 *CDta.f++ = Data->WaveLen; 00127 *CDta.f++ = Data->Period; 00128 *CDta.f++ = Data->Direction; 00129 *CDta.f++ = Data->PhaseOff; 00130 *CDta.f++ = Data->Leading; 00131 00132 return(PacketSize); 00133 00134 }
int CigiWaveCtrlV3::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 CigiBaseWaveCtrl.
Definition at line 139 of file CigiWaveCtrlV3.cpp.
References CigiBaseWaveCtrl::Breaker, PackPointerUnion::c, CigiSwap2(), CigiSwap4(), CigiBaseWaveCtrl::Direction, CigiBaseWaveCtrl::EntityRgnID, PackPointerUnion::f, CigiBaseWaveCtrl::Leading, CigiBasePacket::PacketSize, CigiBaseWaveCtrl::Period, CigiBaseWaveCtrl::PhaseOff, PackPointerUnion::s, CigiBaseWaveCtrl::Scope, CigiBaseWaveCtrl::WaveEn, CigiBaseWaveCtrl::WaveHt, CigiBaseWaveCtrl::WaveID, and CigiBaseWaveCtrl::WaveLen.
00140 { 00141 PackPointer CDta; 00142 00143 CDta.c = Buff; 00144 00145 CDta.c += 2; // Step over packet id and size 00146 00147 if(!Swap) 00148 { 00149 EntityRgnID = *CDta.s++; 00150 WaveID = *CDta.c++; 00151 00152 Cigi_uint8 HDta = *CDta.c++; 00153 WaveEn = ((HDta & 0x01) != 0); 00154 Scope = (ScopeGrp)((HDta >> 1) & 0x03); 00155 Breaker = (BreakerGrp)((HDta >> 3) & 0x03); 00156 00157 CDta.s++; 00158 00159 WaveHt = *CDta.f++; 00160 WaveLen = *CDta.f++; 00161 Period = *CDta.f++; 00162 Direction = *CDta.f++; 00163 PhaseOff = *CDta.f++; 00164 Leading = *CDta.f++; 00165 } 00166 else 00167 { 00168 CigiSwap2(&EntityRgnID, CDta.s++); 00169 WaveID = *CDta.c++; 00170 00171 Cigi_uint8 HDta = *CDta.c++; 00172 WaveEn = ((HDta & 0x01) != 0); 00173 Scope = (ScopeGrp)((HDta >> 1) & 0x03); 00174 Breaker = (BreakerGrp)((HDta >> 3) & 0x03); 00175 00176 CDta.s++; 00177 00178 CigiSwap4(&WaveHt, CDta.f++); 00179 CigiSwap4(&WaveLen, CDta.f++); 00180 CigiSwap4(&Period, CDta.f++); 00181 CigiSwap4(&Direction, CDta.f++); 00182 CigiSwap4(&PhaseOff, CDta.f++); 00183 CigiSwap4(&Leading, CDta.f++); 00184 } 00185 00186 return(PacketSize); 00187 00188 }