VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
aerodromePdu.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #if DtDIS
12 
13 #include <vl/packets/aerodromeP.h>
14 #include <vl/geoReferenceVariant.h>
15 #include <vlutil/vlMachineTypes.h>
16 #include <vl/stateMsg.h>
17 #include <vl/exerciseConn.h>
18 #include <vlutil/vlUuid.h>
19 #include <vl/windStruct.h>
20 #include <vl/precipitationStruct.h>
21 #include <vl/hazeStruct.h>
22 
23 
24 
25 class DtAerodromePdu;
26 
28 typedef void (*DtAerodromePduCb)(DtAerodromePdu* pdu, void* usr);
29 
33 {
34 public:
37  DtAerodromePdu(const DtNetPacket* initial,
38  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
39 
40 
42  virtual ~DtAerodromePdu();
43 
44 private:
46  DtAerodromePdu(const DtAerodromePdu& orig);
47 
50 
51 public:
52 
54  virtual void setVersion(DtU16 val);
56  virtual DtU16 version() const;
57 
59  virtual void setEntityId(const DtEntityIdentifier& val);
60 
61  virtual DtEntityIdentifier entityId() const;
62 
64  virtual void setUniqueId(const DtVrlUuid& val);
65 
67  DtVrlUuid uniqueId() const;
68 
70  virtual void setAirportCode(const DtString& code);
71 
73  virtual const DtString& airportCode() const;
74 
76  virtual void setForceId(DtForceType force);
77 
79  virtual DtForceType forceId() const;
80 
82  virtual void setActive(bool active);
83 
85  virtual bool active() const;
86 
88  virtual void setApronLight(DtU8 lightIntensity);
89 
91  virtual DtU8 apronLight() const;
92 
94  virtual void setApronFloodLight(bool onOff);
95 
97  virtual bool apronFloodLight() const;
98 
100  virtual void setClearanceBarLight(DtU8 lightIntensity);
101 
103  virtual DtU8 clearanceBarLight() const;
104 
106  virtual void setTaxiwayCentreLight(DtU8 lightIntensity);
107 
109  virtual DtU8 taxiwayCentreLight() const;
110 
112  virtual void setTaxiwayEdgeLight(DtU8 lightIntensity);
113 
115  virtual DtU8 taxiwayEdgeLight() const;
116 
118  virtual void setTaxiwayIdentifierMarkerBoardLight(bool onOff);
119 
121  virtual bool taxiwayIdentifierMarkerBoardLight() const;
122 
124  virtual void setUndercarriageInspectionSystemLight(bool onOff);
125 
127  virtual bool undercarriageInspectionSystemLight() const;
128 
130  void printData() const;
131  void printDataToStream(std::ostream& stream) const;
132 
133  // Returns a unique Key for this PDU class to be used with
134  // reflected objects and reflected lists. Because the Entity ID
135  // may not be unique, this should be a combination of the minimal
136  // number of attributes required for uniqueness.
137  DtString uniqueKey() const;
138 public:
139 
142  static DtPdu* create(const DtNetPduHeader *initial,
143  DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER, DtPduFactory* pduFactory = 0);
144 
147  static void addCallback(DtExerciseConn* conn,
148  DtAerodromePduCb cb, void* usr);
149  static void removeCallback(DtExerciseConn* conn,
150  DtAerodromePduCb cb, void* usr);
151 
152 protected:
153 
154  // Returns the number of bytes in the fixed length portion of this PDU
155  // This is the initial size of the PDU before any variabe datums are added
156  virtual unsigned int fixedBytesSize() const;
157  // A pointer to the first byte of variable datums. If there are no variable
158  // datums this points to the first byte out-of-bounds. This address should
159  // only be used if you know the PDU has been resized correctly.
160  virtual char *firstVarDatumStart() const;
162  DtPduKind internalGetPduKind() const {return internalGetPduKindImpl();}
163 
164 protected:
165 
166  // Cached DtStrings to ensure proper buffering
167  mutable DtString myName;
169 };
170 
171 
172 
173 #endif
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
virtual void setVersion(int vers)
Set/Get protocol version from PDU header.
Definition: pdu.h:374
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
static DtPduKind internalGetPduKindImpl()
Definition: aerodromePdu.h:161
Definition: disEnums.h:322
void(* DtAerodromePduCb)(DtAerodromePdu *pdu, void *usr)
DtAerodromePdu callback function signature.
Definition: aerodromePdu.h:28
Definition: pduHeader.h:14
class DtPduFactory:
Definition: pduFactory.h:38
virtual void printDataToStream(std::ostream &stream) const
Instances of DtAerodromePdu are used for DIS network packets which encode the DtAerodromeStateReposit...
Definition: aerodromePdu.h:32
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
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
This file provides protocol to independence DtExerciseConn.
A Universally Unique Identifier DtVrlUuid stores a 16byte encoded UUID string.
Definition: vlUuid.h:28
virtual void printData() const
Print the PDU&#39;s data (not including header).
struct DtBufferPlaceHolder * DtBufferPtr
Definition: vlBaseMsg.h:17
DtForceType
Section 4.
Definition: disEnums.h:199
unsigned short DtU16
A 16 bit unsigned integer value.
Definition: vlMachineTypes.h:140
#define DtUSE_INTERNAL_BUFFER
Definition: vlBaseMsg.h:22
DtString myAirportCode
Definition: aerodromePdu.h:168
DtPduKind
([UID 4]) - PDU Type
Definition: disEnums.h:238
Instances of DtString are used to represent strings.
Definition: vlString.h:29
Instances of DtStateMsg are used to represent state data communicated via the network in a DIS (as op...
Definition: stateMsgDIS.h:21
Contains the DtVrlUuid class declaration/definition.
DtPduKind internalGetPduKind() const
Returns the PDU kind associated with the derived PDU class.
Definition: aerodromePdu.h:162
This file contains typedefs for machine dependant types.
DtString myName
Definition: aerodromePdu.h:167

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)