![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00009 00010 #ifndef DtIffAtcNavaidsPdu_H_ 00011 #define DtIffAtcNavaidsPdu_H_ 00012 00013 #if DtDIS 00014 00015 #include <vlutil/vlMachineTypes.h> 00016 #include "hostStructs.h" 00017 #include "dStateMsg.h" 00018 #include "exerciseConn.h" 00019 #include <matrix/vlMath.h> 00020 00021 #include "packets/iffAtcNavP.h" 00022 00023 #include "iffAtcNavBeam.h" 00024 #include "iffAtcNavLayr.h" 00025 #include "iffAtcNavOper.h" 00026 #include "iffAtcNavOpr2.h" 00027 #include "iffAtcNavParm.h" 00028 #include "iffAtcNavSyID.h" 00029 00030 00031 00032 class DT_DLL_VL DtIffAtcNavaidsPdu; 00033 00035 typedef void (*DtIffAtcNavaidsPduCb)(DtIffAtcNavaidsPdu* pdu, void* usr); 00036 00037 00038 00042 class DT_DLL_VL DtIffAtcNavaidsPdu : public DtStateMsg 00043 { 00044 00045 public: 00046 00048 DtIffAtcNavaidsPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00049 DtIffAtcNavaidsPdu(const DtNetIffAtcNavaidsPduLayer1* initial, 00050 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00051 DtIffAtcNavaidsPdu(const DtIffAtcNavaidsPdu& orig); 00052 00054 virtual ~DtIffAtcNavaidsPdu(); 00055 00058 static DtPdu* create(const DtNetPacket* initial, 00059 DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER); 00060 00063 static void addCallback(DtExerciseConn* conn, 00064 DtIffAtcNavaidsPduCb cb, void* usr); 00065 static void removeCallback(DtExerciseConn* conn, 00066 DtIffAtcNavaidsPduCb cb, void* usr); 00067 00069 DtIffAtcNavaidsPdu& operator=(const DtIffAtcNavaidsPdu& orig); 00070 00072 virtual void setEmittingEntityID(const DtEntityIdentifier& entity); 00073 virtual const DtEntityIdentifier& emittingEntityID() const; 00074 00076 virtual void setEventID(const DtEventID& event); 00077 virtual const DtEventID& eventID() const; 00078 00080 virtual void setLocation(const DtVector& coords); 00081 virtual const DtVector& location() const; 00082 00084 virtual void setSystemID(const DtIffAtcNavaidsSystemID& id); 00085 virtual const DtIffAtcNavaidsSystemID& systemID() const; 00086 00088 virtual void setOperational(const DtIffAtcNavaidsOperational& oper); 00089 virtual const DtIffAtcNavaidsOperational& operational() const; 00090 00092 virtual bool layerPresent(int layer) const; 00093 00096 virtual bool enableLayer2(DtU8 layerSpecificInfo, int numRecords); 00097 virtual bool disableLayer2(); 00098 00102 00105 virtual const DtIffAtcNavaidsLayerHeader& layer2Header() const; 00106 00108 virtual void setBeamData(const DtIffAtcNavaidsBeamData& beamData); 00109 virtual const DtIffAtcNavaidsBeamData& beamData() const; 00110 00112 virtual void setSecondaryOperational( 00113 const DtIffAtcNavaidsSecondOperational& oper); 00114 virtual const DtIffAtcNavaidsSecondOperational& 00115 secondaryOperational() const; 00116 00119 virtual DtU16 numParameterSets() const; 00120 00122 virtual bool setParmData(int parmIndex, 00123 const DtIffAtcNavaidsParameter& init); 00124 virtual bool getParmData(int parmIndex, 00125 DtIffAtcNavaidsParameter& record) const; 00126 00128 virtual void printData() const; 00129 00131 virtual void printDataToStream(std::ostream& stream) const; 00132 00133 protected: 00134 00136 virtual DtPduKind internalGetPduKind() const; 00137 00139 virtual DtNetIffAtcNavaidsPduLayer1* netPduStruct() const; 00140 00142 virtual DtNetIffAtcNavaidsPduLayer2* netPduStructL2() const; 00143 00146 DtIffAtcNavaidsPdu* self() const; 00147 00149 virtual DtNetIffAtcNavaidsParameter* parameter() const; 00150 00151 protected: 00152 00154 static const int theStaticSize; 00155 00156 protected: 00157 00159 DtEntityIdentifier myEntityID; 00160 DtEventID myEventID; 00161 DtVector myEntCoords; 00162 DtIffAtcNavaidsSystemID mySystemID; 00163 DtIffAtcNavaidsOperational myOperational; 00164 DtIffAtcNavaidsLayerHeader myLayerHeader; 00165 DtIffAtcNavaidsBeamData myBeamData; 00166 DtIffAtcNavaidsSecondOperational mySecondOperational; 00167 DtIffAtcNavaidsParameter myParameter; 00168 00169 }; 00170 00171 #endif 00172 #endif 00173