#include <CigiIGCtrlV3.h>
Inheritance diagram for CigiIGCtrlV3:
Public Member Functions | |
CigiIGCtrlV3 () | |
virtual | ~CigiIGCtrlV3 () |
virtual int | Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const |
virtual int | Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec) |
int | SetFrameCntr (const Cigi_uint32 FrameCntrIn, bool bndchk=true) |
Cigi_uint32 | GetTimeStamp (void) const |
int | SetTimeStamp (const Cigi_uint32 TimeStamp, bool bndchk=true) |
bool | GetTimeStampValid (void) const |
int | SetTimeStampValid (const bool TimeStampValidIn, bool bndchk=true) |
Definition at line 71 of file CigiIGCtrlV3.h.
CigiIGCtrlV3::CigiIGCtrlV3 | ( | ) |
Definition at line 76 of file CigiIGCtrlV3.cpp.
References CigiBaseIGCtrl::BoresightTrackDevice, CigiBaseIGCtrl::BSwapEn, CigiBaseIGCtrl::ByteSwap, CIGI_IG_CTRL_PACKET_ID_V3, CIGI_IG_CTRL_PACKET_SIZE_V3, CigiBaseIGCtrl::DatabaseID, CigiBaseIGCtrl::Disable, CigiBaseIGCtrl::FrameCntr, CigiBaseIGCtrl::IGMode, CigiBaseIGCtrl::LastRcvdIGFrame, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseIGCtrl::SmoothingEn, CigiBaseIGCtrl::Standby, CigiBaseIGCtrl::TimeStampV1, CigiBaseIGCtrl::TimeStampV2, CigiBaseIGCtrl::TimeStampV3, CigiBaseIGCtrl::TimestampValid, CigiBaseIGCtrl::TrackDeviceEn, and CigiBasePacket::Version.
00077 { 00078 00079 PacketID = CIGI_IG_CTRL_PACKET_ID_V3; 00080 PacketSize = CIGI_IG_CTRL_PACKET_SIZE_V3; 00081 Version = 3; 00082 MinorVersion = 0; 00083 00084 BSwapEn = false; 00085 DatabaseID = 0; 00086 FrameCntr = 0; 00087 TimeStampV1 = 0; 00088 TimeStampV2 = 0.0f; 00089 TimeStampV3 = 0; 00090 ByteSwap = 0x8000; 00091 IGMode = Standby; 00092 TrackDeviceEn = Disable; 00093 BoresightTrackDevice = false; 00094 TimestampValid = false; 00095 SmoothingEn = false; 00096 LastRcvdIGFrame = 0; 00097 00098 }
CigiIGCtrlV3::~CigiIGCtrlV3 | ( | ) | [virtual] |
Cigi_uint32 CigiIGCtrlV3::GetTimeStamp | ( | void | ) | const [inline] |
Gets the Timestamp value for V3
Definition at line 134 of file CigiIGCtrlV3.h.
00134 { return(TimeStampV3); }
bool CigiIGCtrlV3::GetTimeStampValid | ( | void | ) | const [inline] |
Gets the Timestamp valid flag for V3
Definition at line 155 of file CigiIGCtrlV3.h.
00155 { return(TimestampValid); }
int CigiIGCtrlV3::Pack | ( | CigiBasePacket * | Base, | |
Cigi_uint8 * | Buff, | |||
void * | Spec | |||
) | const [virtual] |
The virtual Pack function for CIGI 1
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 CigiBaseIGCtrl.
Definition at line 116 of file CigiIGCtrlV3.cpp.
References PackPointerUnion::b, PackPointerUnion::c, CigiBaseIGCtrl::DatabaseID, CigiBaseIGCtrl::FrameCntr, CigiBaseIGCtrl::IGMode, PackPointerUnion::l, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseIGCtrl::TimeStampV3, CigiBaseIGCtrl::TimestampValid, and CigiBasePacket::Version.
00117 { 00118 PackPointer CDta; 00119 00120 CigiBaseIGCtrl *Data = ( CigiBaseIGCtrl *) Base; 00121 00122 00123 CDta.c = Buff; 00124 00125 *CDta.c++ = PacketID; 00126 *CDta.c++ = PacketSize; 00127 *CDta.c++ = Version; 00128 00129 *CDta.b++ = Data->DatabaseID; 00130 00131 Cigi_uint8 HDta = (Data->TimestampValid) ? 0x04 : 0; 00132 HDta |= (Cigi_uint8)(Data->IGMode & 0x03); 00133 00134 *CDta.c++ = HDta; 00135 *CDta.c++ = 0; 00136 *CDta.s++ = 0x8000; // Byte Swap value 00137 00138 *CDta.l++ = Data->FrameCntr; 00139 *CDta.l++ = Data->TimeStampV3; 00140 00141 return(PacketSize); 00142 00143 }
int CigiIGCtrlV3::SetFrameCntr | ( | const Cigi_uint32 | FrameCntrIn, | |
bool | bndchk = true | |||
) | [inline] |
Sets the Frame Counter with bound checking control
FrameCntrIn | - Specifies the frame. | |
bndchk | - Enables (true) or disables (false) bounds checking |
Definition at line 119 of file CigiIGCtrlV3.h.
References CIGI_SUCCESS.
00120 { 00121 FrameCntr = FrameCntrIn; 00122 LastRcvdIGFrame = FrameCntrIn; 00123 00124 return(CIGI_SUCCESS); 00125 }
int CigiIGCtrlV3::SetTimeStamp | ( | const Cigi_uint32 | TimeStamp, | |
bool | bndchk = true | |||
) |
Sets the Timestamp value for V2.
This also converts to and sets the V1 and V2 timestamp values.
TimeStamp | - Specifies the timestamp value. | |
bndchk | - Enables (true) or disables (false) bounds checking |
Definition at line 201 of file CigiIGCtrlV3.cpp.
References CIGI_SUCCESS, CigiBaseIGCtrl::TimeStampV1, CigiBaseIGCtrl::TimeStampV2, and CigiBaseIGCtrl::TimeStampV3.
00202 { 00203 00204 TimeStampV3 = TimeStamp; 00205 TimeStampV1 = TimeStampV3 / 10; 00206 TimeStampV2 = (float)TimeStampV1; 00207 00208 return(CIGI_SUCCESS); 00209 00210 }
int CigiIGCtrlV3::SetTimeStampValid | ( | const bool | TimeStampValidIn, | |
bool | bndchk = true | |||
) | [inline] |
Definition at line 157 of file CigiIGCtrlV3.h.
References CIGI_SUCCESS.
00158 { 00159 TimestampValid = TimeStampValidIn; 00160 00161 return(CIGI_SUCCESS); 00162 }
int CigiIGCtrlV3::Unpack | ( | Cigi_uint8 * | Buff, | |
bool | Swap, | |||
void * | Spec | |||
) | [virtual] |
The virtual Unpack function for CIGI 1
Buff | - A pointer to the current pack point. | |
Swap | - Byte swapping required. | |
Spec | - A pointer to special data - This is not used in this class. |
Implements CigiBaseIGCtrl.
Definition at line 149 of file CigiIGCtrlV3.cpp.
References PackPointerUnion::b, CigiBaseIGCtrl::BSwapEn, CigiBaseIGCtrl::ByteSwap, PackPointerUnion::c, CIGI_SUCCESS, CigiSwap4(), CigiBaseIGCtrl::DatabaseID, CigiBaseIGCtrl::FrameCntr, CigiBaseIGCtrl::IGMode, PackPointerUnion::l, CigiBaseIGCtrl::LastRcvdIGFrame, PackPointerUnion::s, CigiBaseIGCtrl::TimeStampV1, CigiBaseIGCtrl::TimeStampV2, CigiBaseIGCtrl::TimeStampV3, and CigiBaseIGCtrl::TimestampValid.
00150 { 00151 00152 PackPointer CDta; 00153 00154 CDta.c = Buff; 00155 00156 CDta.c += 3; 00157 00158 DatabaseID = *CDta.b++; 00159 00160 Cigi_uint8 HDta = *CDta.c++; 00161 00162 IGMode = (IGModeGrp)(HDta & 0x03); 00163 TimestampValid = ((HDta & 0x04) != 0); 00164 00165 CDta.c++; 00166 00167 ByteSwap = *CDta.s++; 00168 BSwapEn = (ByteSwap == 0x0080); 00169 00170 00171 if(!BSwapEn) 00172 { 00173 FrameCntr = *CDta.l++; 00174 TimeStampV3 = *CDta.l++; 00175 } 00176 else 00177 { 00178 CigiSwap4(&FrameCntr, CDta.l++); 00179 CigiSwap4(&TimeStampV3, CDta.l++); 00180 } 00181 00182 TimeStampV1 = TimeStampV3 / 10; 00183 TimeStampV2 = (float)TimeStampV1; 00184 00185 LastRcvdIGFrame = FrameCntr; 00186 00187 return(CIGI_SUCCESS); 00188 00189 }