![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef dRadioXmitPub_H_ 00011 #define dRadioXmitPub_H_ 00012 00013 #if DtDIS 00014 00015 00016 #include "pdu.h" 00017 #include "dObjPub.h" 00018 #include "radioXmitSR.h" 00019 #include "dRadioXmitEnc.h" 00020 #include "dRadioXmitDec.h" 00021 #include <vlutil/vlPrint.h> 00022 00023 00029 class DT_DLL_VL DtRadioTransmitterPublisher : public DtObjectPublisher 00030 { 00031 public: 00032 00035 typedef DtRadioTransmitterRepository* (*DtStateRepCreator)(); 00036 00037 public: 00038 00040 DtRadioTransmitterPublisher( 00041 DtRadioTransmitterRepository* stateRepToUse, 00042 DtExerciseConn* conn, 00043 const DtObjectId& entityId = DtObjectId::defaultId()); 00044 00046 DtRadioTransmitterPublisher( 00047 DtExerciseConn* conn, 00048 const DtObjectId& entityId = DtObjectId::defaultId(), 00049 int radioId = 1); 00050 00052 virtual ~DtRadioTransmitterPublisher(); 00053 00058 virtual void tick(); 00059 00062 virtual DtRadioTransmitterRepository* radioXmitRep(); 00063 00065 virtual DtRadioTransmitterRepository* tsr(); 00066 00070 virtual DtRadioTransmitterDecoder* decoder(); 00071 00074 virtual DtRadioTransmitterEncoder* encoder(); 00075 00077 virtual const DtObjectId& id() const; 00078 00080 virtual const DtObjectId& localId() const; 00081 00083 virtual const DtGlobalObjectDesignator& globalId() const; 00084 00086 virtual int radioId() const; 00087 00091 virtual void sendFinalPduOnDestruction(bool onOff); 00092 00095 virtual void forceUpdate(); 00096 00098 virtual void setHeartbeatMoveTimer(DtTime time); 00099 00101 virtual DtTime heartbeatMoveTimer() const; 00102 00104 virtual DtTime transmitterTimeThreshold() const; 00105 00111 virtual void setAntennaLocationThreshold(double threshold); 00112 00118 virtual double antennaLocationThreshold() const; 00119 00124 virtual void setAntennaOrientationThreshold(double threshold); 00125 00131 virtual double antennaOrientationThreshold() const; 00132 00133 public: 00134 00136 static void setStateRepCreator(DtStateRepCreator creator); 00137 static DtStateRepCreator stateRepCreator(void); 00138 00141 static void setUseMovingThresholdFlag(bool flag); 00142 00145 static bool useMovingThresholdFlag(); 00146 00147 static void setClassDfltTimeThreshold(DtTime threshold); 00148 00149 protected: 00150 00152 void sendFinalPdu(); 00153 00155 void init(const DtEntityIdentifier& vehId); 00156 00158 DtRadioTransmitterPublisher(const DtRadioTransmitterPublisher& orig); 00159 00161 DtRadioTransmitterPublisher& operator= 00162 (const DtRadioTransmitterPublisher& orig); 00163 00164 protected: 00165 00166 DtObjectId myId; 00167 DtRadioTransmitterDecoder* myDecoder; 00168 DtRadioTransmitterEncoder* myEncoder; 00169 bool mySendFinalInDtor; 00170 DtTime myHeartbeatMoveTimer; 00171 00172 protected: 00173 static DtStateRepCreator theStateRepCreator; 00174 static bool theUseMovingThresholdFlag; 00175 static DtTime theClassDfltTimeThreshold; 00176 static bool theClassDfltIsSetFlag; 00177 }; 00178 00179 00180 inline DtRadioTransmitterRepository* DtRadioTransmitterPublisher::tsr() 00181 { 00182 return static_cast<DtRadioTransmitterRepository*>(myStateRep); 00183 } 00184 00185 #endif 00186 #endif 00187