CigiShortSymbolCtrlV3_3 Class Reference

#include <CigiShortSymbolCtrlV3_3.h>

Inheritance diagram for CigiShortSymbolCtrlV3_3:

CigiBaseShortSymbolCtrl CigiBasePacket List of all members.

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)

Detailed Description

The base class for all packets.

Definition at line 50 of file CigiShortSymbolCtrlV3_3.h.


Constructor & Destructor Documentation

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.

CigiShortSymbolCtrlV3_3::~CigiShortSymbolCtrlV3_3 ( void   )  [virtual]

General Destructor

Definition at line 81 of file CigiShortSymbolCtrlV3_3.cpp.

00082 {
00083 }


Member Function Documentation

int CigiShortSymbolCtrlV3_3::Pack ( CigiBasePacket Base,
Cigi_uint8 Buff,
void *  Spec 
) const [virtual]

A virtual Pack function.

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.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

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.

Parameters:
Buff - A pointer to the current pack point.
Swap - N/A for V1 & V2
Spec - A pointer to special data.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

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 }


The documentation for this class was generated from the following files:
Generated on Wed Apr 29 09:00:10 2009 for CCL by  doxygen 1.4.7