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