#include <CigiShortSymbolCtrlV3_3.h>
Inheritance diagram for CigiShortSymbolCtrlV3_3:
Public Member Functions | |
CigiShortSymbolCtrlV3_3 (void) | |
virtual | ~CigiShortSymbolCtrlV3_3 (void) |
virtual int | Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const |
virtual int | Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec) |
Definition at line 50 of file CigiShortSymbolCtrlV3_3.h.
CigiShortSymbolCtrlV3_3::CigiShortSymbolCtrlV3_3 | ( | void | ) |
General Constructor
Definition at line 59 of file CigiShortSymbolCtrlV3_3.cpp.
References CigiBaseShortSymbolCtrl::AttachState, CIGI_SHORT_SYMBOL_CONTROL_PACKET_ID_V3_3, CIGI_SHORT_SYMBOL_CONTROL_PACKET_SIZE_V3_3, CigiBaseSymbolCtrl::Continue, CigiBaseShortSymbolCtrl::Datum, CigiBaseShortSymbolCtrl::DatumType, CigiBaseSymbolCtrl::Detach, CigiBaseShortSymbolCtrl::FlashCtrl, CigiBaseSymbolCtrl::Hidden, CigiBaseShortSymbolCtrl::InheritColor, CigiBasePacket::MinorVersion, CigiBaseShortSymbolCtrl::None, CigiBaseSymbolCtrl::NotInherit, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseShortSymbolCtrl::SymbolID, CigiBaseShortSymbolCtrl::SymbolState, and CigiBasePacket::Version.
00060 { 00061 PacketID = CIGI_SHORT_SYMBOL_CONTROL_PACKET_ID_V3_3; 00062 PacketSize = CIGI_SHORT_SYMBOL_CONTROL_PACKET_SIZE_V3_3; 00063 Version = 3; 00064 MinorVersion = 3; 00065 00066 SymbolID = 0; 00067 SymbolState = CigiBaseSymbolCtrl::Hidden; 00068 AttachState = CigiBaseSymbolCtrl::Detach; 00069 FlashCtrl = CigiBaseSymbolCtrl::Continue; 00070 InheritColor = CigiBaseSymbolCtrl::NotInherit; 00071 DatumType[0] = None; 00072 DatumType[1] = None; 00073 Datum[0].UIntValue = 0; 00074 Datum[1].UIntValue = 0; 00075 00076 }
CigiShortSymbolCtrlV3_3::~CigiShortSymbolCtrlV3_3 | ( | void | ) | [virtual] |
int CigiShortSymbolCtrlV3_3::Pack | ( | CigiBasePacket * | Base, | |
Cigi_uint8 * | Buff, | |||
void * | Spec | |||
) | const [virtual] |
A virtual Pack function.
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. |
Implements CigiBaseShortSymbolCtrl.
Definition at line 94 of file CigiShortSymbolCtrlV3_3.cpp.
References CigiBaseShortSymbolCtrl::AttachState, PackPointerUnion::c, CigiBaseShortSymbolCtrl::Datum, CigiBaseShortSymbolCtrl::DatumType, CigiBaseShortSymbolCtrl::FlashCtrl, CigiBaseShortSymbolCtrl::InheritColor, PackPointerUnion::l, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseShortSymbolCtrl::SymbolID, and CigiBaseShortSymbolCtrl::SymbolState.
00095 { 00096 PackPointer CDta; 00097 00098 CigiShortSymbolCtrlV3_3 * Data = 00099 ( CigiShortSymbolCtrlV3_3 *)Base; 00100 00101 CDta.c = Buff; 00102 00103 *CDta.c++ = PacketID; 00104 *CDta.c++ = PacketSize; 00105 00106 *CDta.s++ = Data->SymbolID; 00107 00108 unsigned char HDta = 0; 00109 HDta |= (Data->SymbolState & 0x03); 00110 HDta |= ((Data->AttachState << 2) & 0x04); 00111 HDta |= ((Data->FlashCtrl << 3) & 0x08); 00112 HDta |= ((Data->InheritColor << 4) & 0x10); 00113 *CDta.c++ = HDta; 00114 00115 *CDta.c++ = 0; 00116 00117 *CDta.c++ = Data->DatumType[0]; 00118 *CDta.c++ = Data->DatumType[1]; 00119 *CDta.l++ = Data->Datum[0].UIntValue; 00120 *CDta.l++ = Data->Datum[1].UIntValue; 00121 00122 00123 return(PacketSize); 00124 00125 }
int CigiShortSymbolCtrlV3_3::Unpack | ( | Cigi_uint8 * | Buff, | |
bool | Swap, | |||
void * | Spec | |||
) | [virtual] |
A virtual Unpack function.
Buff | - A pointer to the current pack point. | |
Swap | - N/A for V1 & V2 | |
Spec | - A pointer to special data. |
Implements CigiBaseShortSymbolCtrl.
Definition at line 130 of file CigiShortSymbolCtrlV3_3.cpp.
References CigiBaseShortSymbolCtrl::AttachState, PackPointerUnion::c, CigiSwap2(), CigiSwap4(), CigiBaseShortSymbolCtrl::Datum, CigiBaseShortSymbolCtrl::DatumType, CigiBaseShortSymbolCtrl::FlashCtrl, CigiBaseShortSymbolCtrl::InheritColor, PackPointerUnion::l, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseShortSymbolCtrl::SymbolID, and CigiBaseShortSymbolCtrl::SymbolState.
00131 { 00132 PackPointer CDta; 00133 unsigned char HDta = 0; 00134 00135 CDta.c = Buff; 00136 00137 CDta.c += 2; // Step over packet id and size 00138 00139 if(!Swap) 00140 { 00141 00142 SymbolID = *CDta.s++; 00143 00144 HDta = *CDta.c++; 00145 00146 CDta.c++; 00147 00148 DatumType[0] = (DatumTypeGrp)*CDta.c++; 00149 DatumType[1] = (DatumTypeGrp)*CDta.c++; 00150 Datum[0].UIntValue = *CDta.l++; 00151 Datum[1].UIntValue = *CDta.l++; 00152 00153 } 00154 else 00155 { 00156 00157 CigiSwap2(&SymbolID, CDta.s++); 00158 00159 HDta = *CDta.c++; 00160 00161 CDta.c++; 00162 00163 DatumType[0] = (DatumTypeGrp)*CDta.c++; 00164 DatumType[1] = (DatumTypeGrp)*CDta.c++; 00165 CigiSwap4(&Datum[0].UIntValue, CDta.l++); 00166 CigiSwap4(&Datum[1].UIntValue, CDta.l++); 00167 00168 } 00169 00170 SymbolState = (CigiBaseSymbolCtrl::SymbolStateGrp)(HDta & 0x03); 00171 AttachState = (CigiBaseSymbolCtrl::AttachStateGrp)((HDta >> 2) & 0x01); 00172 FlashCtrl = (CigiBaseSymbolCtrl::FlashCtrlGrp)((HDta >> 3) & 0x01); 00173 InheritColor = (CigiBaseSymbolCtrl::InheritColorGrp)((HDta >> 4) & 0x01); 00174 00175 return(PacketSize); 00176 00177 }