VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
natoIffTransponderDecoder.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #if DtHLA
7 
8 #ifndef DtNatoIffTransponderDecoder_H_
9 #define DtNatoIffTransponderDecoder_H_
10 
11 #include "natoIffDecoder.h"
12 
16 
17 #define DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(attrName) \
18  DtDECLARE_ATTR_DECODER(DtIffStateRepository, attrName)
19 
20 #define DtDEFINE_SIMPLE_NATO_IFF_XPONDER_ATTR_DECODER( \
21  attrName, netType, inspector) \
22  DtDEFINE_SIMPLE_NATO_IFF_XPONDER_ATTR_DECODER_WITH_CAST( \
23  attrName, netType, inspector, (netType))
24 
25 #define DtDEFINE_SIMPLE_NATO_IFF_XPONDER_ATTR_DECODER_WITH_CAST( \
26  attrName, netType, mutator, castExpr) \
27  DtDEFINE_SIMPLE_ATTR_DECODER_WITH_CAST( \
28  DtNatoIffTransponderDecoder, DtIffStateRepository, \
29  attrName, netType, mutator, castExpr)
30 
31 #define DtDEFINE_SIMPLE_NATO_IFF_XPONDER_ATTR_DECODER_WITH_CAST_AND_PARAM( \
32  attrName, netType, mutator, param, castExpr) \
33  DtDEFINE_SIMPLE_IFF_ATTR_DECODER_WITH_CAST_AND_PARAM ( \
34  DtNatoIffTransponderDecoder, attrName, netType, mutator, param, castExpr)
35 
40 
41 #define DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER(attrName) \
42  DtDECLARE_ATTR_DECODER(DtIffStateRepository, attrName)
43 
44 #define DtDEFINE_SIMPLE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER( \
45  attrName, netType, inspector) \
46  DtDEFINE_SIMPLE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER_WITH_CAST( \
47  attrName, netType, inspector, (netType))
48 
49 #define DtDEFINE_SIMPLE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER_WITH_CAST( \
50  attrName, netType, mutator, castExpr) \
51  DtDEFINE_SIMPLE_MODE3C_ATTR_DECODER_WITH_CAST( \
52  DtNatoIffTransponderDecoder, DtIffStateRepository, \
53  attrName, netType, mutator, castExpr)
54 
55 #define DtDEFINE_SIMPLE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER_WITH_CAST_AND_PARAM( \
56  attrName, netType, mutator, param, castExpr) \
57  DtDEFINE_SIMPLE_IFF_ATTR_DECODER_WITH_CAST_AND_PARAM ( \
58  DtNatoIffTransponderDecoder, attrName, netType, mutator, param, castExpr)
59 
60 #define DtDEFINE_SIMPLE_MODE3C_ATTR_DECODER_WITH_CAST( \
61  decClass, stateRepClass, attrName, netType, mutator, castExpr) \
62 void decClass::decode##attrName( \
63  stateRepClass* stateRep, \
64  const RTI::AttributeHandleValuePairSet& attrs, \
65  int index) \
66 { \
67  if (stateRep->mode3C()) { \
68  RTI::ULong length = 0; \
69  netType* netValPtr = (netType*)attributeData(attrs, index, length, sizeof(netType), #attrName); \
70  if (netValPtr) \
71  { \
72  stateRep->mode3C()->mutator(castExpr *netValPtr); \
73  } \
74  } \
75 }
76 
78 /*************************************************/
79 
80 class DT_DLL_VL DtNatoIffTransponderDecoder : public DtNatoIffDecoder
81 {
82 public:
83 
85  DtNatoIffTransponderDecoder(
86  DtExerciseConn* exConn,
87  DtObjClassDesc* classDesc);
88 
90  virtual ~DtNatoIffTransponderDecoder();
91 
93  DtNatoIffTransponderDecoder(
94  const DtNatoIffTransponderDecoder& orig);
95 
97  DtNatoIffTransponderDecoder& operator=(
98  const DtNatoIffTransponderDecoder& orig);
99 
100 public:
101 
102  static DtHlaStateDecoder* create(
103  DtExerciseConn* exConn,
104  DtObjClassDesc* classDesc);
105 
106 protected:
107 
108  DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(EmergencyOn);
109  DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(IdentSquawkFlashOn);
110  DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(Mode1Code);
111  DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(Mode2Code);
112  DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(Mode3Code);
113  DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(Mode3ACode);
114 
116  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER(ModeCAltitude);
117  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER(ModeCAltitudeAvailable);
118  DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(StiOn);
119 
121  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER(Mode5CAltitude);
122  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER(Mode5CAltitudeAvailable);
123 
125  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER(Altitude);
126  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER(AltitudeAvailable);
127 };
128 
129 #define DtDEFINE_SIMPLE_MAKRPR3_NATO_IFF_XPONDER_ATTR_DECODER_WITH_CAST( \
130  attrName, netType, mutator, castExpr) \
131  DtDEFINE_SIMPLE_ATTR_DECODER_WITH_CAST( \
132  DtMAKRPR3_NatoIffTransponderDecoder, DtIffStateRepository, \
133  attrName, netType, mutator, castExpr)
134 
135 #define DtDEFINE_SIMPLE_MAKRPR3_NATO_IFF_XPONDER_ATTR_DECODER( \
136  attrName, netType, inspector) \
137  DtDEFINE_SIMPLE_MAKRPR3_NATO_IFF_XPONDER_ATTR_DECODER_WITH_CAST( \
138  attrName, netType, inspector, (netType))
139 
140 class DT_DLL_VL DtMAKRPR3_NatoIffTransponderDecoder : public DtNatoIffTransponderDecoder
141 {
142 public:
143 
145  DtMAKRPR3_NatoIffTransponderDecoder(
146  DtExerciseConn* exConn,
147  DtObjClassDesc* classDesc);
148 
150  virtual ~DtMAKRPR3_NatoIffTransponderDecoder();
151 
153  DtMAKRPR3_NatoIffTransponderDecoder(
154  const DtMAKRPR3_NatoIffTransponderDecoder& orig);
155 
157  DtMAKRPR3_NatoIffTransponderDecoder& operator=(
158  const DtMAKRPR3_NatoIffTransponderDecoder& orig);
159 
160 public:
161 
162  static DtHlaStateDecoder* create(
163  DtExerciseConn* exConn,
164  DtObjClassDesc* classDesc);
165 
166 protected:
167 
169  DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(SystemDesignator);
170  DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(UnmannedAircraftOn);
171 };
172 
173 #define DtDEFINE_SIMPLE_MAKRPR3_NATO_IFF_INTERROGATOR_ATTR_DECODER_WITH_CAST( \
174  attrName, netType, mutator, castExpr) \
175  DtDEFINE_SIMPLE_ATTR_DECODER_WITH_CAST( \
176  DtMAKRPR3_NatoIffInterrogatorDecoder, DtIffStateRepository, \
177  attrName, netType, mutator, castExpr)
178 
179 #define DtDEFINE_SIMPLE_MAKRPR3_NATO_IFF_INTERROGATOR_ATTR_DECODER( \
180  attrName, netType, inspector) \
181  DtDEFINE_SIMPLE_MAKRPR3_NATO_IFF_INTERROGATOR_ATTR_DECODER_WITH_CAST( \
182  attrName, netType, inspector, (netType))
183 
184 class DT_DLL_VL DtMAKRPR3_NatoIffInterrogatorDecoder : public DtNatoIffDecoder
185 {
186 public:
187 
189  DtMAKRPR3_NatoIffInterrogatorDecoder(
190  DtExerciseConn* exConn,
191  DtObjClassDesc* classDesc);
192 
194  virtual ~DtMAKRPR3_NatoIffInterrogatorDecoder();
195 
197  DtMAKRPR3_NatoIffInterrogatorDecoder(
198  const DtMAKRPR3_NatoIffInterrogatorDecoder& orig);
199 
201  DtMAKRPR3_NatoIffInterrogatorDecoder& operator=(
202  const DtMAKRPR3_NatoIffInterrogatorDecoder& orig);
203 
204 public:
205 
206  static DtHlaStateDecoder* create(
207  DtExerciseConn* exConn,
208  DtObjClassDesc* classDesc);
209 
210 protected:
211 
213  DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(SystemDesignator);
214 };
215 
216 #endif
217 #endif
218 
Instances of DtExerciseConn are used to provide an application's interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Instances of DtMode3CStateRepository are used to store state data for IFFData.ModeC objects...
Definition: iffMode3CStateRepository.h:28

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)