VR-Link API Documentation for HLA Evolved
transmitPdu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00008 
00009 #ifndef DtTransmitterPdu_H_
00010 #define DtTransmitterPdu_H_
00011 
00012 #if DtDIS
00013 
00014 #include "hostStructs.h"
00015 #include "pdu.h"
00016 #include <matrix/vlMath.h>
00017 #include "packets/transmitterP.h"
00018 #include "beamAntRec.h"
00019 #include "stateMsg.h"
00020 
00021 
00022 class DT_DLL_VL DtExerciseConn;
00023 class DT_DLL_VL DtTransmitterPdu;
00024 typedef void (*DtTransmitterPduCb)(DtTransmitterPdu *pdu, void *usr);
00025 
00026 #define DtFREQ_UPPER 0
00027 #define DtFREQ_LOWER 1
00028 
00029 class DT_DLL_VL DtModulationType
00030 {
00031 
00032 public:
00033    DtModulationType(int spectrum = 0,
00034                     DtRadioMajorModulation major = 
00035                     DtRadioMajorModOther, 
00036                     int detail = 0,
00037                     DtRadioSystem sys = DtRadioSystemOther)
00038       : Spectrum(spectrum), Major(major), Detail(detail), Sys(sys) {} 
00039 
00040    unsigned int spectrum() const               {return Spectrum;}
00041    DtRadioMajorModulation majorModType() const {return Major;} 
00042    int detail() const                          {return Detail;}
00043    DtRadioSystem systemType() const            {return Sys;}
00044 
00045    void setSpectrum(unsigned int s)          {Spectrum = s;} 
00046    void setMajor(DtRadioMajorModulation m)   {Major = m;}
00047    void setDetail(int d)            {Detail = d;}  
00048    void setSystemType(DtRadioSystem s)       {Sys = s;}
00049 
00050    virtual void printData() const;
00051    virtual void printDataToStream(std::ostream& stream) const;
00052 
00053 private:
00054    unsigned int Spectrum;
00055    DtRadioMajorModulation Major;
00056    int Detail;
00057    DtRadioSystem Sys;
00058 };
00059 
00062 class DT_DLL_VL DtTransmitterPdu : public DtStateMsg
00063 {
00064 
00065 public:
00066 
00067    enum { PduStaticSize=104 };
00068 
00069 public:
00070 
00071 
00072    DtTransmitterPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00073    DtTransmitterPdu(const DtNetTransmitterPdu *initial,
00074                     DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);    
00075 
00076    static DtPdu *create(const DtNetPacket *initial, 
00077                         DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);    
00078 
00079    static void addCallback(DtExerciseConn *conn, 
00080                            DtTransmitterPduCb cb, void *usr);
00081    static void removeCallback(DtExerciseConn *conn, 
00082                               DtTransmitterPduCb cb, void *usr);
00083 
00084 
00085    const DtEntityIdentifier &entityId() const;
00086    void setEntityId(const DtEntityIdentifier &id);
00087 
00088    unsigned int radioId() const;
00089    void setRadioId(unsigned int id);
00090 
00091    const DtRadioEntityType &radioEntityType() const;
00092    void setRadioEntityType(const DtRadioEntityType &type);
00093    void setRadioEntityType(const DtEntityType &type);
00094 
00095    DtRadioTransmitState transmitState() const;
00096    void setTransmitState(DtRadioTransmitState state);
00097 
00098    DtRadioInputSource inputSource() const;
00099    void setInputSource(DtRadioInputSource source);
00100 
00101    const DtVector& worldAntennaLoc() const;
00102    void setWorldAntennaLoc(const DtVector& loc);
00103 
00104    const DtVector& relativeAntennaLoc() const;
00105    void setRelativeAntennaLoc(const DtVector& loc);
00106 
00107    DtAntennaPatternType antennaPatternType() const;
00108    void setAntennaPatternType(DtAntennaPatternType type);
00109 
00110    int antennaParamsLength() const;
00111 
00112    unsigned long frequency(int upperLower = DtFREQ_LOWER) const;
00113    void setFrequency(unsigned long freq);
00114    void setFrequency(unsigned long upper, unsigned long lower);
00115 
00116    float bandwidth() const;
00117    void setBandwidth(float bw);
00118 
00119    float power() const;
00120    void setPower(float power);
00121 
00122    const DtModulationType &modulationType() const; 
00123    void setModulationType(const DtModulationType &type);
00124 
00125    DtRadioCryptoSystem cryptoSystem() const;
00126    void setCryptoSystem(DtRadioCryptoSystem sys);
00127 
00128    int cryptoKeyId() const;
00129    void setCryptoKeyId(int key);
00130 
00131    int modulationParamsLength() const;
00132    void setModulationParams(void *networkRepresentation, int size);
00133 
00134    void getNetModulationParams(void *destination) const;
00135    void getNetAntennaParams(void *destination) const;
00136    const DtBeamAntennaPatternRecord &antennaParams() const;
00137 
00138    void setAntennaPatternParams(void *networkRepresentation, int size);
00139    void setAntennaPatternParams(const DtBeamAntennaPatternRecord &rec);
00140 
00141    virtual void printData() const;
00142    virtual void printDataToStream(std::ostream &stream) const;
00143 
00144 protected:
00145 
00146    DtPduKind internalGetPduKind() const {return DtTransmitterPduKind;}
00147    DtEntityIdentifier theId;
00148    DtRadioEntityType theType;
00149    DtVector wLoc;
00150    DtVector rLoc;
00151    DtModulationType modType;
00152    DtBeamAntennaPatternRecord pat;
00153    void setModulationParamsLength(int length);
00154    void setAntennaParamsLength(int length);
00155    void *antennaParamsAddr() const;
00156    void *modulationParamsAddr() const;
00157    virtual void printModulationParams(std::ostream& stream) const;
00158    virtual void printAntennaParams(std::ostream& stream) const;
00159 private:
00162    virtual void printModulationParams() const;
00163    virtual void printAntennaParams() const;
00164 };
00165 
00166 #endif //! DtDIS
00167 #endif //! DtTransmitterPdu_H_
00168 

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)