VR-Link API Documentation for DIS
dRadioXmitPub.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 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 

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)