VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
iffStateRepository.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2013 MAK Technologies, Inc
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
15 #include <vl/hostStructs.h>
16 #include <vl/eventId.h>
17 #include <vlutil/vlNetTypes.h>
18 #include <string.h>
19 #include "iffDatatypes.h"
20 
32 
33 #ifndef DtIFF_MODE_CODE_SIZE
34 #define DtIFF_MODE_CODE_SIZE 3
35 #endif
36 
40 {
41 
42 public:
43 
46 
48  virtual ~DtIffStateRepository();
49 
52 
55 
57  virtual DtStateRepository* clone(bool copy = false) const;
58 
60  virtual void printData() const;
61 
63  virtual void printDataToStream(std::ostream& stream) const;
64 
65  // Factories for dependant related IFFDatat state repos.
66  static DtMode1StateRepository* (*theMode1StateRepositoryCreator)();
67  static DtMode2StateRepository* (*theMode2StateRepositoryCreator)();
68  static DtMode3AStateRepository* (*theMode3AStateRepositoryCreator)();
69  static DtMode3CStateRepository* (*theMode3CStateRepositoryCreator)();
70  static DtMode4StateRepository* (*theMode4StateRepositoryCreator)();
71  static DtMode5StateRepository* (*theMode5StateRepositoryCreator)();
72  static DtModeSStateRepository* (*theModeSStateRepositoryCreator)();
73  static DtTCASDataStateRepository* (*theTCASDataStateRepositoryCreator)();
74  static DtSovietStateRepository* (*theSovietStateRepositoryCreator)();
75  static DtRRBStateRepository* (*theRRBStateRepositoryCreator)();
76 
77 
78 /************** IFF SYSTEM ATTRIBUTES *****************/
79 
84  virtual void setSystemType(DtIffAtcNavaidsSysType type );
85  virtual DtIffAtcNavaidsSysType systemType() const;
86 
89  virtual void setSystemName(DtIffAtcNavaidsSysName name );
90  virtual DtIffAtcNavaidsSysName systemName() const;
91 
94  virtual void setSystemDesignator(DtU8 designator);
95  virtual DtU8 systemDesignator() const;
96 
101  virtual void setInteractiveModeIsActive(bool isActive);
102  virtual bool interactiveModeIsActive() const;
103 
106  virtual void setEventId(const DtEventId &eventId);
107  virtual const DtEventId& eventId() const;
108 
111  virtual void setSystemIsOn(bool isOn);
112  virtual bool systemIsOn() const;
113 
116  virtual void setSystemMode(DtU8 mode );
117  virtual DtU8 systemMode() const;
118 
122  virtual void setOperationalStatus(DtOperationalStatusEnum8 status);
123  virtual DtOperationalStatusEnum8 operationalStatus() const;
124 
127  virtual void setTestModeIsOn(bool isOn);
128  virtual bool testModeIsOn() const;
129 
135  virtual void setEmissionsDataAvailable(bool isAvailable);
136  virtual bool emissionsDataAvailable() const;
137 
140  virtual void setBeamAzimuthCenter(DtFloat32 val);
141  virtual DtFloat32 beamAzimuthCenter() const;
142 
145  virtual void setBeamAzimuthSweep(DtFloat32 val);
146  virtual DtFloat32 beamAzimuthSweep() const;
147 
150  virtual void setBeamElevationCenter(DtFloat32 val);
151  virtual DtFloat32 beamElevationCenter() const;
152 
155  virtual void setBeamElevationSweep(DtFloat32 val);
156  virtual DtFloat32 beamElevationSweep() const;
157 
160  virtual void setBeamSweepSync(DtFloat32 val);
161  virtual DtFloat32 beamSweepSync() const;
162 
165  virtual void setFundamentalParameterData(DtFundamentalParameterDataStructArray val);
166  virtual DtFundamentalParameterDataStructArray fundamentalParameterData() const;
167 
170  virtual void setSupplementalData(DtIFFDataVariantStructArray val);
171  virtual DtIFFDataVariantStructArray supplementalData() const;
174 
175 /************** IFF SYSTEM TRANSPONDER ATTRIBUTES *****************/
176 
181  virtual void setEmergencyOn(bool val);
182  virtual bool isEmergencyOn() const;
183 
188  virtual void setIdentSquawkFlashOn(bool val);
189  virtual bool isIdentSquawkFlashOn() const;
190 
193  virtual void setUnmannedAircraftOn(bool val);
194  virtual bool isUnmannedAircraftOn() const;
197 
198 /************** IFF DATA ATTRIBUTES *****************/
199 
204  virtual void setSystemId(const DtGlobalObjectDesignator& globalId);
205  virtual const DtGlobalObjectDesignator& systemId() const;
208 
209 /************** IFF DATA MODE ACCESSORS *****************/
213  virtual bool hasMode(DtModeType modeType) const;
214 
215  // General use Mode Enabler
216  virtual void enableMode(DtModeType modeType) const;
217  //virtual bool isEnabled(DtModeType modeType) const;
218 
221  virtual DtMode1StateRepository* mode1() const;
222 
225  virtual DtMode2StateRepository* mode2() const;
226 
229  virtual DtMode3AStateRepository* mode3A() const;
230 
233  virtual DtMode3CStateRepository* mode3C() const;
234 
237  virtual DtMode4StateRepository* mode4() const;
238 
241  virtual DtMode5StateRepository* mode5() const;
242 
245  virtual DtModeSStateRepository* modeS() const;
246 
249  virtual DtTCASDataStateRepository* tcasData() const;
250 
253  virtual DtSovietStateRepository* soviet() const;
254 
257  virtual DtRRBStateRepository* rrb() const;
260 
261 /************** RPR 3.0 IFF ACCESSORS *****************/
262 
265  // Adding for RPR 3 API Refactor
270  virtual void setModeEnabled(DtModeType modeType, bool val);
271  virtual bool modeEnabled(DtModeType modeType) const;
272 
273  virtual void setModeIsMalfunctioning(DtModeType modeType, bool val);
274  virtual bool modeIsMalfunctioning(DtModeType modeType) const;
275 
276  virtual void setModeIsDamaged(DtModeType modeType, bool val);
277  virtual bool modeIsDamaged(DtModeType modeType) const;
278 
279  virtual void setModeIsOn(DtModeType modeType, bool val);
280  virtual bool modeIsOn(DtModeType modeType) const;
282 
283 /************** RPR 2.0 IFF ATTRIBUTES *****************/
284 //NOTE: These are the attributes that don't exist or have been modified in RPR 3.0
285 
292  virtual void setSystemIsOperational(bool isOperational);
293  virtual bool systemIsOperational() const;
296 
297 /************** DIS-Specific IFF ATTRIBUTES *****************/
298 public:
299 
302  // DIS Base IFF PDU (Layer 1)
306  virtual void setIffSimulationMode(bool on);
307  virtual bool iffSimulationMode() const;
308 
309  virtual void setInteractiveCapable(bool on);
310  virtual bool interactiveCapable() const;
311 
319  virtual void setModeCode(DtModeType modeCodeNum, DtU16 val);
320  virtual DtU16 modeCode(DtModeType modeCodeNum) const;
321 
324  virtual void setStiOn(bool onOff);
325  virtual bool stiOn() const;
328 
332 
335  virtual void setLayer2DataAvailable(bool b);
336  virtual bool layer2DataAvailable() const;
337 
339  virtual void setLayer2SpecificInfo(unsigned int val);
340  virtual unsigned int layer2SpecificInfo() const;
341 
343  virtual void setSecondaryOperationalDataParameter1(
346  secondaryOperationalDataParameter1() const;
347 
349  virtual void setSecondaryOperationalDataParameter2(
352  secondaryOperationalDataParameter2() const;
353 
355  virtual int numParameterSets() const;
356  virtual void setNumParameterSets(int n);
357 
359  virtual bool setParamData(int parmIndex,
360  const DtIffAtcNavaidsParameter& init);
361  virtual bool getParamData(int parmIndex,
362  DtIffAtcNavaidsParameter& record) const;
363  virtual DtIffAtcNavaidsParameter paramData(
364  int paramIndex, bool *valid = NULL) const;
366 
367 #if DtDIS
368  virtual int numIffRecords(int layer) const;
372  virtual void setNumIffRecords(int n, int layer);
373 
374  virtual bool setIffRecord(int parmIndex,
375  const DtIffAtcNavaidsVariableRecord& init, int layer);
376 
377  virtual DtIffAtcNavaidsVariableRecord* getIffRecord(int parmIndex, int layer) const;
379 
380  virtual void setSystemSpecificData(DtU8 b);
381  virtual DtU8 systemSpecificData() const;
382 
387 
393  virtual void setLayer3SpecificInfo(unsigned int val);
394  virtual unsigned int layer3SpecificInfo() const;
395 
399  virtual void setLayer4SpecificInfo(unsigned int val);
400  virtual unsigned int layer4SpecificInfo() const;
401 
405  virtual void setLayer5SpecificInfo(unsigned int val);
406  virtual unsigned int layer5SpecificInfo() const;
408 
413  virtual void setLayer3DataAvailable(bool b);
414  virtual bool layer3DataAvailable() const;
415 
416  virtual void setLayer4DataAvailable(bool b);
417  virtual bool layer4DataAvailable() const;
418 
419  virtual void setLayer5DataAvailable(bool b);
420  virtual bool layer5DataAvailable() const;
422 
424  virtual void setReportingSimulation(DtSimulationAddress b);
425  virtual DtSimulationAddress reportingSimulation() const;
426 
431  virtual void setAvailableLayers(DtU8 value);
432  virtual DtU8 availableLayers() const;
433 
435  virtual void setDataCategory(DtIffAtcNavaidsDataCategory value);
436  virtual DtIffAtcNavaidsDataCategory dataCategory() const;
438 
440 #endif //DtDIS
441 
442 /************** IFF MODE SR ACCESSORS *****************/
443 public:
446  // RPR FOM 3.0+ has dependent IFFData state repos for each mode.
447  void setMode1StateRepository(DtMode1StateRepository* r) const;
448  DtMode1StateRepository* mode1StateRepository() const;
449 
450  void setMode2StateRepository(DtMode2StateRepository* r) const;
451  DtMode2StateRepository* mode2StateRepository() const;
452 
453  void setMode3AStateRepository(DtMode3AStateRepository* r) const;
454  DtMode3AStateRepository* mode3AStateRepository() const;
455 
456  void setMode3CStateRepository(DtMode3CStateRepository* r) const;
457  DtMode3CStateRepository* mode3CStateRepository() const;
458 
459  void setMode4StateRepository(DtMode4StateRepository* r) const;
460  DtMode4StateRepository* mode4StateRepository() const;
461 
462  void setMode5StateRepository(DtMode5StateRepository* r) const;
463  DtMode5StateRepository* mode5StateRepository() const;
464 
465  void setModeSStateRepository(DtModeSStateRepository* r) const;
466  DtModeSStateRepository* modeSStateRepository() const;
467 
468  void setTCASDataStateRepository(DtTCASDataStateRepository* r) const;
469  DtTCASDataStateRepository* tcasDataStateRepository() const;
470 
471  void setSovietStateRepository(DtSovietStateRepository* r) const;
472  DtSovietStateRepository* sovietStateRepository() const;
473 
474  void setRRBStateRepository(DtRRBStateRepository* r) const;
475  DtRRBStateRepository* rrbStateRepository() const;
477 
478 public:
479 
481  static DtIffStateRepository* create();
482 
484  virtual void setEnabledModesChanged( bool changed );
485  virtual bool enabledModesChanged();
486 
487 protected:
488 
491  //RPR 3.0
502 
506 
517 
518  //DIS-Specific Layer 1 field
520 
521  // No longer in RPR 3.0
522  //RPR 2.0 in IFF and DIS Layer 1
523  bool mySystemIsOperational; //DIS part of Layer 1 Fundamental Operational Data in System Status record
524  bool myLayer2DataAvailable; //DIS part of Layer 1 Fundamental Operational Data in Informational Layers record
525 
526 /************** DIS SPECIFIC ATTRIBUTES *****************/
534 
535  //TODO: figure these out
540 
541  //TODO: figure these out; DIS-specific?
545 
546 
547 /************** IFF DATA MODE SRs *****************/
549 
563 
564 private:
575 
576 public:
577 /************** IFFSYSTEM TRANSPONDER ATTRIBUTES *****************/
582  bool myStiOn;
585  //DtU16 myModeCode[DtIFF_MODE_CODE_SIZE];
587 
588 /************** DIS SPECIFIC ATTRIBUTES *****************/
589 #ifdef DtDIS
590  DtSimulationAddress myReportingSimulation;
593 
596  std::vector<DtIffAtcNavaidsVariableRecord*> myLayer3IffRecords;
597 
600  std::vector<DtIffAtcNavaidsVariableRecord*> myLayer4IffRecords;
601 
604  std::vector<DtIffAtcNavaidsVariableRecord*> myLayer5IffRecords;
605 
609 
613 
617 #endif
618 
619  //Internal helper member variables
620  mutable bool myEnabledModesChanged;
621 };
virtual void printData() const
Print data to the DtInfo stream.
DtRRBStateRepository * myRRB
Definition: iffStateRepository.h:561
Definition: iffAtcNavaidsVariableRecord.h:11
Instances of DtSovietStateRepository are used to store state data for IFFData.Soviet objects...
Definition: iffSovietStateRepository.h:29
DtMode1StateRepository * myOwnedMode1StateRepository
Definition: iffStateRepository.h:565
DtMode3AStateRepository * myMode3A
Definition: iffStateRepository.h:554
DtIffOperationalParameter2 mySecondaryOperationalDataParameter2
Definition: iffStateRepository.h:532
DtFloat32 myBeamElevationSweep
Definition: iffStateRepository.h:513
DtModeSStateRepository * myModeS
Definition: iffStateRepository.h:558
DtIFFDataVariantStructArray mySupplementalData
System Type (enum U16)
Definition: iffStateRepository.h:505
bool myLayer5DataAvailable
Definition: iffStateRepository.h:612
Instances of DtTCASDataStateRepository are used to store state data for IFFData.TCASData objects...
Definition: iffTCASDataStateRepository.h:29
A DtSimulationAddress is used in DIS to identify a particular simulator.
Definition: simulationAddress.h:29
bool myIffSimulationMode
Definition: iffStateRepository.h:542
bool myIdentSquawkFlashOn
Definition: iffStateRepository.h:583
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
int myLayer3SpecificInfo
Definition: iffStateRepository.h:614
DtIffOperationalParameter1 mySecondaryOperationalDataParameter1
Definition: iffStateRepository.h:531
Instances of DtMode2StateRepository are used to store state data for IFFData.Mode2 objects...
Definition: iffMode2StateRepository.h:29
DtIffAtcNavaidsDataCategory myDataCategory
Definition: iffStateRepository.h:608
DtSovietStateRepository * myOwnedSovietStateRepository
Definition: iffStateRepository.h:573
Instances of DtModeSStateRepository are used to store state data for IFFData.ModeS objects...
Definition: iffModeSStateRepository.h:29
static DtEmbeddedSystemRepository * create()
bool myStiOn
Definition: iffStateRepository.h:582
DtMode2StateRepository * myMode2
Definition: iffStateRepository.h:553
bool myLayer3DataAvailable
Definition: iffStateRepository.h:610
DtModeSStateRepository * myOwnedModeSStateRepository
Definition: iffStateRepository.h:571
DtFloat32 myBeamSweepSync
Definition: iffStateRepository.h:514
DtMode5StateRepository * myMode5
Definition: iffStateRepository.h:557
Defines a protocol independent repository of attributes for IFF objects.
Definition: iffStateRepository.h:39
DtMode5StateRepository * myOwnedMode5StateRepository
Definition: iffStateRepository.h:570
bool myInteractiveCapable
Definition: iffStateRepository.h:543
Instances of DtEmbeddedSystemRepository are used to store the state of embedded systems.
Definition: embeddedSystemRepository.h:21
int myLayer5SpecificInfo
Definition: iffStateRepository.h:616
DtMode2StateRepository * myOwnedMode2StateRepository
Definition: iffStateRepository.h:566
DtIffAtcNavaidsSysType
Definition: disEnums.h:2125
DtIffAtcNavaidsParameter myEmptyParamSet
Definition: iffStateRepository.h:539
DtIffAtcNavaidsSysName myName
System Type (enum U16)
Definition: iffStateRepository.h:493
DtRRBStateRepository * myOwnedRRBStateRepository
Definition: iffStateRepository.h:574
std::vector< DtIffAtcNavaidsVariableRecord * > myLayer3IffRecords
Definition: iffStateRepository.h:596
DtIffOperationalParameter2
Definition: disEnums.h:2397
bool myEmissionsDataAvailable
System Type (enum U16)
Definition: iffStateRepository.h:501
DtIFFLayerSpecificInformationEnum8 myEmissionsDataSpecificInformation
Definition: iffStateRepository.h:509
DtIffAtcNavaidsParameter * myParamSets
Definition: iffStateRepository.h:538
int myLayer5NumIffRecords
Layer 5 (Data Communications)
Definition: iffStateRepository.h:603
DtOperationalStatusEnum8
Definition: iffDatatypes.h:1423
DtMode1StateRepository * myMode1
Definition: iffStateRepository.h:552
DtU8 mySystemMode
System Type (enum U16)
Definition: iffStateRepository.h:498
Instances of DtIFFDataStateRepository are used to store state data for IFFData objects.
Definition: IFFDataStateRepository.h:32
int myLayer2SpecificInfo
Definition: iffStateRepository.h:536
int myLayer4SpecificInfo
Definition: iffStateRepository.h:615
DtEmbeddedSystemRepository & operator=(const DtEmbeddedSystemRepository &orig)
assignment operator
DtIffAtcNavaidsSysName
Definition: disEnums.h:2113
DtIffAtcNavaidsParameter is a class which contains the parameter data for the IFF/ATC/NAVAIDS PDU...
Definition: iffAtcNavaidsParameter.h:24
bool myEnabledModesChanged
Definition: iffStateRepository.h:620
DtIFFLayerSpecificInformationEnum8 myDataCommunicationsSpecificInformation
System Type (enum U16)
Definition: iffStateRepository.h:504
Contains the DtEmbeddedSystemRepository class declaration.
DtTCASDataStateRepository * myTCASData
Definition: iffStateRepository.h:559
std::vector< DtIffAtcNavaidsVariableRecord * > myLayer5IffRecords
Definition: iffStateRepository.h:604
Instances of DtRRBStateRepository are used to store state data for IFFData.RRB objects.
Definition: iffRRBStateRepository.h:29
DtGlobalObjectDesignator mySystemId
Definition: iffStateRepository.h:548
bool myLayer4DataAvailable
Definition: iffStateRepository.h:611
DtFloat32 myBeamElevationCenter
Definition: iffStateRepository.h:512
unsigned char DtU8
An eight bit unsigned integer value.
Definition: vlMachineTypes.h:137
DtIffAtcNavaidsDataCategory
Enumeration indicating the Data Category field.
Definition: disEnums.h:2365
DtU8 mySystemDesignator
System Name (enum U16)
Definition: iffStateRepository.h:494
Represents Events in DIS.
Definition: eventId.h:154
Definition: iffDatatypes.h:3436
DtFloat32 myBeamAzimuthSweep
Definition: iffStateRepository.h:511
DtFundamentalParameterDataStructArray myFundamentalParameterData
Definition: iffStateRepository.h:515
DtIFFLayerSpecificInformationEnum8
Definition: iffDatatypes.h:1331
Instances of DtMode1StateRepository are used to store state data for IFFData.Mode1 objects...
Definition: iffMode1StateRepository.h:29
DtEventId myEventId
System Type (enum U16)
Definition: iffStateRepository.h:496
DtOperationalStatusEnum8 myOperationalStatus
System Type (enum U16)
Definition: iffStateRepository.h:499
DtStateRepository is an abstract base class for maintaining state for an object.
Definition: stateRepository.h:50
Instances of DtMode3CStateRepository are used to store state data for IFFData.ModeC objects...
Definition: iffMode3CStateRepository.h:28
bool myEmergencyOn
Definition: iffStateRepository.h:581
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
DtSovietStateRepository * mySoviet
Definition: iffStateRepository.h:560
DtU8 myLayers
Layer 5 (Data Communications)
Definition: iffStateRepository.h:607
Instances of DtMode4StateRepository are used to store state data for IFFData.Mode4 objects...
Definition: iffMode4StateRepository.h:29
DtU8 mySystemSpecificData
Definition: iffStateRepository.h:519
DtMode3CStateRepository * myOwnedMode3CStateRepository
Definition: iffStateRepository.h:568
bool myInteractiveModeIsActive
System Type (enum U16)
Definition: iffStateRepository.h:495
int myLayer4NumIffRecords
Layer 4 (Mode S)
Definition: iffStateRepository.h:599
std::vector< DtIffAtcNavaidsVariableRecord * > myLayer4IffRecords
Definition: iffStateRepository.h:600
DtFloat32 myBeamAzimuthCenter
Definition: iffStateRepository.h:510
This file is deprecated - Please see simulationAddress.h, entityIdentifier.h, entityType.h, burstDescriptor.h, and NetStructs.h.
DtAntennaLocationIFFDataStructArray myAntennaLocationArray
System Type (enum U16)
Definition: iffStateRepository.h:503
DtTCASDataStateRepository * myOwnedTCASDataStateRepository
Definition: iffStateRepository.h:572
Contains the IFF datatypes for RPR 3.
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
DtIffOperationalParameter1
Definition: disEnums.h:2392
Instances of DtMode5StateRepository are used to store state data for IFFData.Mode5 objects...
Definition: iffMode5StateRepository.h:30
virtual DtStateRepository * clone(bool copy) const
Return a copy/empty object of the same type as this.
Definition: iffDatatypes.h:3204
DtMode4StateRepository * myMode4
Definition: iffStateRepository.h:556
DtMode3CStateRepository * myMode3C
Definition: iffStateRepository.h:555
bool myTestModeIsOn
System Type (enum U16)
Definition: iffStateRepository.h:500
DtMode4StateRepository * myOwnedMode4StateRepository
Definition: iffStateRepository.h:569
Contains the DtEventId class declaration.
Definition: iffDatatypes.h:3309
bool mySystemIsOperational
Definition: iffStateRepository.h:523
DtIffAtcNavaidsSysType myType
System Type (enum U16)
Definition: iffStateRepository.h:492
virtual void printDataToStream(std::ostream &stream) const
Print state data to the specified stream.
Instances of DtMode3AStateRepository are used to store state data for IFFData.Mode3A objects...
Definition: iffMode3AStateRepository.h:29
int myLayer3NumIffRecords
Layer 3 (Mode 5)
Definition: iffStateRepository.h:595
bool myLayer2DataAvailable
Definition: iffStateRepository.h:524
bool mySystemIsOn
System Type (enum U16)
Definition: iffStateRepository.h:497
int myNumParamSets
Definition: iffStateRepository.h:537
DtMode3AStateRepository * myOwnedMode3AStateRepository
Definition: iffStateRepository.h:567
bool myUnmannedAircraftOn
Definition: iffStateRepository.h:584
DtModeType
IFF/ATC/NAVAIDS PDU enums.
Definition: disEnums.h:2088

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)