![]() |
VR-Link API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtUnderwaterAcousticPdu_H_ 00011 #define DtUnderwaterAcousticPdu_H_ 00012 00013 #if DtDIS 00014 00015 #include <vlutil/vlMachineTypes.h> 00016 #include "hostStructs.h" 00017 #include "dStateMsg.h" 00018 #include "exerciseConn.h" 00019 00020 #include <matrix/vlMath.h> 00021 00022 #include "packets/undwaAcP.h" 00023 00024 #include "undwaAcBeam.h" 00025 #include "undwaAcEmtSys.h" 00026 #include "undwaAcPasAct.h" 00027 #include "undwaAcShaft.h" 00028 00029 00030 00031 00032 class DT_DLL_VL DtUnderwaterAcousticPdu; 00033 00035 typedef void (*DtUnderwaterAcousticPduCb) 00036 (DtUnderwaterAcousticPdu* pdu, void* usr); 00037 00041 class DT_DLL_VL DtUnderwaterAcousticPdu : public DtStateMsg 00042 { 00043 00044 public: 00045 00047 DtUnderwaterAcousticPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00048 DtUnderwaterAcousticPdu(const DtNetUnderwaterAcousticPdu* initial, 00049 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00050 DtUnderwaterAcousticPdu(const DtUnderwaterAcousticPdu& orig); 00051 00053 virtual ~DtUnderwaterAcousticPdu(); 00054 00056 DtUnderwaterAcousticPdu& operator=(const DtUnderwaterAcousticPdu& orig); 00057 00059 virtual void setEmittingEntityID(const DtEntityIdentifier& entity); 00060 virtual const DtEntityIdentifier& emittingEntityID() const; 00061 00063 virtual void setEventID(const DtEventID& event); 00064 virtual const DtEventID& eventID() const; 00065 00067 virtual void setStateChangeUpdate(DtUnderwaterAcousticUpdate upd); 00068 virtual DtUnderwaterAcousticUpdate stateChangeUpdate() const; 00069 00071 virtual void setPassiveParameterIndex( 00072 DtUnderwaterAcousticPassiveParmIndex ind); 00073 virtual DtUnderwaterAcousticPassiveParmIndex 00074 passiveParameterIndex() const; 00075 00077 virtual void setPropulsionPlantConfig( 00078 DtUnderwaterAcousticPropulsionPlantConfig config); 00079 virtual DtUnderwaterAcousticPropulsionPlantConfig 00080 propulsionPlantConfig() const; 00081 00084 virtual bool setNumShafts(DtU8 num); 00085 virtual DtU8 numShafts() const; 00086 00089 virtual bool setNumAdditionalPassiveAct(DtU8 num); 00090 virtual DtU8 numAdditionalPassiveAct() const; 00091 00094 virtual bool setNumEmitterSystems(DtU8 num); 00095 virtual DtU8 numEmitterSystems() const; 00096 00100 virtual bool setNumBeams(int emitterSystemIndex, DtU8 num); 00101 virtual DtU8 numBeams(int emitterSystemIndex) const; 00102 00105 virtual bool setShaftSpeed(int index, 00106 const DtUnderwaterAcousticShaftSpeed& record); 00107 virtual bool getShaftSpeed(int index, 00108 DtUnderwaterAcousticShaftSpeed& record) const; 00109 00112 virtual bool setAddtnlPassiveAct(int index, 00113 const DtUnderwaterAcousticAddtnlPassiveAct& record); 00114 virtual bool getAddtnlPassiveAct(int index, 00115 DtUnderwaterAcousticAddtnlPassiveAct& record) const; 00116 00120 virtual bool setEmitterSystem(int index, 00121 const DtUnderwaterAcousticEmitterSystem& record); 00122 virtual bool getEmitterSystem(int index, 00123 DtUnderwaterAcousticEmitterSystem& record) const; 00124 00128 virtual bool setBeam(int emitterSystemIndex, int beamIndex, 00129 const DtUnderwaterAcousticBeam& record); 00130 virtual bool getBeam(int emitterSystemIndex, int beamIndex, 00131 DtUnderwaterAcousticBeam& record) const; 00132 00134 virtual void printData() const; 00135 virtual void printDataToStream(std::ostream &stream) const; 00136 00137 public: 00138 00141 static DtPdu* create(const DtNetPacket* initial, 00142 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00143 00146 static void addCallback(DtExerciseConn* conn, 00147 DtUnderwaterAcousticPduCb cb, void* usr); 00148 static void removeCallback(DtExerciseConn* conn, 00149 DtUnderwaterAcousticPduCb cb, void* usr); 00150 00151 protected: 00152 00154 virtual DtPduKind internalGetPduKind() const; 00155 00157 virtual DtNetUnderwaterAcousticPdu* netPduStruct() const; 00158 00160 virtual char* var() const; 00161 00164 DtUnderwaterAcousticPdu* self() const; 00165 00167 virtual int shaftSpeedRecordOffset(int recordIndex) const; 00168 00170 virtual int passiveActRecordOffset(int recordIndex) const; 00171 00173 virtual int emitterSystemRecordOffset(int recordIndex) const; 00174 00177 virtual int beamDataRecordOffset( 00178 int emitterSystemIndex, int beamIndex) const; 00179 00180 protected: 00181 00183 static const int theStaticSize; 00184 00185 protected: 00186 00188 DtEntityIdentifier myEntityID; 00189 DtEventID myEventID; 00190 00191 }; 00192 00193 #endif 00194 #endif 00195