CigiMotionTrackCtrlV3 Class Reference

#include <CigiMotionTrackCtrlV3.h>

Inheritance diagram for CigiMotionTrackCtrlV3:

CigiBaseMotionTrackCtrl CigiBasePacket List of all members.

Public Member Functions

 CigiMotionTrackCtrlV3 ()
virtual ~CigiMotionTrackCtrlV3 ()
virtual int Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const
virtual int Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec)

Detailed Description

Definition at line 57 of file CigiMotionTrackCtrlV3.h.


Constructor & Destructor Documentation

CigiMotionTrackCtrlV3::CigiMotionTrackCtrlV3 (  ) 

General Constructor

Definition at line 67 of file CigiMotionTrackCtrlV3.cpp.

References CigiBaseMotionTrackCtrl::BoresightEn, CIGI_MOTION_TRACK_CTRL_PACKET_ID_V3, CIGI_MOTION_TRACK_CTRL_PACKET_SIZE_V3, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseMotionTrackCtrl::PitchEn, CigiBaseMotionTrackCtrl::RollEn, CigiBaseMotionTrackCtrl::Scope, CigiBaseMotionTrackCtrl::TrackerEn, CigiBaseMotionTrackCtrl::TrackerID, CigiBasePacket::Version, CigiBaseMotionTrackCtrl::View, CigiBaseMotionTrackCtrl::ViewID, CigiBaseMotionTrackCtrl::XEn, CigiBaseMotionTrackCtrl::YawEn, CigiBaseMotionTrackCtrl::YEn, and CigiBaseMotionTrackCtrl::ZEn.

00068 {
00069 
00070    PacketID = CIGI_MOTION_TRACK_CTRL_PACKET_ID_V3;
00071    PacketSize = CIGI_MOTION_TRACK_CTRL_PACKET_SIZE_V3;
00072    Version = 3;
00073    MinorVersion = 0;
00074 
00075    ViewID = 0;
00076    TrackerID = 0;
00077    TrackerEn = false;
00078    BoresightEn = false;
00079    XEn = false;
00080    YEn = false;
00081    ZEn = false;
00082    RollEn = false;
00083    PitchEn = false;
00084    YawEn = false;
00085    Scope = View;
00086 
00087 }

CigiMotionTrackCtrlV3::~CigiMotionTrackCtrlV3 (  )  [virtual]

General Destructor

Definition at line 92 of file CigiMotionTrackCtrlV3.cpp.

00093 {
00094 
00095 }


Member Function Documentation

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

The virtual Pack function for CIGI 3

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

Implements CigiBaseMotionTrackCtrl.

Definition at line 104 of file CigiMotionTrackCtrlV3.cpp.

References CigiBaseMotionTrackCtrl::BoresightEn, PackPointerUnion::c, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseMotionTrackCtrl::PitchEn, CigiBaseMotionTrackCtrl::RollEn, PackPointerUnion::s, CigiBaseMotionTrackCtrl::Scope, CigiBaseMotionTrackCtrl::TrackerEn, CigiBaseMotionTrackCtrl::TrackerID, CigiBaseMotionTrackCtrl::ViewID, CigiBaseMotionTrackCtrl::XEn, CigiBaseMotionTrackCtrl::YawEn, CigiBaseMotionTrackCtrl::YEn, and CigiBaseMotionTrackCtrl::ZEn.

00105 {
00106    PackPointer CDta;
00107 
00108    CigiBaseMotionTrackCtrl * Data = ( CigiBaseMotionTrackCtrl *)Base;
00109 
00110    CDta.c = Buff;
00111 
00112    *CDta.c++ = PacketID;
00113    *CDta.c++ = PacketSize;
00114 
00115    *CDta.s++ = Data->ViewID;
00116    *CDta.c++ = Data->TrackerID;
00117 
00118    Cigi_uint8 HDta = (Data->TrackerEn) ? 0x01 : 0;
00119    HDta |= (Data->BoresightEn) ? 0x02 : 0;
00120    HDta |= (Data->XEn) ? 0x04 : 0;
00121    HDta |= (Data->YEn) ? 0x08 : 0;
00122    HDta |= (Data->ZEn) ? 0x10 : 0;
00123    HDta |= (Data->RollEn) ? 0x20 : 0;
00124    HDta |= (Data->PitchEn) ? 0x40 : 0;
00125    HDta |= (Data->YawEn) ? 0x80 : 0;
00126    *CDta.c++ = HDta;
00127 
00128    HDta = (Data->Scope) ? 0x01 : 0;
00129    *CDta.c++ = HDta;
00130 
00131    *CDta.c++ = 0;
00132 
00133    return(PacketSize);
00134 
00135 }

int CigiMotionTrackCtrlV3::Unpack ( Cigi_uint8 Buff,
bool  Swap,
void *  Spec 
) [virtual]

The virtual Unpack function for CIGI 3

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

Implements CigiBaseMotionTrackCtrl.

Definition at line 140 of file CigiMotionTrackCtrlV3.cpp.

References CigiBaseMotionTrackCtrl::BoresightEn, PackPointerUnion::c, CigiSwap2(), CigiBasePacket::PacketSize, CigiBaseMotionTrackCtrl::PitchEn, CigiBaseMotionTrackCtrl::RollEn, PackPointerUnion::s, CigiBaseMotionTrackCtrl::Scope, CigiBaseMotionTrackCtrl::TrackerEn, CigiBaseMotionTrackCtrl::TrackerID, CigiBaseMotionTrackCtrl::ViewID, CigiBaseMotionTrackCtrl::XEn, CigiBaseMotionTrackCtrl::YawEn, CigiBaseMotionTrackCtrl::YEn, and CigiBaseMotionTrackCtrl::ZEn.

00141 {
00142    PackPointer CDta;
00143 
00144    CDta.c = Buff;
00145 
00146    CDta.c += 2;  // Step over packet id and size
00147 
00148    if(!Swap)
00149       ViewID = *CDta.s++;
00150    else
00151       CigiSwap2(&ViewID, CDta.s++);
00152 
00153    TrackerID = *CDta.c++;
00154 
00155    Cigi_uint8 HDta = *CDta.c++;
00156    TrackerEn = ((HDta & 0x01) != 0);
00157    BoresightEn = ((HDta & 0x02) != 0);
00158    XEn = ((HDta & 0x04) != 0);
00159    YEn = ((HDta & 0x08) != 0);
00160    ZEn = ((HDta & 0x10) != 0);
00161    RollEn = ((HDta & 0x20) != 0);
00162    PitchEn = ((HDta & 0x40) != 0);
00163    YawEn = ((HDta & 0x80) != 0);
00164 
00165    HDta = *CDta.c++;
00166    Scope = (ScopeGrp)(HDta & 0x01);
00167 
00168    return(PacketSize);
00169 
00170 }


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