VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
natoIffTransponderEncoder.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
7 
8 #if DtHLA
9 
10 #ifndef DtNatoIffTransponderEncoder_H_
11 #define DtNatoIffTransponderEncoder_H_
12 
13 #include "natoIffEncoder.h"
14 
18 
19 #define DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(attrName) \
20  DtDECLARE_ATTR_CHECKER(DtIffStateRepository, attrName)
21 
22 #define DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(attrName) \
23  DtDECLARE_ATTR_ENCODER(DtIffStateRepository, attrName)
24 
25 #define DtDEFINE_SIMPLE_NATO_IFF_XPONDER_ATTR_CHECKER( \
26  attrName, inspector) \
27  DtDEFINE_SIMPLE_ATTR_CHECKER(DtNatoIffTransponderEncoder, \
28  DtIffStateRepository, attrName, inspector)
29 
30 #define DtDEFINE_SIMPLE_NATO_IFF_XPONDER_ATTR_ENCODER( \
31  attrName, netType, inspector) \
32  DtDEFINE_SIMPLE_ATTR_ENCODER(DtNatoIffTransponderEncoder, \
33  DtIffStateRepository, attrName, netType, inspector)
34 
35 #define DtDEFINE_SIMPLE_NATO_IFF_XPONDER_ATTR_CHECKER_WITH_PARAM( \
36  attrName, mutator, param) \
37  DtDEFINE_SIMPLE_IFF_ATTR_CHECKER_WITH_PARAM ( \
38  DtNatoIffTransponderEncoder, attrName, mutator, param)
39 
40 #define DtDEFINE_SIMPLE_NATO_IFF_XPONDER_ATTR_ENCODER_WITH_PARAM( \
41  attrName, netType, mutator, param) \
42  DtDEFINE_SIMPLE_IFF_ATTR_ENCODER_WITH_PARAM ( \
43  DtNatoIffTransponderEncoder, attrName, netType, mutator, param)
44 
49 #define DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER(attrName) \
50  DtDECLARE_ATTR_CHECKER(DtIffStateRepository, attrName)
51 
52 #define DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER(attrName) \
53  DtDECLARE_ATTR_ENCODER(DtIffStateRepository, attrName)
54 
55 #define DtDEFINE_SIMPLE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER( \
56  attrName, inspector) \
57  DtDEFINE_SIMPLE_MODE3C_ATTR_CHECKER(DtNatoIffTransponderEncoder, \
58  DtIffStateRepository, attrName, inspector)
59 
60 #define DtDEFINE_SIMPLE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER( \
61  attrName, netType, inspector) \
62  DtDEFINE_SIMPLE_MODE3C_ATTR_ENCODER(DtNatoIffTransponderEncoder, \
63  DtIffStateRepository, attrName, netType, inspector)
64 
65 #define DtDEFINE_SIMPLE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER_WITH_PARAM( \
66  attrName, mutator, param) \
67  DtDEFINE_SIMPLE_IFF_ATTR_CHECKER_WITH_PARAM ( \
68  DtNatoIffTransponderEncoder, DtMode3CStateRepository, attrName, mutator, param)
69 
70 #define DtDEFINE_SIMPLE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER_WITH_PARAM( \
71  attrName, netType, mutator, param) \
72  DtDEFINE_SIMPLE_IFF_ATTR_ENCODER_WITH_PARAM ( \
73  DtNatoIffTransponderEncoder, attrName, netType, mutator, param)
74 
75 
76 #define DtDEFINE_SIMPLE_MODE3C_ATTR_ENCODER(\
77  encClass, stateRepClass, attrName, netType, inspector) \
78  void encClass::encode##attrName(const stateRepClass& rep, \
79  RTI::AttributeHandleValuePairSet* attrs, \
80  RTI::AttributeHandle attrHandle) \
81 { \
82  if (rep.mode3C()) { \
83  netType netVal; \
84  netVal = rep.mode3C()->inspector(); \
85  attrs->add(attrHandle, (char*) &netVal, sizeof(netType)); \
86  } \
87 }
88 
89 
90 #define DtDEFINE_SIMPLE_MODE3C_ATTR_CHECKER( \
91  encClass, stateRepClass, attrName, inspector) \
92 bool encClass::need##attrName(const stateRepClass& stateRep, \
93  const stateRepClass& asSeenByRemote) \
94 { \
95  return (bool) (stateRep.mode3C() && asSeenByRemote.mode3C() && !(stateRep.mode3C()->inspector() == \
96  asSeenByRemote.mode3C()->inspector())); \
97 }
98 
100 /*************************************************/
101 
102 class DT_DLL_VL DtNatoIffTransponderEncoder : public DtNatoIffEncoder
103 {
104 public:
105 
107  DtNatoIffTransponderEncoder(
108  DtExerciseConn* exConn,
109  DtObjClassDesc* classDesc);
110 
112  virtual ~DtNatoIffTransponderEncoder();
113 
115  DtNatoIffTransponderEncoder(
116  const DtNatoIffTransponderEncoder& orig);
117 
119  DtNatoIffTransponderEncoder& operator=(
120  const DtNatoIffTransponderEncoder& orig);
121 
122 public:
123 
124  static DtHlaStateEncoder* create(
125  DtExerciseConn* exConn,
126  DtObjClassDesc* classDesc);
127 
128 protected:
129 
130  DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(EmergencyOn);
131  DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(IdentSquawkFlashOn);
132  DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(Mode1Code);
133  DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(Mode2Code);
134  DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(Mode3Code);
135  DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(Mode3ACode);
136  DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(StiOn);
137 
138  DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(EmergencyOn);
139  DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(IdentSquawkFlashOn);
140  DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(Mode1Code);
141  DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(Mode2Code);
142  DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(Mode3Code);
143  DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(Mode3ACode);
144  DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(StiOn);
145 
147  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER(ModeCAltitude);
148  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER(ModeCAltitudeAvailable);
149  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER(ModeCAltitude);
150  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER(ModeCAltitudeAvailable);
151 
153  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER(Mode5CAltitude);
154  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER(Mode5CAltitudeAvailable);
155  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER(Mode5CAltitude);
156  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER(Mode5CAltitudeAvailable);
157 
159  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER(Altitude);
160  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER(AltitudeAvailable);
161  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER(Altitude);
162  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER(AltitudeAvailable);
163 };
164 
165 #define DtDEFINE_SIMPLE_MAKRPR3_NATO_IFF_XPONDER_ATTR_CHECKER( \
166  attrName, inspector) \
167  DtDEFINE_SIMPLE_ATTR_CHECKER(DtMAKRPR3_NatoIffTransponderEncoder, \
168  DtIffStateRepository, attrName, inspector)
169 
170 #define DtDEFINE_SIMPLE_MAKRPR3_NATO_IFF_XPONDER_ATTR_ENCODER( \
171  attrName, netType, inspector) \
172  DtDEFINE_SIMPLE_ATTR_ENCODER(DtMAKRPR3_NatoIffTransponderEncoder, \
173  DtIffStateRepository, attrName, netType, inspector)
174 
175 class DT_DLL_VL DtMAKRPR3_NatoIffTransponderEncoder : public DtNatoIffTransponderEncoder
176 {
177 public:
178 
180  DtMAKRPR3_NatoIffTransponderEncoder(
181  DtExerciseConn* exConn,
182  DtObjClassDesc* classDesc);
183 
185  virtual ~DtMAKRPR3_NatoIffTransponderEncoder();
186 
188  DtMAKRPR3_NatoIffTransponderEncoder(
189  const DtMAKRPR3_NatoIffTransponderEncoder& orig);
190 
192  DtMAKRPR3_NatoIffTransponderEncoder& operator=(
193  const DtMAKRPR3_NatoIffTransponderEncoder& orig);
194 
195 public:
196 
197  static DtHlaStateEncoder* create(
198  DtExerciseConn* exConn,
199  DtObjClassDesc* classDesc);
200 
201 protected:
202 
203  DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(SystemDesignator);
204  DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(SystemDesignator);
205 
206  DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(UnmannedAircraftOn);
207  DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(UnmannedAircraftOn);
208 };
209 
210 #define DtDEFINE_SIMPLE_MAKRPR3_NATO_IFF_INTERROGATOR_ATTR_CHECKER( \
211  attrName, inspector) \
212  DtDEFINE_SIMPLE_ATTR_CHECKER(DtMAKRPR3_NatoIffInterrogatorEncoder, \
213  DtIffStateRepository, attrName, inspector)
214 
215 #define DtDEFINE_SIMPLE_MAKRPR3_NATO_IFF_INTERROGATOR_ATTR_ENCODER( \
216  attrName, netType, inspector) \
217  DtDEFINE_SIMPLE_ATTR_ENCODER(DtMAKRPR3_NatoIffInterrogatorEncoder, \
218  DtIffStateRepository, attrName, netType, inspector)
219 
220 class DT_DLL_VL DtMAKRPR3_NatoIffInterrogatorEncoder : public DtNatoIffEncoder
221 {
222 public:
223 
225  DtMAKRPR3_NatoIffInterrogatorEncoder(
226  DtExerciseConn* exConn,
227  DtObjClassDesc* classDesc);
228 
230  virtual ~DtMAKRPR3_NatoIffInterrogatorEncoder();
231 
233  DtMAKRPR3_NatoIffInterrogatorEncoder(
234  const DtMAKRPR3_NatoIffInterrogatorEncoder& orig);
235 
237  DtMAKRPR3_NatoIffInterrogatorEncoder& operator=(
238  const DtMAKRPR3_NatoIffInterrogatorEncoder& orig);
239 
240 public:
241 
242  static DtHlaStateEncoder* create(
243  DtExerciseConn* exConn,
244  DtObjClassDesc* classDesc);
245 
246 protected:
247 
248  DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(SystemDesignator);
249  DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(SystemDesignator);
250 };
251 
252 #endif
253 #endif
254 
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 Wed Mar 27 02:04:30 EDT 2024 from SVN revision 264570
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)