CigiSensorRespV2 Class Reference

#include <CigiSensorRespV2.h>

Inheritance diagram for CigiSensorRespV2:

CigiBaseSensorResp CigiBasePacket List of all members.

Public Member Functions

 CigiSensorRespV2 ()
virtual ~CigiSensorRespV2 ()
virtual int Pack (CigiBasePacket *Base, Cigi_uint8 *Buff, void *Spec) const
virtual int Unpack (Cigi_uint8 *Buff, bool Swap, void *Spec)
int SetViewID (const Cigi_uint16 ViewIDIn, bool bndchk=true)
Cigi_uint16 GetViewID (void) const

Detailed Description

Definition at line 61 of file CigiSensorRespV2.h.


Constructor & Destructor Documentation

CigiSensorRespV2::CigiSensorRespV2 (  ) 

General Constructor

Definition at line 85 of file CigiSensorRespV2.cpp.

References CIGI_SENSOR_RESP_PACKET_ID_V2, CIGI_SENSOR_RESP_PACKET_SIZE_V2, CigiBaseSensorResp::EntityID, CigiBaseSensorResp::EntityTgt, CigiBaseSensorResp::FrameCntr, CigiBaseSensorResp::GateSzX, CigiBaseSensorResp::GateSzY, CigiBaseSensorResp::GateXoff, CigiBaseSensorResp::GateYoff, CigiBasePacket::MinorVersion, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, CigiBaseSensorResp::Searching, CigiBaseSensorResp::SensorID, CigiBaseSensorResp::SensorStat, CigiBaseSensorResp::TrackPntAlt, CigiBaseSensorResp::TrackPntLat, CigiBaseSensorResp::TrackPntLon, CigiBasePacket::Version, and CigiBaseSensorResp::ViewID.

00086 {
00087 
00088    PacketID = CIGI_SENSOR_RESP_PACKET_ID_V2;
00089    PacketSize = CIGI_SENSOR_RESP_PACKET_SIZE_V2;
00090    Version = 2;
00091    MinorVersion = 0;
00092 
00093    ViewID = 0;
00094    SensorID = 0;
00095    SensorStat = Searching;
00096    EntityTgt = false;
00097    EntityID = 0;
00098    GateSzX = 0;
00099    GateSzY = 0;
00100    GateXoff = 0.0;
00101    GateYoff = 0.0;
00102    FrameCntr = 0;
00103    TrackPntLat = 0.0;
00104    TrackPntLon = 0.0;
00105    TrackPntAlt = 0.0;
00106 
00107 }

CigiSensorRespV2::~CigiSensorRespV2 (  )  [virtual]

General Destructor

Definition at line 112 of file CigiSensorRespV2.cpp.

00113 {
00114 
00115 }


Member Function Documentation

Cigi_uint16 CigiSensorRespV2::GetViewID ( void   )  const [inline]

Gets the ViewID value.

Returns:
the current ViewID.

Definition at line 124 of file CigiSensorRespV2.h.

00124 { return(ViewID); }

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

The virtual Pack function for CIGI 2

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

Definition at line 124 of file CigiSensorRespV2.cpp.

References PackPointerUnion::c, CIGI_SCOPY2, CIGI_SENSOR_RESP_PACKET_SIZE_V2, PackPointerUnion::d, CigiBaseSensorResp::GateSzX, CigiBaseSensorResp::GateSzY, CigiBaseSensorResp::GateXoff, CigiBaseSensorResp::GateYoff, CigiBasePacket::PacketID, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSensorResp::SensorID, CigiBaseSensorResp::SensorStat, and CigiBaseSensorResp::ViewID.

