VR-Link API Documentation for HLA 1516
 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 
103 {
104 public:
105 
108  DtExerciseConn* exConn,
109  DtObjClassDesc* classDesc);
110 
112  virtual ~DtNatoIffTransponderEncoder();
113 
116  const DtNatoIffTransponderEncoder& orig);
117 
120  const DtNatoIffTransponderEncoder& orig);
121 
122 public:
123 
124  static DtHlaStateEncoder* create(
125  DtExerciseConn* exConn,
126  DtObjClassDesc* classDesc);
127 
128 protected:
129 
131  DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(IdentSquawkFlashOn);
137 
139  DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(IdentSquawkFlashOn);
145 
148  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER(ModeCAltitudeAvailable);
150  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER(ModeCAltitudeAvailable);
151 
154  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER(Mode5CAltitudeAvailable);
156  DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER(Mode5CAltitudeAvailable);
157 
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 
176 {
177 public:
178 
181  DtExerciseConn* exConn,
182  DtObjClassDesc* classDesc);
183 
186 
190 
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 
221 {
222 public:
223 
226  DtExerciseConn* exConn,
227  DtObjClassDesc* classDesc);
228 
231 
235 
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 
Definition: natoIffTransponderEncoder.h:175
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
static DtHlaStateEncoder * create(DtExerciseConn *exConn, DtObjClassDesc *classDesc)
DtNatoIffTransponderEncoder & operator=(const DtNatoIffTransponderEncoder &orig)
assignment operator
#define DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_ENCODER(attrName)
Definition: natoIffTransponderEncoder.h:52
DtHlaStateEncoder is used to provide encoding of a state repository into a state message in an HLA (a...
Definition: hlaStateEncoder.h:30
An instance of DtObjClassDesc is a "class descriptor" for an HLA Object class.
Definition: objClassDesc1516.h:41
DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(EmergencyOn)
Mode C Specific Attribute Encoder Macros.
Definition: natoIffTransponderEncoder.h:102
static DtHlaStateEncoder * create(DtExerciseConn *exConn, DtObjClassDesc *classDesc)
#define DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(attrName)
Definition: natoIffTransponderEncoder.h:22
DtDECLARE_NATO_IFF_XPONDER_ATTR_ENCODER(EmergencyOn)
Instances of DtMode3CStateRepository are used to store state data for IFFData.ModeC objects...
Definition: iffMode3CStateRepository.h:28
Mode TCAS Specific Attribute Decoder Macros.
Definition: natoIffEncoder.h:256
DtNatoIffEncoder & operator=(const DtNatoIffEncoder &orig)
assignment operator
#define DtDECLARE_NATO_IFF_XPONDER_ATTR_CHECKER(attrName)
Definition: natoIffTransponderEncoder.h:19
This file provides a declaration of the class DtNatoIffEncoder.
Definition: natoIffTransponderEncoder.h:220
#define DtDECLARE_NATO_IFF_MODE3C_XPONDER_ATTR_CHECKER(attrName)
Definition: natoIffTransponderEncoder.h:49

Document ID: Generated on Thu Sep 19 02:12:35 EDT 2024 from SVN revision 269601
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)