VR-Link API Documentation for HLA 1.3
 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-2025 MAK Technologies, Inc
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 #include <vl/iffDatatypes.h>
39 #include "vlpi/disEnums.h"
40 
41 
42 
43 class DT_DLL_VL DtIffAtcNavaidsPdu;
44 
46 typedef void (*DtIffAtcNavaidsPduCb)(DtIffAtcNavaidsPdu* pdu, void* usr);
47 
48 
51 typedef DtIffAtcNavaidsPdu DtIFFEmissionInteraction;
52 typedef void (*DtIFFEmissionInteractionCb)(DtIFFEmissionInteraction* inter, void* usr);
53 
56 typedef DtIffAtcNavaidsPdu DtInterrogationInteraction;
57 typedef void (*DtInterrogationInteractionCb)(DtInterrogationInteraction* inter, void* usr);
58 
61 typedef DtIffAtcNavaidsPdu DtReplyInteraction;
62 typedef void (*DtReplyInteractionCb)(DtReplyInteraction* inter, void* usr);
63 
66 typedef DtIffAtcNavaidsPdu DtSquitterInteraction;
67 typedef void (*DtSquitterInteractionCb)(DtSquitterInteraction* inter, void* usr);
68 //class DT_DLL_VL DtSquitterInteraction : public DtIffAtcNavaidsPdu
69 //{
70 
74 class DT_DLL_VL DtIffAtcNavaidsPdu : public DtStateMsg
75 {
76 
77 public:
78 
80  DtIffAtcNavaidsPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
81  DtIffAtcNavaidsPdu(const DtNetIffAtcNavaidsPduLayer1* initial,
82  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
83  DtIffAtcNavaidsPdu(const DtIffAtcNavaidsPdu& orig);
84 
86  virtual ~DtIffAtcNavaidsPdu();
87 
90  static DtPdu* create(const DtNetPacket* initial,
91  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
92 
95  static void addCallback(DtExerciseConn* conn,
96  DtIffAtcNavaidsPduCb cb, void* usr);
97  static void removeCallback(DtExerciseConn* conn,
98  DtIffAtcNavaidsPduCb cb, void* usr);
99  static void addIffCallback(DtExerciseConn* conn,
100  DtIffAtcNavaidsPduCb cb, DtIffInteractionType type, void* usr);
101  static void removeIffCallback(DtExerciseConn* conn,
102  DtIffAtcNavaidsPduCb cb, DtIffInteractionType type, void* usr);
103 
105  DtIffAtcNavaidsPdu& operator=(const DtIffAtcNavaidsPdu& orig);
106 
108  virtual void setEmittingEntityID(const DtEntityIdentifier& entity);
109  virtual const DtEntityIdentifier& emittingEntityID() const;
110 
112  virtual void setEventId(const DtEventID& event);
113  virtual const DtEventID& eventId() const;
114 
116  virtual void setLocation(const DtVector32& coords);
117  virtual const DtVector32& location() const;
118 
120  virtual void setSystemID(const DtIffAtcNavaidsSystemID& id);
121  virtual const DtIffAtcNavaidsSystemID& systemID() const;
122 
124  virtual void setSystemDesignator(DtU8 id);
125  virtual DtU8 systemDesignator() const;
126 
130  virtual void setSimulationMode(DtPduStatusIFFSimulationMode mode);
131  virtual DtPduStatusIFFSimulationMode simulationMode() const;
132 
136  virtual bool isInteractiveCapable() const;
137 
139  virtual void setSystemSpecificData(DtU8 id);
140  virtual DtU8 systemSpecificData() const;
141 
143  virtual void setOperational(const DtIffAtcNavaidsOperational& oper);
144  virtual const DtIffAtcNavaidsOperational& operational() const;
145 
147  virtual void setMode5Interrogator(const DtIffAtcNavaidsMode5Interrogator& oper);
148  virtual const DtIffAtcNavaidsMode5Interrogator& mode5Interrogator() const;
149  virtual void setMode5Transponder(const DtIffAtcNavaidsMode5Transponder& oper);
150  virtual const DtIffAtcNavaidsMode5Transponder& mode5Transponder() const;
151 
153  virtual void setModeSInterrogator(const DtIffAtcNavaidsModeSInterrogator& oper);
154  virtual const DtIffAtcNavaidsModeSInterrogator& modeSInterrogator() const;
155  virtual void setModeSTransponder(const DtIffAtcNavaidsModeSTransponder& oper);
156  virtual const DtIffAtcNavaidsModeSTransponder& modeSTransponder() const;
157 
159  virtual void setDataCommunications(const DtIffAtcNavaidsDataCommunications& oper);
160  virtual const DtIffAtcNavaidsDataCommunications& dataCommunications() const;
161 
163  virtual bool layerPresent(int layer) const;
164 
167  virtual bool enableLayer2(DtU8 layerSpecificInfo, int numRecords);
168  virtual bool disableLayer2();
169 
171  virtual bool enableLayer3(DtU8 layerSpecificInfo, int numRecords);
172  virtual bool disableLayer3();
173 
175  virtual bool enableLayer4(DtU8 layerSpecificInfo, int numRecords);
176  virtual bool disableLayer4();
177 
179  virtual bool enableLayer5(DtU8 layerSpecificInfo, int numRecords);
180  virtual bool disableLayer5();
181 
182  virtual DtU8 layer3SpecificInfo() const { return myLayer3SpecificInfo; }
183  virtual DtU8 layer4SpecificInfo() const { return myLayer4SpecificInfo; }
184  virtual DtU8 layer5SpecificInfo() const { return myLayer5SpecificInfo; }
185 
189 
192  virtual const DtIffAtcNavaidsLayerHeader& layer2Header() const;
193 
195  virtual void setBeamData(const DtIffAtcNavaidsBeamData& beamData);
196  virtual const DtIffAtcNavaidsBeamData& beamData() const;
197 
199  virtual void setSecondaryOperational(
200  const DtIffAtcNavaidsSecondOperational& oper);
201  virtual const DtIffAtcNavaidsSecondOperational&
202  secondaryOperational() const;
203 
205  virtual DtU16 numParameterSets() const;
206 
208  virtual bool setParmData(int parmIndex,
209  const DtIffAtcNavaidsParameter& init);
210  virtual bool getParmData(int parmIndex,
211  DtIffAtcNavaidsParameter& record) const;
212 
214  virtual bool setIffRecord(unsigned int index,
215  const DtIffAtcNavaidsVariableRecord& record, int layer);
216  virtual DtIffAtcNavaidsVariableRecord* getIffRecord(int parmIndex, int layer) const;
217 
218  // Accessor/Getter for myBasicInteractiveRecord
219  virtual const DtIffBasicInteractiveRecord& iffBasicInteractiveRecord() const;
220  virtual void setIffBasicInteractiveRecord(const DtIffBasicInteractiveRecord& record);
221 
222 
224  virtual void setTransmissionIndicator(DtTransmissionIndicator data);
225  virtual DtTransmissionIndicator transmissionIndicator() const;
226 
228  virtual void setInterrogatingId(DtObjectId data);
229  virtual DtObjectId interrogatingId() const;
230 
232  virtual void setInterrogatedId(DtObjectId data);
233  virtual DtObjectId interrogatedId() const;
234 
236  virtual void setInteractiveEventId(DtEventId status);
237  virtual DtEventId interactiveEventId() const;
238 
240  virtual void setInterrogatedModes(const DtInterrogatedModesStruct& val);
241  virtual const DtInterrogatedModesStruct& interrogatedModesStruct() const;
242  virtual const DtU16 interrogatedModes() const;
243 
245  virtual void setReplyAmplification(DtReplyAmplification data);
246  virtual DtReplyAmplification replyAmplification() const;
247 
250  virtual void setLethal(bool val);
252  virtual bool isLethal() const;
253 
255  virtual void setReportingSimulation(const DtFederateIdentifierStruct& val);
256  virtual const DtFederateIdentifierStruct& reportingSimulationStruct() const;
257  virtual const DtSimulationAddress& reportingSimulation() const;
258 
260  virtual DtU16 numIffRecords(int layer) const;
261 
263  virtual void printData() const;
264 
266  virtual void printDataToStream(std::ostream& stream) const;
267 
268 protected:
269 
271  virtual DtPduKind internalGetPduKind() const;
272 
274  virtual DtNetIffAtcNavaidsPduLayer1* netPduStruct() const;
275 
277  virtual DtNetIffAtcNavaidsPduLayer2* netPduStructL2() const;
278 
281  DtIffAtcNavaidsPdu* self() const;
282 
284  virtual DtNetIffAtcNavaidsParameter* parameter() const;
285 
286 protected:
287 
289  static const int theStaticSize;
290 
291 protected:
292 
294  DtEntityIdentifier myEntityID;
295  DtEventID myEventID;
296  DtVector32 myEntCoords;
297  DtIffAtcNavaidsSystemID mySystemID;
298  DtIffAtcNavaidsOperational myOperational;
299  DtIffAtcNavaidsLayerHeader myLayerHeader;
300  DtIffAtcNavaidsBeamData myBeamData;
301  DtIffAtcNavaidsSecondOperational mySecondOperational;
302  DtIffAtcNavaidsParameter myParameter;
303 
304  //DIS 7 Only layers (Note, these are not temporary objects, they are decoded and encoded)
305  DtIffAtcNavaidsMode5Transponder myMode5Transponder;
306  DtIffAtcNavaidsMode5Interrogator myMode5Interrogator;
307  DtIffAtcNavaidsModeSTransponder myModeSTransponder;
308  DtIffAtcNavaidsModeSInterrogator myModeSInterrogator;
309  DtIffAtcNavaidsDataCommunications myDataCommunications;
310  unsigned int mySystemDesignator;
311  unsigned int mySystemSpecificData;
312 
313  //DtNetIffBasicInteractiveRecord myBasicInteractiveRecord;
314  DtIffBasicInteractiveRecord myBasicInteractiveRecord;
315 
316 
317  DtU8 myLayer3SpecificInfo;
318  DtU8 myLayer4SpecificInfo;
319  DtU8 myLayer5SpecificInfo;
320 
321  std::vector<DtIffAtcNavaidsVariableRecord*> myVariableRecordsLayer3;
322  std::vector<DtIffAtcNavaidsVariableRecord*> myVariableRecordsLayer4;
323  std::vector<DtIffAtcNavaidsVariableRecord*> myVariableRecordsLayer5;
324 
325  bool layer2Allocated;
326 };
327 
328 #endif
Definition: iffAtcNavaidsVariableRecord.h:11
Definition: iffAtcNavP.h:88
Definition: iffAtcNavP.h:63
void(* DtReplyInteractionCb)(DtReplyInteraction *inter, void *usr)
DtReplyInteraction callback function signature.
Definition: replyInteractionHLA.h:23
A DtSimulationAddress is used in DIS to identify a particular simulator.
Definition: simulationAddress.h:29
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
Instances of DtReplyInteraction are used to store state data for IFFEmission.Reply interactions...
Definition: replyInteractionHLA.h:29
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: pduHeader.h:14
Instances of DtIFFEmissionInteraction are used to store state data for IFFEmission interactions...
Definition: iffEmissionInteractionHLA.h:31
DtReplyAmplification
Definition: disEnums.h:783
Definition: iffAtcNavP.h:76
void(* DtSquitterInteractionCb)(DtSquitterInteraction *inter, void *usr)
DtSquitterInteraction callback function signature.
Definition: squitterInteractionHLA.h:23
Instances of DtSquitterInteraction are used to store state data for IFFEmission.Squitter interactions...
Definition: squitterInteractionHLA.h:29
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
void(* DtInterrogationInteractionCb)(DtInterrogationInteraction *inter, void *usr)
DtInterrogationInteraction callback function signature.
Definition: interrogationInteractionHLA.h:23
Definition: vlVector.h:162
void(* DtIFFEmissionInteractionCb)(DtIFFEmissionInteraction *inter, void *usr)
DtIFFEmissionInteraction callback function signature.
Definition: iffEmissionInteractionHLA.h:25
Represents Events in the RPR FOM.
Definition: eventId.h:52
DtTransmissionIndicator
Definition: disEnums.h:775
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
Definition: iffDatatypes.h:2769
Definition: federateIdentifierStruct.h:23
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
Contains the IFF datatypes for RPR 3.
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
DtObjectId instances are used to represent RTI::ObjectInstances in VR-Link.
Definition: objectId.h:38
Instances of DtInterrogationInteraction are used to store state data for IFFEmission.Interrogation interactions.
Definition: interrogationInteractionHLA.h:29
Contains the standard DIS enumerations.
This file declares classes related to IFF objects.
DtPduStatusIFFSimulationMode
Definition: disEnums.h:3074
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
class DtStateMsg:
Definition: stateMsgHLA.h:32
DtIffInteractionType
Definition: disEnums.h:2160
This file contains typedefs for machine dependant types.

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)