open-dis-cpp
IFFPdu.h
1 #pragma once
2 
3 #include <dis7/EntityID.h>
4 #include <dis7/EventIdentifier.h>
5 #include <dis7/SystemIdentifier.h>
6 #include <dis7/FundamentalOperationalData.h>
7 #include <dis7/LayerHeader.h>
8 #include <dis7/BeamData.h>
9 #include <dis7/SecondaryOperationalData.h>
10 #include <dis7/IFFFundamentalParameterData.h>
11 #include <dis7/Vector3Float.h>
12 #include <dis7/DistributedEmissionsFamilyPdu.h>
13 #include <vector>
14 #include <dis7/utils/DataStream.h>
15 #include <dis7/opendis7_export.h>
16 
17 
18 namespace DIS
19 {
20 //This PDU is written according SISO Standard, the link is on below:
21 //https://www.sisostds.org/DesktopModules/Bring2mind/DMX/API/Entries/Download?Command=Core_Download&EntryId=36292&PortalId=0&TabId=105
22 //Another good document for DIS v6 and v7 is:
23 //https://www.sisostds.org/DesktopModules/Bring2mind/DMX/API/Entries/Download?Command=Core_Download&EntryId=29289&PortalId=0&TabId=105
24 
25 // @author semihkurt , 09/04/2021
26 
27 class OPENDIS7_EXPORT IFFPdu : public DistributedEmissionsFamilyPdu
28 {
29 protected:
32 
35 
36  Vector3Float _relativeAntennaLocation;
37 
39  unsigned int _numberOfIFFParameters;
40 
41  SystemIdentifier _systemID;
42 
43  unsigned char _systemDesignator;
44 
45  unsigned char _systemSpecificData;
46 
47  FundamentalOperationalData _fundamentalOperationalData;
48 
49  LayerHeader _layerHeader;
50 
51  BeamData _beamData;
52 
53  SecondaryOperationalData _secondaryOperationalData;
54 
55  std::vector<IFFFundamentalParameterData> _iffParameters;
56 
57  public:
58  IFFPdu();
59  virtual ~IFFPdu();
60 
61  virtual void marshal(DataStream& dataStream) const;
62  virtual void unmarshal(DataStream& dataStream);
63 
64  EntityID& getEmittingEntityID();
65  const EntityID& getEmittingEntityID() const;
66  void setEmittingEntityID(const EntityID &pX);
67 
68  EventIdentifier& getEventID();
69  const EventIdentifier& getEventID() const;
70  void setEventID(const EventIdentifier &pX);
71 
72  Vector3Float& getRelativeAntennaLocation();
73  const Vector3Float& getRelativeAntennaLocation() const;
74  void setRelativeAntennaLocation(const Vector3Float &pX);
75 
76  unsigned int getNumberOfIFFParameters() const;
77 
78  SystemIdentifier& getSystemID();
79  const SystemIdentifier& getSystemID() const;
80  void setSystemID(const SystemIdentifier &pX);
81 
82  unsigned char getSystemDesignator() const;
83  void setSystemDesignator(unsigned char pX);
84 
85  unsigned char getSystemSpecificData() const;
86  void setSystemSpecificData(unsigned char pX);
87 
88  FundamentalOperationalData& getFundamentalOperationalData();
89  const FundamentalOperationalData& getFundamentalOperationalData() const;
90  void setFundamentalOperationalData(const FundamentalOperationalData &pX);
91 
92  LayerHeader& getLayerHeader();
93  const LayerHeader& getLayerHeader() const;
94  void setLayerHeader(const LayerHeader &pX);
95 
96  BeamData& getBeamData();
97  const BeamData& getBeamData() const;
98  void setBeamData(const BeamData &pX);
99 
100  SecondaryOperationalData& getSecondaryOperationalData();
101  const SecondaryOperationalData& getSecondaryOperationalData() const;
102  void setSecondaryOperationalData(const SecondaryOperationalData &pX);
103 
104  std::vector<IFFFundamentalParameterData>& getIFFParameters();
105  const std::vector<IFFFundamentalParameterData>& getIFFParameters() const;
106  void setIFFParameters(const std::vector<IFFFundamentalParameterData>& pX);
107 
108 virtual int getMarshalledSize() const;
109 
110  bool operator ==(const IFFPdu& rhs) const;
111 };
112 }
113 
Symbolic names as defined in 5.1.4.
Definition: AcknowledgePdu.h:8
Definition: LayerHeader.h:15
unsigned int _numberOfIFFParameters
How many iff parameters are in the variable length list.
Definition: IFFPdu.h:39
Definition: BeamData.h:15
a class to support managing a network buffer.
Definition: DataStream.h:28
Definition: FundamentalOperationalData.h:15
EntityID _emittingEntityID
ID of the entity emitting.
Definition: IFFPdu.h:31
Definition: Vector3Float.h:15
Definition: EntityID.h:15
Definition: SecondaryOperationalData.h:15
EventIdentifier _eventID
ID of event.
Definition: IFFPdu.h:34
Definition: SystemIdentifier.h:15
Definition: EventIdentifier.h:16
Definition: DistributedEmissionsFamilyPdu.h:16
Definition: IFFPdu.h:27