VR-Link API Documentation for HLA 1.3
leTspiPdu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 
00009 
00010 #ifndef DtLeTspiPdu_H_
00011 #define DtLeTspiPdu_H_
00012 
00013 #if DtDIS
00014 
00015 #include <vlutil/vlMachineTypes.h>
00016 #include "hostStructs.h"
00017 #include "dInteraction.h"
00018 #include <matrix/vlMath.h>
00019 #include "exerciseConn.h"
00020 
00021 #include "packets/leTspiP.h"
00022 
00023 #include "leDeadReck.h"
00024 #include "leEntityID.h"
00025 #include "leLocWorld.h"
00026 #include "leEntityOri.h"
00027 #include "leEntityVel.h"
00028 #include "leOriError.h"
00029 #include "lePosError.h"
00030 
00031 
00032 
00033 class DT_DLL_VL DtLeTspiPdu;
00034 
00036 typedef void (*DtLeTspiPduCb)(DtLeTspiPdu* pdu, void* usr);
00037 
00038 
00042 class DT_DLL_VL DtLeTspiPdu : public DtInteraction
00043 {
00044 
00045 public:
00046 
00048    DtLeTspiPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00049    DtLeTspiPdu(const DtNetLeTspiPdu* initial,
00050       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00051    DtLeTspiPdu(const DtLeTspiPdu& orig);
00052 
00054    virtual ~DtLeTspiPdu();
00055 
00057    DtLeTspiPdu& operator=(const DtLeTspiPdu& orig);
00058 
00060    virtual void setSubProtocol(DtSubProtocol value);
00061    virtual DtSubProtocol subProtocol() const;
00062 
00064    virtual void setEntityID(const DtLeEntityID& id);
00065    virtual const DtLeEntityID& entityID() const;
00066 
00069    virtual DtU8 tspiField() const;
00070 
00072    virtual bool tspiFlag(DtLE_TSPI_FieldFlag flag) const;
00073 
00075    virtual void setLocation(const DtLeEntityLocationWorldCoordinates& value);
00076    virtual const DtLeEntityLocationWorldCoordinates& location() const;
00077 
00081 
00083    virtual void setVelocity(const DtLeEntityLinearVelocity& value);
00084    virtual bool getVelocity(DtLeEntityLinearVelocity& value) const;
00085 
00087    virtual void setOrientation(const DtLeEntityOrientation& value);
00088    virtual bool getOrientation(DtLeEntityOrientation& value) const;
00089 
00091    virtual void setPositionError(const DtLePositionError& value); 
00092    virtual bool getPositionError(DtLePositionError& value) const;
00093 
00095    virtual void setOrientationError(const DtLeOrientationError& value);
00096    virtual bool getOrientationError(DtLeOrientationError& value) const;
00097 
00099    virtual void setDeadReckoningParameters(
00100       const DtLeDeadReckoningParameters& value);
00101    virtual bool getDeadReckoningParameters(
00102       DtLeDeadReckoningParameters& value) const;
00103 
00105    virtual void setMeasuredSpeed(DtU16 value);
00106    virtual bool getMeasuredSpeed(DtU16& value) const;
00107 
00109    virtual bool setSystemSpecificDataLength(DtU8 value);
00110    virtual DtU8 systemSpecificDataLength() const;
00111 
00114    virtual bool setSystemSpecificData(DtU8* dataPtr);
00115    virtual bool getSystemSpecificData(DtU8* dataPtr);
00116 
00118    virtual void printData() const;
00119    
00121    virtual void printDataToStream(std::ostream& stream) const;
00122 
00124    virtual void printHeader() const;
00125 
00127    virtual void printHeaderToStream(std::ostream& stream) const;
00128 
00129 public:
00130 
00133    static DtPdu* create(const DtNetPacket* initial,
00134       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00135 
00138    static void addCallback(DtExerciseConn* conn,
00139       DtLeTspiPduCb cb, void* usr);
00140    static void removeCallback(DtExerciseConn* conn,
00141       DtLeTspiPduCb cb, void* usr);
00142 
00143 protected:
00144 
00146    virtual DtPduKind internalGetPduKind() const;
00147 
00149    virtual DtNetLeTspiPdu* netPduStruct()  const; 
00150 
00153    DtLeTspiPdu* self() const; 
00154 
00156    virtual char* var() const;
00157 
00159    virtual void setTspiField(DtU8 value);
00160 
00162    virtual void setTspiFlag(DtLE_TSPI_FieldFlag flag);
00163 
00165    virtual void clearTspiFlags(DtLE_TSPI_FieldFlag flag);
00166 
00168    virtual int tspiFlagOffset() const;
00169    virtual int locationOffset() const;
00170    virtual int velocityOffset() const;
00171    virtual int orientationOffset() const;
00172    virtual int positionErrorOffset() const;
00173    virtual int orientationErrorOffset() const;
00174    virtual int deadReckoningParametersOffset() const;
00175    virtual int measuredSpeedOffset() const;
00176    virtual int systemSpecificOffset() const;
00177 
00178 protected:
00179 
00181    static const int theStaticSize;
00182 
00183 protected:
00184 
00186    DtLeEntityID myEntityID;
00187    DtLeEntityLocationWorldCoordinates myLocation;
00188 
00189 };
00190 
00191 #endif
00192 #endif
00193 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)