00125 {
00126    double DBuf[6];
00127 
00128    Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf;
00129 
00130    PackPointer CDta;
00131 
00132    CigiBaseSensorResp * Data = ( CigiBaseSensorResp *)Base;
00133 
00134    CDta.d = DBuf;
00135 
00136    *CDta.c++ = PacketID;
00137    *CDta.c++ = PacketSize;
00138 
00139    Cigi_uint8 HDta = (Cigi_uint8)((Data->ViewID << 3) & 0x00f8);
00140    HDta |= (Cigi_uint8)((Data->SensorStat << 1) & 0x06);
00141    *CDta.c++ = HDta;
00142 
00143    *CDta.c++ = Data->SensorID;
00144 
00145    float tfoff = (float)Data->GateXoff / 0.015625f;
00146    Cigi_int16 tsoff = (Cigi_int16)tfoff;
00147    CIGI_SCOPY2(CDta.s++, &tsoff);
00148 
00149    tfoff = Data->GateYoff / 0.015625f;
00150    tsoff = (Cigi_int16)tfoff;
00151    CIGI_SCOPY2(CDta.s++, &tsoff);
00152 
00153    CIGI_SCOPY2(CDta.s++, &Data->GateSzX);
00154    CIGI_SCOPY2(CDta.s++, &Data->GateSzY);
00155 
00156    memcpy(Buff,tBuf,CIGI_SENSOR_RESP_PACKET_SIZE_V2);
00157 
00158    return(PacketSize);
00159 
00160 }

int CigiSensorRespV2::SetViewID ( const Cigi_uint16  ViewIDIn,
bool  bndchk = true 
)

Sets the ViewID with bound checking control

Parameters:
ViewIDIn - View ID
bndchk - Enables (true) or disables (false) bounds checking.
Returns:
This returns CIGI_SUCCESS or an error code defined in CigiErrorCodes.h

Definition at line 210 of file CigiSensorRespV2.cpp.

References CIGI_ERROR_VALUE_OUT_OF_RANGE, CIGI_SUCCESS, and CigiBaseSensorResp::ViewID.

00211 {
00212 
00213 #ifndef CIGI_NO_BND_CHK
00214    if(bndchk && ((ViewIDIn < 0)||(ViewIDIn > 32)))
00215    {
00216 #ifndef CIGI_NO_EXCEPT
00217       throw CigiValueOutOfRangeException("ViewID",(Cigi_uint16)ViewIDIn,0,32);
00218 #endif
00219       return(CIGI_ERROR_VALUE_OUT_OF_RANGE);
00220    }
00221 #endif
00222 
00223    ViewID = ViewIDIn;
00224    return(CIGI_SUCCESS);
00225 
00226 }

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

The virtual Unpack function for CIGI 2

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

Definition at line 165 of file CigiSensorRespV2.cpp.

References PackPointerUnion::c, CIGI_SCOPY2, CIGI_SENSOR_RESP_PACKET_SIZE_V2, PackPointerUnion::d, CigiBaseSensorResp::GateSzX, CigiBaseSensorResp::GateSzY, CigiBaseSensorResp::GateXoff, CigiBaseSensorResp::GateYoff, CigiBasePacket::PacketSize, PackPointerUnion::s, CigiBaseSensorResp::SensorID, CigiBaseSensorResp::SensorStat, and CigiBaseSensorResp::ViewID.

00166 {
00167    double DBuf[6];
00168 
00169    Cigi_uint8 *tBuf = (Cigi_uint8 *)DBuf;
00170 
00171    PackPointer CDta;
00172 
00173    memcpy(tBuf,Buff,CIGI_SENSOR_RESP_PACKET_SIZE_V2);
00174 
00175    CDta.d = DBuf;
00176 
00177    CDta.c += 2;  // Step over packet id and size
00178 
00179    Cigi_uint8 HDta = *CDta.c++;
00180    ViewID = (Cigi_uint16)((HDta >> 3) & 0x1f);
00181    SensorStat = (SensorStatGrp)((HDta >> 1) & 0x03);
00182    SensorID = *CDta.c++;
00183 
00184    Cigi_int16 tsoff;
00185    CIGI_SCOPY2(&tsoff, CDta.s++);
00186    float tfoff = (float)tsoff;
00187    GateXoff = tfoff * 0.015625f;
00188 
00189    CIGI_SCOPY2(&tsoff, CDta.s++);
00190    tfoff = (float)tsoff;
00191    GateYoff = tfoff * 0.015625f;
00192 
00193    CIGI_SCOPY2(&GateSzX, CDta.s++);
00194    CIGI_SCOPY2(&GateSzY, CDta.s++);
00195 
00196    return(PacketSize);
00197 
00198 }


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