CigiIGCtrlV3 Class Reference

#include <CigiIGCtrlV3.h>

Inheritance diagram for CigiIGCtrlV3:

CigiBaseIGCtrl CigiBasePacket List of all members.

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)

Detailed Description

The class for the IG Control packet for CIGI version 3

Definition at line 71 of file CigiIGCtrlV3.h.


Constructor & Destructor Documentation

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]

Definition at line 103 of file CigiIGCtrlV3.cpp.

00104 {
00105 
00106 }


Member Function Documentation

Cigi_uint32 CigiIGCtrlV3::GetTimeStamp ( void   )  const [inline]

Gets the Timestamp value for V3

Returns:
TimeStampV2 The timestamp value

Definition at line 134 of file CigiIGCtrlV3.h.

00134 { return(TimeStampV3); }

bool CigiIGCtrlV3::GetTimeStampValid ( void   )  const [inline]

Gets the Timestamp valid flag for V3

Returns:
TimestampValid - The timestamp valid flag

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

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 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

Parameters:
FrameCntrIn - Specifies the frame.
bndchk - Enables (true) or disables (false) bounds checking
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

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.

Parameters:
TimeStamp - Specifies the timestamp value.
bndchk - Enables (true) or disables (false) bounds checking
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

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

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

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 }


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