VR-Link API Documentation for DIS
 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 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 
44 
46 typedef void (*DtIffAtcNavaidsPduCb)(DtIffAtcNavaidsPdu* pdu, void* usr);
47 
48 
52 typedef void (*DtIFFEmissionInteractionCb)(DtIFFEmissionInteraction* inter, void* usr);
53 
57 typedef void (*DtInterrogationInteractionCb)(DtInterrogationInteraction* inter, void* usr);
58 
62 typedef void (*DtReplyInteractionCb)(DtReplyInteraction* inter, void* usr);
63 
67 typedef void (*DtSquitterInteractionCb)(DtSquitterInteraction* inter, void* usr);
68 //class DT_DLL_VL DtSquitterInteraction : public DtIffAtcNavaidsPdu
69 //{
70 
75 {
76 
77 public:
78 
82  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
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 
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(
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 
303 
304  //DIS 7 Only layers (Note, these are not temporary objects, they are decoded and encoded)
310  unsigned int mySystemDesignator;
311  unsigned int mySystemSpecificData;
312 
313  //DtNetIffBasicInteractiveRecord myBasicInteractiveRecord;
315 
316 
320 
321  std::vector<DtIffAtcNavaidsVariableRecord*> myVariableRecordsLayer3;
322  std::vector<DtIffAtcNavaidsVariableRecord*> myVariableRecordsLayer4;
323  std::vector<DtIffAtcNavaidsVariableRecord*> myVariableRecordsLayer5;
324 
326 };
327 
328 #endif
Definition: iffAtcNavaidsVariableRecord.h:11
bool layer2Allocated
Definition: iffAtcNavaidsPdu.h:325
void(* DtIFFEmissionInteractionCb)(DtIFFEmissionInteraction *inter, void *usr)
Definition: iffAtcNavaidsPdu.h:52
std::vector< DtIffAtcNavaidsVariableRecord * > myVariableRecordsLayer3
Definition: iffAtcNavaidsPdu.h:321
unsigned int mySystemDesignator
Definition: iffAtcNavaidsPdu.h:310
Definition: iffAtcNavP.h:88
Definition: iffAtcNavP.h:63
void(* DtSquitterInteractionCb)(DtSquitterInteraction *inter, void *usr)
Definition: iffAtcNavaidsPdu.h:67
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: exerciseConnDIS.h:62
unsigned int mySystemSpecificData
Definition: iffAtcNavaidsPdu.h:311
DtVector32 myEntCoords
Definition: iffAtcNavaidsPdu.h:296
DtIffAtcNavaidsSecondOperational is a class which contains the secondary operational data for a layer...
Definition: iffAtcNavaidsSecondOperational.h:27
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
DtIffAtcNavaidsModeSInterrogator myModeSInterrogator
Definition: iffAtcNavaidsPdu.h:308
DtIffAtcNavaidsOperational myOperational
Definition: iffAtcNavaidsPdu.h:298
Definition: pduHeader.h:14
static const int theStaticSize
Size of PDU with zero parameter records.
Definition: iffAtcNavaidsPdu.h:289
DtIffAtcNavaidsParameter myParameter
Definition: iffAtcNavaidsPdu.h:302
DtReplyAmplification
Definition: disEnums.h:767
void(* DtInterrogationInteractionCb)(DtInterrogationInteraction *inter, void *usr)
Definition: iffAtcNavaidsPdu.h:57
Definition: iffAtcNavP.h:76
DtU8 myLayer5SpecificInfo
Definition: iffAtcNavaidsPdu.h:319
class DtPduFactory:
Definition: pduFactory.h:38
DtIffAtcNavaidsOperational is a class which contains the fundamental operational data for the IFF/ATC...
Definition: iffAtcNavaidsOperational.h:24
DtIffAtcNavaidsPdu DtSquitterInteraction
Instances of DtSquitterInteraction are used to represent the HLAinteractionRoot.IFFEmissions.Squitter interaction.
Definition: iffAtcNavaidsPdu.h:66
DtIffAtcNavaidsLayerHeader is a class which contains the layer header information for a layer of the ...
Definition: iffAtcNavaidsLayerHeader.h:25
DtU8 myLayer3SpecificInfo
Definition: iffAtcNavaidsPdu.h:317
virtual DtU8 layer4SpecificInfo() const
Definition: iffAtcNavaidsPdu.h:183
DtIffAtcNavaidsBeamData myBeamData
Definition: iffAtcNavaidsPdu.h:300
DtIffAtcNavaidsSystemID is a class which contains information identifying the emitting system in the ...
Definition: iffAtcNavaidsSystemID.h:23
DtIffAtcNavaidsLayerHeader myLayerHeader
Definition: iffAtcNavaidsPdu.h:299
virtual void printDataToStream(std::ostream &stream) const
Instances of DtIffAtcNavaidsPdu are used to send information about simulated radio transponders and i...
Definition: iffAtcNavaidsPdu.h:74
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
virtual DtU8 layer5SpecificInfo() const
Definition: iffAtcNavaidsPdu.h:184
DtIffAtcNavaidsDataCommunications myDataCommunications
Definition: iffAtcNavaidsPdu.h:309
DtIffAtcNavaidsModeSInterrogator is a class which contains layer of the IFF/ATC/NAVAIDS PDU...
Definition: iffAtcNavaidsModeSInterrogator.h:20
std::vector< DtIffAtcNavaidsVariableRecord * > myVariableRecordsLayer4
Definition: iffAtcNavaidsPdu.h:322
virtual DtPduKind internalGetPduKind() const =0
Returns the PDU kind associated with the derived PDU class.
DtPdu is the base class for all PDU&#39;s in VR-Link.
Definition: pdu.h:69
DtIffAtcNavaidsMode5Transponder is a class which contains layer of the IFF/ATC/NAVAIDS PDU...
Definition: iffAtcNavaidsMode5Transponder.h:20
unsigned char DtU8
An eight bit unsigned integer value.
Definition: vlMachineTypes.h:137
DtIffAtcNavaidsModeSTransponder myModeSTransponder
Definition: iffAtcNavaidsPdu.h:307
DtIffAtcNavaidsMode5Transponder myMode5Transponder
Definition: iffAtcNavaidsPdu.h:305
DtU8 myLayer4SpecificInfo
Definition: iffAtcNavaidsPdu.h:318
Definition: vlVector.h:162
Represents Events in DIS.
Definition: eventId.h:154
DtTransmissionIndicator
Definition: disEnums.h:759
DtIffAtcNavaidsPdu DtReplyInteraction
Instances of DtReplyInteraction are used to represent the HLAinteractionRoot.IFFEmissions.Reply interaction.
Definition: iffAtcNavaidsPdu.h:61
DtIffAtcNavaidsPdu DtIFFEmissionInteraction
Instances of DtIFFEmissionInteraction are used to represent the HLAinteractionRoot.IFFEmission interaction.
Definition: iffAtcNavaidsPdu.h:51
DtIffAtcNavaidsSystemID mySystemID
Definition: iffAtcNavaidsPdu.h:297
DtIffAtcNavaidsDataCommunications is a class which contains layer of the IFF/ATC/NAVAIDS PDU...
Definition: iffAtcNavaidsDataCommunications.h:20
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
DtEntityIdentifier myEntityID
Temporary objects for reference returns.
Definition: iffAtcNavaidsPdu.h:294
DtEventID myEventID
Definition: iffAtcNavaidsPdu.h:295
void(* DtReplyInteractionCb)(DtReplyInteraction *inter, void *usr)
Definition: iffAtcNavaidsPdu.h:62
virtual void printData() const
Print the PDU&#39;s data (not including header).
Definition: iffDatatypes.h:2769
DtIffAtcNavaidsModeSTransponder is a class which contains layer of the IFF/ATC/NAVAIDS PDU...
Definition: iffAtcNavaidsModeSTransponder.h:20
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.
virtual DtU8 layer3SpecificInfo() const
Definition: iffAtcNavaidsPdu.h:182
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
DtIffAtcNavaidsSecondOperational mySecondOperational
Definition: iffAtcNavaidsPdu.h:301
DtIffAtcNavaidsMode5Transponder is a class which contains layer of the IFF/ATC/NAVAIDS PDU...
Definition: iffAtcNavaidsMode5Interrogator.h:20
std::vector< DtIffAtcNavaidsVariableRecord * > myVariableRecordsLayer5
Definition: iffAtcNavaidsPdu.h:323
Contains the standard DIS enumerations.
This file declares classes related to IFF objects.
DtPduStatusIFFSimulationMode
Definition: disEnums.h:3048
Definition: iffBasicInteractiveRecord.h:14
DtIffBasicInteractiveRecord myBasicInteractiveRecord
Definition: iffAtcNavaidsPdu.h:314
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
DtIffAtcNavaidsBeamData is a class which contains the antenna data for the IFF/ATC/NAVAIDS PDU...
Definition: iffAtcNavaidsBeamData.h:24
Instances of DtStateMsg are used to represent state data communicated via the network in a DIS (as op...
Definition: stateMsgDIS.h:21
DtIffInteractionType
Definition: disEnums.h:2134
This file contains typedefs for machine dependant types.
DtIffAtcNavaidsMode5Interrogator myMode5Interrogator
Definition: iffAtcNavaidsPdu.h:306
void(* DtIffAtcNavaidsPduCb)(DtIffAtcNavaidsPdu *pdu, void *usr)
DtIffAtcNavaidsPdu callback function signature.
Definition: iffAtcNavaidsPdu.h:46
DtIffAtcNavaidsPdu DtInterrogationInteraction
Instances of DtInterrogationInteraction are used to represent the HLAinteractionRoot.IFFEmissions.Interrogation interaction.
Definition: iffAtcNavaidsPdu.h:56

Document ID: Generated on Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)