VR-Exchange 2.10 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
pIffObject.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2016 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <portal/pEmbeddedSystem.h>
13 //#include <portal/pIffDataTypes.h>
14 
15 //#include <vl/iffDatatypes.h>
16 //#include <vl/iffAtcNavaidsVariableRecord.h>
17 
18 namespace MAKVrExchange
19 {
20 
24  {
25  public:
26 
29 
31  DtPortalIffObject( const DtPortalIffObject& original );
32 
34  virtual ~DtPortalIffObject();
35 
37  DtPortalIffObject& operator = ( const DtPortalIffObject& original );
38 
41 
42  int operator == ( const DtPortalIffObject& rightOperand );
43  int operator != ( const DtPortalIffObject& rightOperand );
44 
46 
49  // Trying to keep these in the same order as they're listed in iffStateRepository.h -KF
50 
51 // IFF SYSTEM ATTRIBUTES
53  DtDEC_ATTRIBUTE( DtU8, SystemType, systemType );
54 
56  DtDEC_ATTRIBUTE( DtU32, SystemName, systemName );
57 
60  DtDEC_ATTRIBUTE( DtU8, SystemDesignator, systemDesignator );
61 
63  DtDEC_ATTRIBUTE( bool, InteractiveModeIsActive, interactiveModeIsActive );
64 
66  DtDEC_ATTRIBUTE( DtU16, EventNumber, eventNumber );
67 
69  DtDEC_ATTRIBUTE( DtString, EventIssuingObjectIdentifier, eventIssuingObjectIdentifier );
70 
72  DtDEC_ATTRIBUTE( DtU8, SystemMode, systemMode );
73 
75  DtDEC_ATTRIBUTE( DtU8, OperationalStatus, operationalStatus );
76 
78  DtDEC_ATTRIBUTE( bool, TestModeIsOn, testModeIsOn );
79 
84  DtDEC_ATTRIBUTE( bool, EmissionsDataAvailable, emissionsDataAvailable );
85 
86 // IFF SYSTEM ATTRIBUTES
87 
88 // LAYER 1 FIELDS
90  DtDEC_ATTRIBUTE( bool, SystemIsOn, systemIsOn );
91 
93  DtDEC_ATTRIBUTE( bool, StiOn, stiOn );
94 
96  DtDEC_ATTRIBUTE( bool, FundamentalOpDataParam1, fundamentalOpDataParam1 );
97 
99  DtDEC_ATTRIBUTE( bool, FundamentalOpDataParam2, fundamentalOpDataParam2 );
100 
102  DtDEC_ATTRIBUTE( bool, FundamentalOpDataParam3, fundamentalOpDataParam3 );
103 
105  DtDEC_ATTRIBUTE( bool, FundamentalOpDataParam4, fundamentalOpDataParam4 );
106 
108  DtDEC_ATTRIBUTE( bool, FundamentalOpDataParam5, fundamentalOpDataParam5 );
109 
111  DtDEC_ATTRIBUTE( bool, FundamentalOpDataParam6, fundamentalOpDataParam6 );
112 
113 // LAYER 1 FIELDS
114 
115 // IFF System Transponder Attributes
117  DtDEC_ATTRIBUTE( bool, EmergencyOn, emergencyOn );
118 
122  DtDEC_ATTRIBUTE( bool, IdentSquawkFlashOn, identSquawkFlashOn );
123 
125  DtDEC_ATTRIBUTE( bool, UnmannedAircraftOn, unmannedAircraftOn );
126 // IFF System Transponder Attributes
127 
128 // Modified in RPR 3.0
130  DtDEC_ATTRIBUTE( bool, SystemIsOperational, systemIsOperational );
131 
132 // LAYER 2 FIELDS
137  DtDEC_ATTRIBUTE( bool, Layer2DataAvailable, layer2DataAvailable );
138 
141  DtDEC_ATTRIBUTE( DtFloat32, BeamAzimuthCenter, beamAzimuthCenter );
142 
145  DtDEC_ATTRIBUTE( DtFloat32, BeamAzimuthSweep, beamAzimuthSweep );
146 
149  DtDEC_ATTRIBUTE( DtFloat32, BeamElevationCenter, beamElevationCenter );
150 
153  DtDEC_ATTRIBUTE( DtFloat32, BeamElevationSweep, beamElevationSweep );
154 
156  DtDEC_ATTRIBUTE( DtFloat32, BeamSweepSync, beamSweepSync );
157 
159  DtDEC_ATTRIBUTE( DtAttributeValuePairList, FundamentalParameterData, fundamentalParameterData );
160 
162  DtDEC_ATTRIBUTE( DtU32, SecondaryOperationalDataParameter1, secondaryOperationalDataParameter1 );
163 
165  DtDEC_ATTRIBUTE( DtU32, SecondaryOperationalDataParameter2, secondaryOperationalDataParameter2 );
166 // LAYER 2 FIELDS
167 
168 
169  // Mode 1
170  DtDEC_ATTRIBUTE( bool, Mode1Enabled, mode1Enabled );
171  DtDEC_ATTRIBUTE( DtU16, Mode1Code, mode1Code );
172  DtDEC_ATTRIBUTE( bool, Mode1IsOn, mode1IsOn );
173  DtDEC_ATTRIBUTE( bool, Mode1IsDamaged, mode1IsDamaged );
174  DtDEC_ATTRIBUTE( bool, Mode1IsMalfunctioning, mode1IsMalfunctioning );
175 
176  // Mode 2
177  DtDEC_ATTRIBUTE( bool, Mode2Enabled, mode2Enabled );
178  DtDEC_ATTRIBUTE( DtU16, Mode2Code, mode2Code );
179  DtDEC_ATTRIBUTE( bool, Mode2IsOn, mode2IsOn );
180  DtDEC_ATTRIBUTE( bool, Mode2IsDamaged, mode2IsDamaged );
181  DtDEC_ATTRIBUTE( bool, Mode2IsMalfunctioning, mode2IsMalfunctioning );
182 
183  // Mode 3A
184  DtDEC_ATTRIBUTE( bool, Mode3AEnabled, mode3AEnabled );
185  DtDEC_ATTRIBUTE( DtU16, Mode3ACode, mode3ACode );
186  DtDEC_ATTRIBUTE( bool, Mode3AIsOn, mode3AIsOn );
187  DtDEC_ATTRIBUTE( bool, Mode3AIsDamaged, mode3AIsDamaged );
188  DtDEC_ATTRIBUTE( bool, Mode3AIsMalfunctioning, mode3AIsMalfunctioning );
189 
190  // Mode 3C
191  DtDEC_ATTRIBUTE( bool, Mode3CEnabled, mode3CEnabled );;
192  DtDEC_ATTRIBUTE( DtU16, Mode3CCode, mode3CCode );
193  DtDEC_ATTRIBUTE( bool, Mode3CIsOn, mode3CIsOn );
194  DtDEC_ATTRIBUTE( bool, Mode3CIsDamaged, mode3CIsDamaged );
195  DtDEC_ATTRIBUTE( bool, Mode3CIsMalfunctioning, mode3CIsMalfunctioning );
196  DtDEC_ATTRIBUTE( bool, Mode3CAltitudeAvailable, mode3CAltitudeAvailable );
197  DtDEC_ATTRIBUTE( DtInt16, Mode3CAltitude, mode3CAltitude );
198 
199  // Mode 4
200  DtDEC_ATTRIBUTE( bool, Mode4Enabled, mode4Enabled );
201  DtDEC_ATTRIBUTE( bool, Mode4IsOn, mode4IsOn );
202  DtDEC_ATTRIBUTE( bool, Mode4IsDamaged, mode4IsDamaged );
203  DtDEC_ATTRIBUTE( bool, Mode4IsMalfunctioning, mode4IsMalfunctioning );
204  DtDEC_ATTRIBUTE( DtIffAtcNavaidsAltParm4, AlternateMode4, alternateMode4 );
205  DtDEC_ATTRIBUTE( bool, Mode4PseudoCryptoAvailable, mode4PseudoCryptoAvailable );
206  DtDEC_ATTRIBUTE( DtU16, Mode4PseudoCrypto, mode4PseudoCrypto );
207 
208 
209  // Mode 5
210  DtDEC_ATTRIBUTE( bool, Mode5Enabled, mode5Enabled );
211  DtDEC_ATTRIBUTE( bool, Mode5IsOn, mode5IsOn );
212  DtDEC_ATTRIBUTE( bool, Mode5IsDamaged, mode5IsDamaged );
213  DtDEC_ATTRIBUTE( bool, Mode5IsMalfunctioning, mode5IsMalfunctioning );
214 
215  // Mode 5 specific attributes in DtIffMode5StateRepository
216  DtDEC_ATTRIBUTE( bool, PseudoCryptoCodeAvailable, pseudoCryptoCodeAvailable );
217  DtDEC_ATTRIBUTE( DtU16, PseudoCryptoCode, pseudoCryptoCode );
218  DtDEC_ATTRIBUTE( DtU8, Mode5SpecificInformation, mode5SpecificInformation );
219  DtDEC_ATTRIBUTE( DtU8, Mission, mission );
220  // DtDEC_ATTRIBUTE( DtString, MessageFormatsCapable, messageFormatsCapable );
221  //DtDEC_ATTRIBUTE( DtIFFDataVariantStructArray, Mode5IffData, mode5IffData );
222 
223  // Mode 5 Transponder specific members
224  DtDEC_ATTRIBUTE( DtU8, PlatformType, platformType );
225  DtDEC_ATTRIBUTE( DtU16, NationalOrigin, nationalOrigin );
226  DtDEC_ATTRIBUTE( DtU16, PlatformIdentificationNumber, platformIdentificationNumber );
227  DtDEC_ATTRIBUTE( DtU8, AntennaSelection, antennaSelection );
228  DtDEC_ATTRIBUTE( DtU8, LevelSelection, levelSelection );
229  DtDEC_ATTRIBUTE( bool, Mode5SquitterIsOn, mode5SquitterIsOn );
230  DtDEC_ATTRIBUTE( DtU8, Level2SquitterStatus, level2SquitterStatus );
231  DtDEC_ATTRIBUTE( bool, LineTestIsEnabled, lineTestIsEnabled );
232  DtDEC_ATTRIBUTE( DtU8, Reply, reply );
233  DtDEC_ATTRIBUTE( DtU8, FigureOfMerit, figureOfMerit );
234  DtDEC_ATTRIBUTE( DtU8, NavigationSource, navigationSource );
235  DtDEC_ATTRIBUTE( bool, CryptoControlDataIsPresent, cryptoControlDataIsPresent );
236  DtDEC_ATTRIBUTE( bool, LocationDataIsPresent, locationDataIsPresent );
237  DtDEC_ATTRIBUTE( bool, Mode5LocationErrorDataIsPresent, mode5LocationErrorDataIsPresent );
238 
239  // Mode 5 DIS Layer 3 Attributes
240  DtDEC_ATTRIBUTE( DtU32, MessageFormatsPresent, messageFormatsPresent );
241  DtDEC_ATTRIBUTE( DtU8, Mode5InterrogatorStatus, mode5InterrogatorStatus );
242  DtDEC_ATTRIBUTE( DtU8, MessageFormatsStatus, messageFormatsStatus );
243  // TO-DO: implement variable records for Layer 3
244  // DtDEC_ATTRIBUTE( int, Layer3NumIffRecords, layer3NumIffRecords );*/
245  // DtDEC_ATTRIBUTE( std::vector<DtIffAtcNavaidsVariableRecord*>, Layer3IffRecords, layer3IffRecords );
246 
247  // Mode 5 Layer 3 Interrogator
248  DtDEC_ATTRIBUTE( DtEntityIdentifier, InterrogatedEntityID, interrogatedEntityID );
249 
250  // Mode 5 Layer 3 Transponder
251  DtDEC_ATTRIBUTE( DtU16, EnhancedMode1, enhancedMode1 );
252  DtDEC_ATTRIBUTE( DtU16, Mode5TransponderStatus, mode5TransponderStatus );
253 
254  // Mode S
255  DtDEC_ATTRIBUTE( bool, ModeSEnabled, modeSEnabled );
256  DtDEC_ATTRIBUTE( bool, ModeSIsOn, modeSIsOn );
257  DtDEC_ATTRIBUTE( bool, ModeSIsDamaged, modeSIsDamaged );
258  DtDEC_ATTRIBUTE( bool, ModeSIsMalfunctioning, modeSIsMalfunctioning );
259 
260  // Mode S specific attributes in DtIffModeSStateRepository
261  DtDEC_ATTRIBUTE( DtU8, ModeSSpecificInformation, modeSSpecificInformation );
262  DtDEC_ATTRIBUTE( DtString, LevelsPresent, levelsPresent );
263  //DtDEC_ATTRIBUTE( DtIFFDataVariantStructArray, ModeSIffData, modeSIffData );
264 
265  // Interrogator-Specific Attributes
266  //DtDEC_ATTRIBUTE( DtModeSInterrogatorIdentifierStruct, InterrogatorIdentifier, interrogatorIdentifier );
267  DtDEC_ATTRIBUTE( DtU8, TransmitState, transmitState );
268 
269  // Transponder-Specific Attributes
270  DtDEC_ATTRIBUTE( DtU32, AircraftAddress, aircraftAddress );
271  DtDEC_ATTRIBUTE( DtU8, AircraftIdentificationType, aircraftIdentificationType );
272  DtDEC_ATTRIBUTE( DtString, AircraftIdentification, aircraftIdentification );
273  DtDEC_ATTRIBUTE( bool, ModeSSquitterIsOn, modeSSquitterIsOn );
274  DtDEC_ATTRIBUTE( DtU8, ModeSSquitterType, modeSSquitterType );
275  DtDEC_ATTRIBUTE( DtU8, CapabilityReport, capabilityReport );
276  DtDEC_ATTRIBUTE( DtU8, AircraftPresentDomain, aircraftPresentDomain );
277  DtDEC_ATTRIBUTE( bool, AltitudeAvailable, altitudeAvailable );
278  //DtDEC_ATTRIBUTE( DtTransponderRelativeAltitude11BitVariantStruct, Altitude, altitude );
279  DtDEC_ATTRIBUTE( DtU8, SquitterRecordSource, squitterRecordSource );
280  DtDEC_ATTRIBUTE( bool, AirbornePositionReportDataIsPresent, airbornePositionReportDataIsPresent );
281  DtDEC_ATTRIBUTE( bool, AirborneVelocityReportDataIsPresent, airborneVelocityReportDataIsPresent );
282  DtDEC_ATTRIBUTE( bool, SurfacePositionReportDataIsPresent, surfacePositionReportDataIsPresent );
283  DtDEC_ATTRIBUTE( bool, IdentificationReportDataIsPresent, identificationReportDataIsPresent );
284  DtDEC_ATTRIBUTE( bool, EventDrivenReportDataIsPresent, eventDrivenReportDataIsPresent );
285  //DtDEC_ATTRIBUTE( DtModeSDAPSourceStruct, DAPSource, dapSource );
286  DtDEC_ATTRIBUTE( bool, ModeSLocationErrorDataIsPresent, modeSLocationErrorDataIsPresent );
287 
288  //DIS ONLY
290  DtDEC_ATTRIBUTE( DtU16, ModeSTransponderStatus, modeSTransponderStatus );
292  DtDEC_ATTRIBUTE( DtU8, ModeSInterrogatorStatus, modeSInterrogatorStatus );
293 
294 
295  // TCAS
296  DtDEC_ATTRIBUTE( bool, TcasEnabled, tcasEnabled );
297  DtDEC_ATTRIBUTE( bool, TcasIsOn, tcasIsOn );
298  DtDEC_ATTRIBUTE( bool, TcasIsDamaged, tcasIsDamaged );
299  DtDEC_ATTRIBUTE( bool, TcasIsMalfunctioning, tcasIsMalfunctioning );
300 
301 
303 
304  //NOTE: DtDEC_ATTRIBUTE resets the access specifier to protected.
305  public:
306 
308 
309  static DtPortalMessage* create();
310 
311  virtual unsigned int netSize() const;
312  virtual void writeSelfToBuffer( void* buffer, int bufferSize ) const;
313  virtual void readSelfFromBuffer( const void* buffer, int bufferSize );
314 
315  virtual std::ostream& printDataToStream( std::ostream& stream ) const;
316 
317  };
318 
319 
321  {
322  return new DtPortalIffObject();
323  }
324 
325 }
#define DT_DLL_LIBPORTAL
Definition: include/portal/dllExport.h:20
#define DtDEC_ATTRIBUTE(T, N, n)
A Macro to define an attribute; as well as make an accessor and mutator for that attribute.
Definition: addAttribute.h:49
The base class for all messages passed through the portal.
Definition: pMessage.h:67
Contains the DtPortalEmbeddedSystem class declaration.
Portal IFF Object class.
Definition: pIffObject.h:23
std::list< DtAttributeValuePair > DtAttributeValuePairList
A list of DtAttributeValuePairs.
Definition: variableLengthData.h:79
DtPortalMessageKind
A List of message kinds distributed with the Portal.
Definition: pMessageKinds.h:23
Represents Embedded System Objects in a simulation.
Definition: pEmbeddedSystem.h:21
static const DtPortalMessageKind theKind
Definition: pIffObject.h:307
static DtPortalMessage * create()
Definition: pIffObject.h:320

Document ID: Generated on Mon May 25 18:45:12 EDT 2026 from SVN revision 289111
Copyright © 2005-2026 MAK Technologies. All Rights Reserved (www.mak.com)