VR-Link API Documentation for HLA Evolved
undwaAcPdu.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 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 

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)