VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
iffAtcNavaidsPdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2013 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
9 
10 #pragma once
11 
12 #if DtDIS
13 
14 #include <vlutil/vlMachineTypes.h>
15 #include "hostStructs.h"
16 #include "stateMsgDIS.h"
17 #include "exerciseConn.h"
18 #include <matrix/vlMath.h>
19 
20 #include "packets/iffAtcNavP.h"
21 
22 #include "iffAtcNavaidsBeamData.h"
26 #include "iffAtcNavaidsParameter.h"
27 #include "iffAtcNavaidsSystemID.h"
28 
35 
36 
37 
38 class DT_DLL_VL DtIffAtcNavaidsPdu;
39 
41 typedef void (*DtIffAtcNavaidsPduCb)(DtIffAtcNavaidsPdu* pdu, void* usr);
42 
43 
44 
48 class DT_DLL_VL DtIffAtcNavaidsPdu : public DtStateMsg
49 {
50 
51 public:
52 
54  DtIffAtcNavaidsPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
55  DtIffAtcNavaidsPdu(const DtNetIffAtcNavaidsPduLayer1* initial,
56  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
57  DtIffAtcNavaidsPdu(const DtIffAtcNavaidsPdu& orig);
58 
60  virtual ~DtIffAtcNavaidsPdu();
61 
64  static DtPdu* create(const DtNetPacket* initial,
65  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
66 
69  static void addCallback(DtExerciseConn* conn,
70  DtIffAtcNavaidsPduCb cb, void* usr);
71  static void removeCallback(DtExerciseConn* conn,
72  DtIffAtcNavaidsPduCb cb, void* usr);
73 
75  DtIffAtcNavaidsPdu& operator=(const DtIffAtcNavaidsPdu& orig);
76 
78  virtual void setEmittingEntityID(const DtEntityIdentifier& entity);
79  virtual const DtEntityIdentifier& emittingEntityID() const;
80 
82  virtual void setEventID(const DtEventID& event);
83  virtual const DtEventID& eventID() const;
84 
86  virtual void setLocation(const DtVector32& coords);
87  virtual const DtVector32& location() const;
88 
90  virtual void setSystemID(const DtIffAtcNavaidsSystemID& id);
91  virtual const DtIffAtcNavaidsSystemID& systemID() const;
92 
94  virtual void setSystemDesignator(DtU8 id);
95  virtual DtU8 systemDesignator() const;
96 
98  virtual void setSystemSpecificData(DtU8 id);
99  virtual DtU8 systemSpecificData() const;
100 
102  virtual void setOperational(const DtIffAtcNavaidsOperational& oper);
103  virtual const DtIffAtcNavaidsOperational& operational() const;
104 
106  virtual void setMode5Interrogator(const DtIffAtcNavaidsMode5Interrogator& oper);
107  virtual const DtIffAtcNavaidsMode5Interrogator& mode5Interrogator() const;
108  virtual void setMode5Transponder(const DtIffAtcNavaidsMode5Transponder& oper);
109  virtual const DtIffAtcNavaidsMode5Transponder& mode5Transponder() const;
110 
112  virtual void setModeSInterrogator(const DtIffAtcNavaidsModeSInterrogator& oper);
113  virtual const DtIffAtcNavaidsModeSInterrogator& modeSInterrogator() const;
114  virtual void setModeSTransponder(const DtIffAtcNavaidsModeSTransponder& oper);
115  virtual const DtIffAtcNavaidsModeSTransponder& modeSTransponder() const;
116 
118  virtual void setDataCommunications(const DtIffAtcNavaidsDataCommunications& oper);
119  virtual const DtIffAtcNavaidsDataCommunications& dataCommunications() const;
120 
122  virtual bool layerPresent(int layer) const;
123 
126  virtual bool enableLayer2(DtU8 layerSpecificInfo, int numRecords);
127  virtual bool disableLayer2();
128 
130  virtual bool enableLayer3(DtU8 layerSpecificInfo, int numRecords);
131  virtual bool disableLayer3();
132 
134  virtual bool enableLayer4(DtU8 layerSpecificInfo, int numRecords);
135  virtual bool disableLayer4();
136 
138  virtual bool enableLayer5(DtU8 layerSpecificInfo, int numRecords);
139  virtual bool disableLayer5();
140 
141  virtual DtU8 layer3SpecificInfo() const { return myLayer3SpecificInfo; }
142  virtual DtU8 layer4SpecificInfo() const { return myLayer4SpecificInfo; }
143  virtual DtU8 layer5SpecificInfo() const { return myLayer5SpecificInfo; }
144 
148 
151  virtual const DtIffAtcNavaidsLayerHeader& layer2Header() const;
152 
154  virtual void setBeamData(const DtIffAtcNavaidsBeamData& beamData);
155  virtual const DtIffAtcNavaidsBeamData& beamData() const;
156 
158  virtual void setSecondaryOperational(
159  const DtIffAtcNavaidsSecondOperational& oper);
160  virtual const DtIffAtcNavaidsSecondOperational&
161  secondaryOperational() const;
162 
164  virtual DtU16 numParameterSets() const;
165 
167  virtual bool setParmData(int parmIndex,
168  const DtIffAtcNavaidsParameter& init);
169  virtual bool getParmData(int parmIndex,
170  DtIffAtcNavaidsParameter& record) const;
171 
173  virtual bool setIffRecord(unsigned int index,
174  const DtIffAtcNavaidsVariableRecord& record, int layer);
175 
176  virtual DtIffAtcNavaidsVariableRecord* getIffRecord(int parmIndex, int layer) const;
177 
179  virtual DtU16 numIffRecords(int layer) const;
180 
182  virtual void printData() const;
183 
185  virtual void printDataToStream(std::ostream& stream) const;
186 
187 protected:
188 
190  virtual DtPduKind internalGetPduKind() const;
191 
193  virtual DtNetIffAtcNavaidsPduLayer1* netPduStruct() const;
194 
196  virtual DtNetIffAtcNavaidsPduLayer2* netPduStructL2() const;
197 
200  DtIffAtcNavaidsPdu* self() const;
201 
203  virtual DtNetIffAtcNavaidsParameter* parameter() const;
204 
205 protected:
206 
208  static const int theStaticSize;
209 
210 protected:
211 
213  DtEntityIdentifier myEntityID;
214  DtEventID myEventID;
215  DtVector32 myEntCoords;
216  DtIffAtcNavaidsSystemID mySystemID;
217  DtIffAtcNavaidsOperational myOperational;
218  DtIffAtcNavaidsLayerHeader myLayerHeader;
219  DtIffAtcNavaidsBeamData myBeamData;
220  DtIffAtcNavaidsSecondOperational mySecondOperational;
221  DtIffAtcNavaidsParameter myParameter;
222 
223  //DIS 7 Only layers (Note, these are not temporary objects, they are decoded and encoded)
224  DtIffAtcNavaidsMode5Transponder myMode5Transponder;
225  DtIffAtcNavaidsMode5Interrogator myMode5Interrogator;
226  DtIffAtcNavaidsModeSTransponder myModeSTransponder;
227  DtIffAtcNavaidsModeSInterrogator myModeSInterrogator;
228  DtIffAtcNavaidsDataCommunications myDataCommunications;
229  unsigned int mySystemDesignator;
230  unsigned int mySystemSpecificData;
231 
232  DtU8 myLayer3SpecificInfo;
233  DtU8 myLayer4SpecificInfo;
234  DtU8 myLayer5SpecificInfo;
235 
236  std::vector<DtIffAtcNavaidsVariableRecord*> myVariableRecordsLayer3;
237  std::vector<DtIffAtcNavaidsVariableRecord*> myVariableRecordsLayer4;
238  std::vector<DtIffAtcNavaidsVariableRecord*> myVariableRecordsLayer5;
239 
240  bool layer2Allocated;
241 };
242 
243 #endif
Definition: iffAtcNavaidsVariableRecord.h:11
Definition: iffAtcNavP.h:88
Definition: iffAtcNavP.h:63
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:60
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: pduHeader.h:14
Definition: iffAtcNavP.h:76
This file defines math constants and methods which may be useful in simulations.
DtIffAtcNavaidsParameter is a class which contains the parameter data for the IFF/ATC/NAVAIDS PDU...
Definition: iffAtcNavaidsParameter.h:24
DtStateMsg & operator=(const DtStateMsg &orig)
assignment operator
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
unsigned char DtU8
An eight bit unsigned integer value.
Definition: vlMachineTypes.h:137
Definition: vlVector.h:162
Represents Events in the RPR FOM.
Definition: eventId.h:52
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
This file declares classes related to IFF objects.
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
class DtStateMsg:
Definition: stateMsgHLA.h:32
This file contains typedefs for machine dependant types.

Document ID: Generated on Mon Apr 25 03:39:01 EDT 2022 from SVN revision 242502
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)