VR-Link API Documentation for HLA 1.3
 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-2010 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 
81 {
82 public:
83 
86  DtExerciseConn* exConn,
87  DtObjClassDesc* classDesc);
88 
90  virtual ~DtNatoIffTransponderDecoder();
91 
94  const DtNatoIffTransponderDecoder& orig);
95 
98  const DtNatoIffTransponderDecoder& orig);
99 
100 public:
101 
102  static DtHlaStateDecoder* create(
103  DtExerciseConn* exConn,
104  DtObjClassDesc* classDesc);
105 
106 protected:
107 
109  DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(IdentSquawkFlashOn);
114 
117  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER(ModeCAltitudeAvailable);
119 
122  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER(Mode5CAltitudeAvailable);
123 
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 
141 {
142 public:
143 
146  DtExerciseConn* exConn,
147  DtObjClassDesc* classDesc);
148 
151 
155 
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 
185 {
186 public:
187 
190  DtExerciseConn* exConn,
191  DtObjClassDesc* classDesc);
192 
195 
199 
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: exerciseConnHLA.h:61
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
Definition: natoIffTransponderDecoder.h:140
#define DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(attrName)
Definition: natoIffTransponderDecoder.h:17
DtNatoIffDecoder & operator=(const DtNatoIffDecoder &orig)
assignment operator
Mode C Specific Attribute Decoder Macros.
Definition: natoIffTransponderDecoder.h:80
Definition: natoIffTransponderDecoder.h:184
An instance of DtObjClassDesc is a "class descriptor" for an HLA Object class.
Definition: objClassDesc13.h:41
#define DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_DECODER(attrName)
Definition: natoIffTransponderDecoder.h:41
static DtHlaStateDecoder * create(DtExerciseConn *exConn, DtObjClassDesc *classDesc)
DtNatoIffTransponderDecoder & operator=(const DtNatoIffTransponderDecoder &orig)
assignment operator
DtHlaStateDecoder is used to provide decoding of a state message into a state repository in an HLA (a...
Definition: hlaStateDecoder.h:34
Instances of DtMode3CStateRepository are used to store state data for IFFData.ModeC objects...
Definition: iffMode3CStateRepository.h:28
Mode TCAS Specific Attribute Decoder Macros.
Definition: natoIffDecoder.h:177
DtDECLARE_NATO_IFF_XPONDER_ATTR_DECODER(EmergencyOn)
This file provides a declaration of the class DtNatoIffDecoder.
static DtHlaStateDecoder * create(DtExerciseConn *exConn, DtObjClassDesc *classDesc)

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)