![]() |
VR-Link API Documentation for DIS
|
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