FreeWRL / FreeX3D 4.3.0
DIS.c
1#include <stddef.h>
2#include <malloc.h>
3#include <memory.h>
4#include <stdio.h>
5#include <string.h>
6#include "DIS.h"
7#define NULL ((void *)0)
8#define FALSE 0
9#define TRUE 1
10
11enum {
12 UNSET,
13 PRIMITIVE,
14 CLASSREF,
15 FIXED_LIST,
16 VARIABLE_LIST,
17};
18static int TYPE_SIZE [] = {
19 (int)sizeof(unsigned int),
20 (int)sizeof(unsigned char),
21 (int)sizeof(char),
22 (int)sizeof(double),
23 (int)sizeof(short),
24 (int)sizeof(unsigned long long),
25 (int)sizeof(float),
26 (int)sizeof(unsigned short),
27 (int)sizeof(int),
28 (int)sizeof(long long),
29 (int)sizeof(struct SystemID),
30 (int)sizeof(struct RadioEntityType),
31 (int)sizeof(struct LayerHeader),
32 (int)sizeof(struct AcousticEmitterSystem),
33 (int)sizeof(struct FourByteChunk),
34 (int)sizeof(struct Orientation),
35 (int)sizeof(struct OneByteChunk),
36 (int)sizeof(struct EventID),
37 (int)sizeof(struct VectoringNozzleSystemData),
38 (int)sizeof(struct ObjectType),
39 (int)sizeof(struct FundamentalParameterDataIff),
40 (int)sizeof(struct EightByteChunk),
41 (int)sizeof(struct FixedDatum),
42 (int)sizeof(struct GridAxisRecord),
43 (int)sizeof(struct AggregateID),
44 (int)sizeof(struct TwoByteChunk),
45 (int)sizeof(struct ClockTime),
46 (int)sizeof(struct Relationship),
47 (int)sizeof(struct Vector3Float),
48 (int)sizeof(struct ModulationType),
49 (int)sizeof(struct SimulationAddress),
50 (int)sizeof(struct IffFundamentalData),
51 (int)sizeof(struct AggregateType),
52 (int)sizeof(struct BeamData),
53 (int)sizeof(struct NamedLocation),
54 (int)sizeof(struct RecordSet),
55 (int)sizeof(struct SphericalHarmonicAntennaPattern),
56 (int)sizeof(struct ShaftRPMs),
57 (int)sizeof(struct IntercomCommunicationsParameters),
58 (int)sizeof(struct AcousticBeamFundamentalParameter),
59 (int)sizeof(struct EntityType),
60 (int)sizeof(struct FundamentalParameterData),
61 (int)sizeof(struct ApaData),
62 (int)sizeof(struct Environment),
63 (int)sizeof(struct AcousticEmitter),
64 (int)sizeof(struct AngularVelocityVector),
65 (int)sizeof(struct AggregateMarking),
66 (int)sizeof(struct EntityID),
67 (int)sizeof(struct SixByteChunk),
68 (int)sizeof(struct Vector3Double),
69 (int)sizeof(struct Pdu),
70 (int)sizeof(struct VariableDatum),
71 (int)sizeof(struct ArticulationParameter),
72 (int)sizeof(struct Marking),
73 (int)sizeof(struct Point),
74 (int)sizeof(struct PropulsionSystemData),
75 (int)sizeof(struct EmitterSystem),
76 (int)sizeof(struct PduContainer),
77 (int)sizeof(struct ElectronicEmissionBeamData),
78 (int)sizeof(struct LogisticsFamilyPdu),
79 (int)sizeof(struct ServiceRequestPdu),
80 (int)sizeof(struct RepairCompletePdu),
81 (int)sizeof(struct DeadReckoningParameter),
82 (int)sizeof(struct BeamAntennaPattern),
83 (int)sizeof(struct SyntheticEnvironmentFamilyPdu),
84 (int)sizeof(struct AcousticEmitterSystemData),
85 (int)sizeof(struct RepairResponsePdu),
86 (int)sizeof(struct SimulationManagementFamilyPdu),
87 (int)sizeof(struct AntennaLocation),
88 (int)sizeof(struct DataQueryPdu),
89 (int)sizeof(struct BurstDescriptor),
90 (int)sizeof(struct LinearObjectStatePdu),
91 (int)sizeof(struct CreateEntityPdu),
92 (int)sizeof(struct RadioCommunicationsFamilyPdu),
93 (int)sizeof(struct AcousticBeamData),
94 (int)sizeof(struct IntercomSignalPdu),
95 (int)sizeof(struct GridAxisRecordRepresentation2),
96 (int)sizeof(struct LinearSegmentParameter),
97 (int)sizeof(struct GridAxisRecordRepresentation1),
98 (int)sizeof(struct GridAxisRecordRepresentation0),
99 (int)sizeof(struct RemoveEntityPdu),
100 (int)sizeof(struct ResupplyReceivedPdu),
101 (int)sizeof(struct WarfareFamilyPdu),
102 (int)sizeof(struct ElectronicEmissionSystemData),
103 (int)sizeof(struct ActionRequestPdu),
104 (int)sizeof(struct SupplyQuantity),
105 (int)sizeof(struct AcknowledgePdu),
106 (int)sizeof(struct DistributedEmissionsFamilyPdu),
107 (int)sizeof(struct IffAtcNavAidsLayer1Pdu),
109 (int)sizeof(struct ActionRequestReliablePdu),
110 (int)sizeof(struct DesignatorPdu),
111 (int)sizeof(struct GriddedDataPdu),
112 (int)sizeof(struct SetRecordReliablePdu),
113 (int)sizeof(struct StopFreezePdu),
114 (int)sizeof(struct ResupplyCancelPdu),
115 (int)sizeof(struct EntityManagementFamilyPdu),
116 (int)sizeof(struct StartResumePdu),
117 (int)sizeof(struct TransmitterPdu),
118 (int)sizeof(struct TrackJamTarget),
119 (int)sizeof(struct ElectronicEmissionsPdu),
120 (int)sizeof(struct ResupplyOfferPdu),
121 (int)sizeof(struct MinefieldFamilyPdu),
122 (int)sizeof(struct SetDataReliablePdu),
123 (int)sizeof(struct EventReportPdu),
124 (int)sizeof(struct PointObjectStatePdu),
125 (int)sizeof(struct EnvironmentalProcessPdu),
126 (int)sizeof(struct DataPdu),
127 (int)sizeof(struct IsGroupOfPdu),
128 (int)sizeof(struct MinefieldDataPdu),
129 (int)sizeof(struct TransferControlRequestPdu),
130 (int)sizeof(struct EntityInformationFamilyPdu),
131 (int)sizeof(struct AcknowledgeReliablePdu),
132 (int)sizeof(struct StartResumeReliablePdu),
133 (int)sizeof(struct IffAtcNavAidsLayer2Pdu),
134 (int)sizeof(struct ArealObjectStatePdu),
135 (int)sizeof(struct DataQueryReliablePdu),
136 (int)sizeof(struct AggregateStatePdu),
137 (int)sizeof(struct EntityStateUpdatePdu),
138 (int)sizeof(struct MinefieldStatePdu),
139 (int)sizeof(struct DataReliablePdu),
140 (int)sizeof(struct CommentPdu),
141 (int)sizeof(struct CommentReliablePdu),
142 (int)sizeof(struct DetonationPdu),
143 (int)sizeof(struct SetDataPdu),
144 (int)sizeof(struct RecordQueryReliablePdu),
145 (int)sizeof(struct CollisionPdu),
146 (int)sizeof(struct ActionResponsePdu),
147 (int)sizeof(struct FirePdu),
148 (int)sizeof(struct ReceiverPdu),
149 (int)sizeof(struct UaPdu),
150 (int)sizeof(struct IntercomControlPdu),
151 (int)sizeof(struct SignalPdu),
152 (int)sizeof(struct RemoveEntityReliablePdu),
153 (int)sizeof(struct SeesPdu),
154 (int)sizeof(struct CreateEntityReliablePdu),
155 (int)sizeof(struct StopFreezeReliablePdu),
156 (int)sizeof(struct EventReportReliablePdu),
157 (int)sizeof(struct MinefieldResponseNackPdu),
158 (int)sizeof(struct CollisionElasticPdu),
159 (int)sizeof(struct ActionResponseReliablePdu),
160 (int)sizeof(struct IsPartOfPdu),
161 (int)sizeof(struct MinefieldQueryPdu),
162 (int)sizeof(struct EntityStatePdu),
163 (int)sizeof(struct FastEntityStatePdu),
164};
165
167 int kind; //A UNSET
168 int type; //B PT_SHORT, type_...
169 char *name; //C ivar name
170 char *comment; //D
171 int listLength; //E if this is a list, the length (if variable, extracted from other field called countField)
172 char *countfieldname; //F if variable_list, where get the count
173 int countfieldindex; //F2 do I need a numerical offset to variable_list count field?
174 //int isdynamiclistlengthField, //they use it for code generation to tinker with getter/setter
175 int dynamicListClassAttribute; //G the underyling type of the list this counter belongs to
176 double defaultvalue; //H if primitive, default. I put void*, so consistent size for generic value
177 int listkind; //I instead of underlyintTypeIsPrimitive, underlyingTypeIsClass
178 int couldBeString; //J
179 int isBitField; //K
180 //list bitfieldlist
181 //int shouldSerialize - no case of serialize='false' in DIS2012.xml
182 int size; //L in bytes
183 int offset; //M in bytes from start of owning struct
184};
185struct disfieldattr FIELDS_SystemID [] = {
186 {PRIMITIVE, type_USHORT, "systemType", "System Type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SystemID,systemType), },
187 {PRIMITIVE, type_USHORT, "systemName", "System name, an enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SystemID,systemName), },
188 {PRIMITIVE, type_UBYTE, "systemMode", "System mode", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct SystemID,systemMode), },
189 {PRIMITIVE, type_UBYTE, "changeOptions", "Change Options", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct SystemID,changeOptions), },
190 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
191};
192struct disfieldattr FIELDS_RadioEntityType [] = {
193 {PRIMITIVE, type_UBYTE, "entityKind", "Kind of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct RadioEntityType,entityKind), },
194 {PRIMITIVE, type_UBYTE, "domain", "Domain of entity (air, surface, subsurface, space, etc)", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct RadioEntityType,domain), },
195 {PRIMITIVE, type_USHORT, "country", "country to which the design of the entity is attributed", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct RadioEntityType,country), },
196 {PRIMITIVE, type_UBYTE, "category", "category of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct RadioEntityType,category), },
197 {PRIMITIVE, type_UBYTE, "nomenclatureVersion", "specific info based on subcategory field", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct RadioEntityType,nomenclatureVersion), },
198 {PRIMITIVE, type_USHORT, "nomenclature", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct RadioEntityType,nomenclature), },
199 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
200};
201struct disfieldattr FIELDS_LayerHeader [] = {
202 {PRIMITIVE, type_UBYTE, "layerNumber", "Layer number", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct LayerHeader,layerNumber), },
203 {PRIMITIVE, type_UBYTE, "layerSpecificInformaiton", "Layer speccific information enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct LayerHeader,layerSpecificInformaiton), },
204 {PRIMITIVE, type_USHORT, "length", "information length", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct LayerHeader,length), },
205 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
206};
207struct disfieldattr FIELDS_AcousticEmitterSystem [] = {
208 {PRIMITIVE, type_USHORT, "acousticName", "This field shall specify the system for a particular UA emitter.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AcousticEmitterSystem,acousticName), },
209 {PRIMITIVE, type_UBYTE, "acousticFunction", "This field shall describe the function of the acoustic system. ", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AcousticEmitterSystem,acousticFunction), },
210 {PRIMITIVE, type_UBYTE, "acousticID", "This field shall specify the UA emitter identification number relative to a specific system. This field shall be represented by an 8-bit unsigned integer. This field allows the differentiation of multiple systems on an entity, even if in some instances two or more of the systems may be identical UA emitter types. Numbering of systems shall begin with the value 1. ", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AcousticEmitterSystem,acousticID), },
211 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
212};
213struct disfieldattr FIELDS_FourByteChunk [] = {
214 {FIXED_LIST, type_BYTE, "otherParameters", "four bytes of arbitrary data", 4, NULL, 0, 0, 0, PRIMITIVE, FALSE, FALSE, sizeof(char), offsetof(struct FourByteChunk,otherParameters), },
215 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
216};
217struct disfieldattr FIELDS_Orientation [] = {
218 {PRIMITIVE, type_FLOAT, "psi", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct Orientation,psi), },
219 {PRIMITIVE, type_FLOAT, "theta", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct Orientation,theta), },
220 {PRIMITIVE, type_FLOAT, "phi", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct Orientation,phi), },
221 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
222};
223struct disfieldattr FIELDS_OneByteChunk [] = {
224 {FIXED_LIST, type_BYTE, "otherParameters", "one byte of arbitrary data", 1, NULL, 0, 0, 0, PRIMITIVE, FALSE, FALSE, sizeof(char), offsetof(struct OneByteChunk,otherParameters), },
225 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
226};
227struct disfieldattr FIELDS_EventID [] = {
228 {PRIMITIVE, type_USHORT, "site", "The site ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct EventID,site), },
229 {PRIMITIVE, type_USHORT, "application", "The application ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct EventID,application), },
230 {PRIMITIVE, type_USHORT, "eventNumber", "the number of the event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct EventID,eventNumber), },
231 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
232};
233struct disfieldattr FIELDS_VectoringNozzleSystemData [] = {
234 {PRIMITIVE, type_FLOAT, "horizontalDeflectionAngle", "horizontal deflection angle", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct VectoringNozzleSystemData,horizontalDeflectionAngle), },
235 {PRIMITIVE, type_FLOAT, "verticalDeflectionAngle", "vertical deflection angle", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct VectoringNozzleSystemData,verticalDeflectionAngle), },
236 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
237};
238struct disfieldattr FIELDS_ObjectType [] = {
239 {PRIMITIVE, type_UBYTE, "entityKind", "Kind of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ObjectType,entityKind), },
240 {PRIMITIVE, type_UBYTE, "domain", "Domain of entity (air, surface, subsurface, space, etc)", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ObjectType,domain), },
241 {PRIMITIVE, type_USHORT, "country", "country to which the design of the entity is attributed", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ObjectType,country), },
242 {PRIMITIVE, type_UBYTE, "category", "category of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ObjectType,category), },
243 {PRIMITIVE, type_UBYTE, "subcategory", "subcategory of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ObjectType,subcategory), },
244 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
245};
246struct disfieldattr FIELDS_FundamentalParameterDataIff [] = {
247 {PRIMITIVE, type_FLOAT, "erp", "ERP", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterDataIff,erp), },
248 {PRIMITIVE, type_FLOAT, "frequency", "frequency", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterDataIff,frequency), },
249 {PRIMITIVE, type_FLOAT, "pgrf", "pgrf", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterDataIff,pgrf), },
250 {PRIMITIVE, type_FLOAT, "pulseWidth", "Pulse width", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterDataIff,pulseWidth), },
251 {PRIMITIVE, type_UINT, "burstLength", "Burst length", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct FundamentalParameterDataIff,burstLength), },
252 {PRIMITIVE, type_UBYTE, "applicableModes", "Applicable modes enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FundamentalParameterDataIff,applicableModes), },
253 {PRIMITIVE, type_USHORT, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct FundamentalParameterDataIff,pad2), },
254 {PRIMITIVE, type_UBYTE, "pad3", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FundamentalParameterDataIff,pad3), },
255 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
256};
257struct disfieldattr FIELDS_EightByteChunk [] = {
258 {FIXED_LIST, type_BYTE, "otherParameters", "Eight bytes of arbitrary data", 8, NULL, 0, 0, 0, PRIMITIVE, FALSE, FALSE, sizeof(char), offsetof(struct EightByteChunk,otherParameters), },
259 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
260};
261struct disfieldattr FIELDS_FixedDatum [] = {
262 {PRIMITIVE, type_UINT, "fixedDatumID", "ID of the fixed datum", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct FixedDatum,fixedDatumID), },
263 {PRIMITIVE, type_UINT, "fixedDatumValue", "Value for the fixed datum", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct FixedDatum,fixedDatumValue), },
264 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
265};
266struct disfieldattr FIELDS_GridAxisRecord [] = {
267 {PRIMITIVE, type_USHORT, "sampleType", "type of environmental sample", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct GridAxisRecord,sampleType), },
268 {PRIMITIVE, type_USHORT, "dataRepresentation", "value that describes data representation", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct GridAxisRecord,dataRepresentation), },
269 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
270};
271struct disfieldattr FIELDS_AggregateID [] = {
272 {PRIMITIVE, type_USHORT, "site", "The site ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AggregateID,site), },
273 {PRIMITIVE, type_USHORT, "application", "The application ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AggregateID,application), },
274 {PRIMITIVE, type_USHORT, "aggregateID", "the aggregate ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AggregateID,aggregateID), },
275 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
276};
277struct disfieldattr FIELDS_TwoByteChunk [] = {
278 {FIXED_LIST, type_BYTE, "otherParameters", "two bytes of arbitrary data", 2, NULL, 0, 0, 0, PRIMITIVE, FALSE, FALSE, sizeof(char), offsetof(struct TwoByteChunk,otherParameters), },
279 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
280};
281struct disfieldattr FIELDS_ClockTime [] = {
282 {PRIMITIVE, type_INT, "hour", "Hours in UTC", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(int), offsetof(struct ClockTime,hour), },
283 {PRIMITIVE, type_UINT, "timePastHour", "Time past the hour", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ClockTime,timePastHour), },
284 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
285};
286struct disfieldattr FIELDS_Relationship [] = {
287 {PRIMITIVE, type_USHORT, "nature", "Nature of join", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct Relationship,nature), },
288 {PRIMITIVE, type_USHORT, "position", "position of join", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct Relationship,position), },
289 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
290};
291struct disfieldattr FIELDS_Vector3Float [] = {
292 {PRIMITIVE, type_FLOAT, "x", "X value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct Vector3Float,x), },
293 {PRIMITIVE, type_FLOAT, "y", "y Value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct Vector3Float,y), },
294 {PRIMITIVE, type_FLOAT, "z", "Z value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct Vector3Float,z), },
295 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
296};
297struct disfieldattr FIELDS_ModulationType [] = {
298 {PRIMITIVE, type_USHORT, "spreadSpectrum", "spread spectrum, 16 bit boolean array", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ModulationType,spreadSpectrum), },
299 {PRIMITIVE, type_USHORT, "major", "major", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ModulationType,major), },
300 {PRIMITIVE, type_USHORT, "detail", "detail", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ModulationType,detail), },
301 {PRIMITIVE, type_USHORT, "system", "system", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ModulationType,system), },
302 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
303};
304struct disfieldattr FIELDS_SimulationAddress [] = {
305 {PRIMITIVE, type_USHORT, "site", "The site ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SimulationAddress,site), },
306 {PRIMITIVE, type_USHORT, "application", "The application ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SimulationAddress,application), },
307 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
308};
309struct disfieldattr FIELDS_IffFundamentalData [] = {
310 {PRIMITIVE, type_UBYTE, "systemStatus", "system status", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IffFundamentalData,systemStatus), },
311 {PRIMITIVE, type_UBYTE, "alternateParameter4", "Alternate parameter 4", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IffFundamentalData,alternateParameter4), },
312 {PRIMITIVE, type_UBYTE, "informationLayers", "eight boolean fields", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IffFundamentalData,informationLayers), },
313 {PRIMITIVE, type_UBYTE, "modifier", "enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IffFundamentalData,modifier), },
314 {PRIMITIVE, type_USHORT, "parameter1", "parameter, enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IffFundamentalData,parameter1), },
315 {PRIMITIVE, type_USHORT, "parameter2", "parameter, enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IffFundamentalData,parameter2), },
316 {PRIMITIVE, type_USHORT, "parameter3", "parameter, enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IffFundamentalData,parameter3), },
317 {PRIMITIVE, type_USHORT, "parameter4", "parameter, enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IffFundamentalData,parameter4), },
318 {PRIMITIVE, type_USHORT, "parameter5", "parameter, enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IffFundamentalData,parameter5), },
319 {PRIMITIVE, type_USHORT, "parameter6", "parameter, enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IffFundamentalData,parameter6), },
320 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
321};
322struct disfieldattr FIELDS_AggregateType [] = {
323 {PRIMITIVE, type_UBYTE, "aggregateKind", "Kind of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AggregateType,aggregateKind), },
324 {PRIMITIVE, type_UBYTE, "domain", "Domain of entity (air, surface, subsurface, space, etc)", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AggregateType,domain), },
325 {PRIMITIVE, type_USHORT, "country", "country to which the design of the entity is attributed", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AggregateType,country), },
326 {PRIMITIVE, type_UBYTE, "category", "category of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AggregateType,category), },
327 {PRIMITIVE, type_UBYTE, "subcategory", "subcategory of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AggregateType,subcategory), },
328 {PRIMITIVE, type_UBYTE, "specific", "specific info based on subcategory field", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AggregateType,specific), },
329 {PRIMITIVE, type_UBYTE, "extra", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AggregateType,extra), },
330 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
331};
332struct disfieldattr FIELDS_BeamData [] = {
333 {PRIMITIVE, type_FLOAT, "beamAzimuthCenter", "Specifies the beam azimuth an elevation centers and corresponding half-angles to describe the scan volume", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct BeamData,beamAzimuthCenter), },
334 {PRIMITIVE, type_FLOAT, "beamAzimuthSweep", "Specifies the beam azimuth sweep to determine scan volume", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct BeamData,beamAzimuthSweep), },
335 {PRIMITIVE, type_FLOAT, "beamElevationCenter", "Specifies the beam elevation center to determine scan volume", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct BeamData,beamElevationCenter), },
336 {PRIMITIVE, type_FLOAT, "beamElevationSweep", "Specifies the beam elevation sweep to determine scan volume", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct BeamData,beamElevationSweep), },
337 {PRIMITIVE, type_FLOAT, "beamSweepSync", "allows receiver to synchronize its regenerated scan pattern to that of the emmitter. Specifies the percentage of time a scan is through its pattern from its origion.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct BeamData,beamSweepSync), },
338 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
339};
340struct disfieldattr FIELDS_NamedLocation [] = {
341 {PRIMITIVE, type_USHORT, "stationName", "station name enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct NamedLocation,stationName), },
342 {PRIMITIVE, type_USHORT, "stationNumber", "station number", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct NamedLocation,stationNumber), },
343 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
344};
345struct disfieldattr FIELDS_RecordSet [] = {
346 {PRIMITIVE, type_UINT, "recordID", "record ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct RecordSet,recordID), },
347 {PRIMITIVE, type_UINT, "recordSetSerialNumber", "record set serial number", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct RecordSet,recordSetSerialNumber), },
348 {PRIMITIVE, type_USHORT, "recordLength", "record length", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct RecordSet,recordLength), },
349 {PRIMITIVE, type_USHORT, "recordCount", "record count", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct RecordSet,recordCount), },
350 {PRIMITIVE, type_USHORT, "recordValues", "^^^This is wrong--variable sized data records", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct RecordSet,recordValues), },
351 {PRIMITIVE, type_UBYTE, "pad4", "^^^This is wrong--variable sized padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct RecordSet,pad4), },
352 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
353};
354struct disfieldattr FIELDS_SphericalHarmonicAntennaPattern [] = {
355 {PRIMITIVE, type_BYTE, "order", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(char), offsetof(struct SphericalHarmonicAntennaPattern,order), },
356 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
357};
358struct disfieldattr FIELDS_ShaftRPMs [] = {
359 {PRIMITIVE, type_SHORT, "currentShaftRPMs", "Current shaft RPMs", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(short), offsetof(struct ShaftRPMs,currentShaftRPMs), },
360 {PRIMITIVE, type_SHORT, "orderedShaftRPMs", "ordered shaft rpms", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(short), offsetof(struct ShaftRPMs,orderedShaftRPMs), },
361 {PRIMITIVE, type_FLOAT, "shaftRPMRateOfChange", "rate of change of shaft RPMs", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct ShaftRPMs,shaftRPMRateOfChange), },
362 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
363};
364struct disfieldattr FIELDS_IntercomCommunicationsParameters [] = {
365 {PRIMITIVE, type_USHORT, "recordType", "Type of intercom parameters record", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IntercomCommunicationsParameters,recordType), },
366 {PRIMITIVE, type_USHORT, "recordLength", "length of record", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IntercomCommunicationsParameters,recordLength), },
367 {PRIMITIVE, type_UINT, "recordSpecificField", "Jerks. Looks like the committee is forcing a lookup of the record type parameter to find out how long the field is. This is a placeholder.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct IntercomCommunicationsParameters,recordSpecificField), },
368 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
369};
370struct disfieldattr FIELDS_AcousticBeamFundamentalParameter [] = {
371 {PRIMITIVE, type_USHORT, "activeEmissionParameterIndex", "parameter index", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AcousticBeamFundamentalParameter,activeEmissionParameterIndex), },
372 {PRIMITIVE, type_USHORT, "scanPattern", "scan pattern", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AcousticBeamFundamentalParameter,scanPattern), },
373 {PRIMITIVE, type_FLOAT, "beamCenterAzimuth", "beam center azimuth", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct AcousticBeamFundamentalParameter,beamCenterAzimuth), },
374 {PRIMITIVE, type_FLOAT, "azimuthalBeamwidth", "azimuthal beamwidth", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct AcousticBeamFundamentalParameter,azimuthalBeamwidth), },
375 {PRIMITIVE, type_FLOAT, "beamCenterDE", "beam center", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct AcousticBeamFundamentalParameter,beamCenterDE), },
376 {PRIMITIVE, type_FLOAT, "deBeamwidth", "DE beamwidth (vertical beamwidth)", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct AcousticBeamFundamentalParameter,deBeamwidth), },
377 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
378};
379struct disfieldattr FIELDS_EntityType [] = {
380 {PRIMITIVE, type_UBYTE, "entityKind", "Kind of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EntityType,entityKind), },
381 {PRIMITIVE, type_UBYTE, "domain", "Domain of entity (air, surface, subsurface, space, etc)", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EntityType,domain), },
382 {PRIMITIVE, type_USHORT, "country", "country to which the design of the entity is attributed", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct EntityType,country), },
383 {PRIMITIVE, type_UBYTE, "category", "category of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EntityType,category), },
384 {PRIMITIVE, type_UBYTE, "subcategory", "subcategory of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EntityType,subcategory), },
385 {PRIMITIVE, type_UBYTE, "specific", "specific info based on subcategory field", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EntityType,specific), },
386 {PRIMITIVE, type_UBYTE, "extra", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EntityType,extra), },
387 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
388};
389struct disfieldattr FIELDS_FundamentalParameterData [] = {
390 {PRIMITIVE, type_FLOAT, "frequency", "center frequency of the emission in hertz.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterData,frequency), },
391 {PRIMITIVE, type_FLOAT, "frequencyRange", "Bandwidth of the frequencies corresponding to the fequency field.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterData,frequencyRange), },
392 {PRIMITIVE, type_FLOAT, "effectiveRadiatedPower", "Effective radiated power for the emission in DdBm. For a radar noise jammer, indicates the peak of the transmitted power.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterData,effectiveRadiatedPower), },
393 {PRIMITIVE, type_FLOAT, "pulseRepetitionFrequency", "Average repetition frequency of the emission in hertz.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterData,pulseRepetitionFrequency), },
394 {PRIMITIVE, type_FLOAT, "pulseWidth", "Average pulse width of the emission in microseconds.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterData,pulseWidth), },
395 {PRIMITIVE, type_FLOAT, "beamAzimuthCenter", "Specifies the beam azimuth an elevation centers and corresponding half-angles to describe the scan volume", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterData,beamAzimuthCenter), },
396 {PRIMITIVE, type_FLOAT, "beamAzimuthSweep", "Specifies the beam azimuth sweep to determine scan volume", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterData,beamAzimuthSweep), },
397 {PRIMITIVE, type_FLOAT, "beamElevationCenter", "Specifies the beam elevation center to determine scan volume", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterData,beamElevationCenter), },
398 {PRIMITIVE, type_FLOAT, "beamElevationSweep", "Specifies the beam elevation sweep to determine scan volume", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterData,beamElevationSweep), },
399 {PRIMITIVE, type_FLOAT, "beamSweepSync", "allows receiver to synchronize its regenerated scan pattern to that of the emmitter. Specifies the percentage of time a scan is through its pattern from its origion.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FundamentalParameterData,beamSweepSync), },
400 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
401};
402struct disfieldattr FIELDS_ApaData [] = {
403 {PRIMITIVE, type_USHORT, "parameterIndex", "Index of APA parameter", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ApaData,parameterIndex), },
404 {PRIMITIVE, type_SHORT, "parameterValue", "Index of APA parameter", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(short), offsetof(struct ApaData,parameterValue), },
405 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
406};
407struct disfieldattr FIELDS_Environment [] = {
408 {PRIMITIVE, type_UINT, "environmentType", "Record type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct Environment,environmentType), },
409 {PRIMITIVE, type_UBYTE, "length", "length, in bits", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct Environment,length), },
410 {PRIMITIVE, type_UBYTE, "index", "Identify the sequentially numbered record index", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct Environment,index), },
411 {PRIMITIVE, type_UBYTE, "padding1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct Environment,padding1), },
412 {PRIMITIVE, type_UBYTE, "geometry", "Geometry or state record", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct Environment,geometry), },
413 {PRIMITIVE, type_UBYTE, "padding2", "padding to bring the total size up to a 64 bit boundry", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct Environment,padding2), },
414 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
415};
416struct disfieldattr FIELDS_AcousticEmitter [] = {
417 {PRIMITIVE, type_USHORT, "acousticName", "the system for a particular UA emitter, and an enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AcousticEmitter,acousticName), },
418 {PRIMITIVE, type_UBYTE, "function", "The function of the acoustic system", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AcousticEmitter,function), },
419 {PRIMITIVE, type_UBYTE, "acousticIdNumber", "The UA emitter identification number relative to a specific system", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AcousticEmitter,acousticIdNumber), },
420 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
421};
422struct disfieldattr FIELDS_AngularVelocityVector [] = {
423 {PRIMITIVE, type_FLOAT, "x", "velocity about the x axis", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(float), offsetof(struct AngularVelocityVector,x), },
424 {PRIMITIVE, type_FLOAT, "y", "velocity about the y axis", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(float), offsetof(struct AngularVelocityVector,y), },
425 {PRIMITIVE, type_FLOAT, "z", "velocity about the zaxis", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(float), offsetof(struct AngularVelocityVector,z), },
426 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
427};
428struct disfieldattr FIELDS_AggregateMarking [] = {
429 {PRIMITIVE, type_UBYTE, "characterSet", "The character set", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AggregateMarking,characterSet), },
430 {FIXED_LIST, type_BYTE, "characters", "The characters", 31, NULL, 0, 0, 0, PRIMITIVE, FALSE, FALSE, sizeof(char), offsetof(struct AggregateMarking,characters), },
431 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
432};
433struct disfieldattr FIELDS_EntityID [] = {
434 {PRIMITIVE, type_USHORT, "site", "The site ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct EntityID,site), },
435 {PRIMITIVE, type_USHORT, "application", "The application ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct EntityID,application), },
436 {PRIMITIVE, type_USHORT, "entity", "the entity ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct EntityID,entity), },
437 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
438};
439struct disfieldattr FIELDS_SixByteChunk [] = {
440 {FIXED_LIST, type_BYTE, "otherParameters", "six bytes of arbitrary data", 6, NULL, 0, 0, 0, PRIMITIVE, FALSE, FALSE, sizeof(char), offsetof(struct SixByteChunk,otherParameters), },
441 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
442};
443struct disfieldattr FIELDS_Vector3Double [] = {
444 {PRIMITIVE, type_DOUBLE, "x", "X value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(double), offsetof(struct Vector3Double,x), },
445 {PRIMITIVE, type_DOUBLE, "y", "Y value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(double), offsetof(struct Vector3Double,y), },
446 {PRIMITIVE, type_DOUBLE, "z", "Z value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(double), offsetof(struct Vector3Double,z), },
447 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
448};
449struct disfieldattr FIELDS_Pdu [] = {
450 {PRIMITIVE, type_UBYTE, "protocolVersion", "The version of the protocol. 5=DIS-1995, 6=DIS-1998.", 0, NULL, 0, 0, 6,0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct Pdu,protocolVersion), },
451 {PRIMITIVE, type_UBYTE, "exerciseID", "Exercise ID", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct Pdu,exerciseID), },
452 {PRIMITIVE, type_UBYTE, "pduType", "Type of pdu, unique for each PDU class", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct Pdu,pduType), },
453 {PRIMITIVE, type_UBYTE, "protocolFamily", "value that refers to the protocol family, eg SimulationManagement, et", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct Pdu,protocolFamily), },
454 {PRIMITIVE, type_UINT, "timestamp", "Timestamp value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct Pdu,timestamp), },
455 {PRIMITIVE, type_USHORT, "length", "Length, in bytes, of the PDU", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct Pdu,length), },
456 {PRIMITIVE, type_SHORT, "padding", "zero-filled array of padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(short), offsetof(struct Pdu,padding), },
457 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
458};
459struct disfieldattr FIELDS_VariableDatum [] = {
460 {PRIMITIVE, type_UINT, "variableDatumID", "ID of the variable datum", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct VariableDatum,variableDatumID), },
461 {PRIMITIVE, type_UINT, "variableDatumLength", "length of the variable datums", 0, NULL, 0, type_EightByteChunk, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct VariableDatum,variableDatumLength), },
462 {VARIABLE_LIST, type_EightByteChunk, "variableDatums", "variable length list of 64-bit datums", 0, "variableDatumLength", 1, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct EightByteChunk), offsetof(struct VariableDatum,variableDatums), },
463 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
464};
465struct disfieldattr FIELDS_ArticulationParameter [] = {
466 {PRIMITIVE, type_UBYTE, "parameterTypeDesignator", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ArticulationParameter,parameterTypeDesignator), },
467 {PRIMITIVE, type_UBYTE, "changeIndicator", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ArticulationParameter,changeIndicator), },
468 {PRIMITIVE, type_USHORT, "partAttachedTo", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ArticulationParameter,partAttachedTo), },
469 {PRIMITIVE, type_INT, "parameterType", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(int), offsetof(struct ArticulationParameter,parameterType), },
470 {PRIMITIVE, type_DOUBLE, "parameterValue", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(double), offsetof(struct ArticulationParameter,parameterValue), },
471 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
472};
473struct disfieldattr FIELDS_Marking [] = {
474 {PRIMITIVE, type_UBYTE, "characterSet", "The character set", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct Marking,characterSet), },
475 {FIXED_LIST, type_BYTE, "characters", "The characters", 11, NULL, 0, 0, 0, PRIMITIVE, TRUE, FALSE, sizeof(char), offsetof(struct Marking,characters), },
476 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
477};
478struct disfieldattr FIELDS_Point [] = {
479 {PRIMITIVE, type_FLOAT, "x", "x", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct Point,x), },
480 {PRIMITIVE, type_FLOAT, "y", "y", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct Point,y), },
481 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
482};
483struct disfieldattr FIELDS_PropulsionSystemData [] = {
484 {PRIMITIVE, type_FLOAT, "powerSetting", "powerSetting", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct PropulsionSystemData,powerSetting), },
485 {PRIMITIVE, type_FLOAT, "engineRpm", "engine RPMs", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct PropulsionSystemData,engineRpm), },
486 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
487};
488struct disfieldattr FIELDS_EmitterSystem [] = {
489 {PRIMITIVE, type_USHORT, "emitterName", "Name of the emitter, 16 bit enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct EmitterSystem,emitterName), },
490 {PRIMITIVE, type_UBYTE, "function", "function of the emitter, 8 bit enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EmitterSystem,function), },
491 {PRIMITIVE, type_UBYTE, "emitterIdNumber", "emitter ID, 8 bit enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EmitterSystem,emitterIdNumber), },
492 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
493};
494struct disfieldattr FIELDS_PduContainer [] = {
495 {PRIMITIVE, type_INT, "numberOfPdus", "Number of PDUs in the container list", 0, NULL, 0, type_Pdu, 0, 0, FALSE, FALSE, sizeof(int), offsetof(struct PduContainer,numberOfPdus), },
496 {VARIABLE_LIST, type_Pdu, "pdus", "record sets", 0, "numberOfPdus", 0, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct Pdu), offsetof(struct PduContainer,pdus), },
497 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
498};
499struct disfieldattr FIELDS_ElectronicEmissionBeamData [] = {
500 {PRIMITIVE, type_UBYTE, "beamDataLength", "This field shall specify the length of this beams data in 32 bit words", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ElectronicEmissionBeamData,beamDataLength), },
501 {PRIMITIVE, type_UBYTE, "beamIDNumber", "This field shall specify a unique emitter database number assigned to differentiate between otherwise similar or identical emitter beams within an emitter system.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ElectronicEmissionBeamData,beamIDNumber), },
502 {PRIMITIVE, type_USHORT, "beamParameterIndex", "This field shall specify a Beam Parameter Index number that shall be used by receiving entities in conjunction with the Emitter Name field to provide a pointer to the stored database parameters required to regenerate the beam. ", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ElectronicEmissionBeamData,beamParameterIndex), },
503 {CLASSREF, type_FundamentalParameterData, "fundamentalParameterData", "Fundamental parameter data such as frequency range, beam sweep, etc.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct FundamentalParameterData), offsetof(struct ElectronicEmissionBeamData,fundamentalParameterData), },
504 {PRIMITIVE, type_UBYTE, "beamFunction", "beam function of a particular beam", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ElectronicEmissionBeamData,beamFunction), },
505 {PRIMITIVE, type_UBYTE, "numberOfTrackJamTargets", "Number of track/jam targets", 0, NULL, 0, type_TrackJamTarget, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ElectronicEmissionBeamData,numberOfTrackJamTargets), },
506 {PRIMITIVE, type_UBYTE, "highDensityTrackJam", "wheher or not the receiving simulation apps can assume all the targets in the scan pattern are being tracked/jammed", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ElectronicEmissionBeamData,highDensityTrackJam), },
507 {PRIMITIVE, type_UBYTE, "pad4", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ElectronicEmissionBeamData,pad4), },
508 {PRIMITIVE, type_UINT, "jammingModeSequence", "identify jamming techniques used", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ElectronicEmissionBeamData,jammingModeSequence), },
509 {VARIABLE_LIST, type_TrackJamTarget, "trackJamTargets", "variable length list of track/jam targets", 0, "numberOfTrackJamTargets", 5, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct TrackJamTarget), offsetof(struct ElectronicEmissionBeamData,trackJamTargets), },
510 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
511};
512struct disfieldattr FIELDS_LogisticsFamilyPdu [] = {
513 {CLASSREF, type_Pdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct Pdu), 0 },
514 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
515};
516struct disfieldattr FIELDS_ServiceRequestPdu [] = {
517 {CLASSREF, type_LogisticsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct LogisticsFamilyPdu), 0 },
518 {CLASSREF, type_EntityID, "requestingEntityID", "Entity that is requesting service", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ServiceRequestPdu,requestingEntityID), },
519 {CLASSREF, type_EntityID, "servicingEntityID", "Entity that is providing the service", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ServiceRequestPdu,servicingEntityID), },
520 {PRIMITIVE, type_UBYTE, "serviceTypeRequested", "type of service requested", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ServiceRequestPdu,serviceTypeRequested), },
521 {PRIMITIVE, type_UBYTE, "numberOfSupplyTypes", "How many requested", 0, NULL, 0, type_SupplyQuantity, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ServiceRequestPdu,numberOfSupplyTypes), },
522 {PRIMITIVE, type_SHORT, "serviceRequestPadding", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(short), offsetof(struct ServiceRequestPdu,serviceRequestPadding), },
523 {VARIABLE_LIST, type_SupplyQuantity, "supplies", NULL, 0, "numberOfSupplyTypes", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct SupplyQuantity), offsetof(struct ServiceRequestPdu,supplies), },
524 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
525};
526struct disfieldattr FIELDS_RepairCompletePdu [] = {
527 {CLASSREF, type_LogisticsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct LogisticsFamilyPdu), 0 },
528 {CLASSREF, type_EntityID, "receivingEntityID", "Entity that is receiving service", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct RepairCompletePdu,receivingEntityID), },
529 {CLASSREF, type_EntityID, "repairingEntityID", "Entity that is supplying", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct RepairCompletePdu,repairingEntityID), },
530 {PRIMITIVE, type_USHORT, "repair", "Enumeration for type of repair", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct RepairCompletePdu,repair), },
531 {PRIMITIVE, type_SHORT, "padding2", "padding, number prevents conflict with superclass ivar name", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(short), offsetof(struct RepairCompletePdu,padding2), },
532 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
533};
534struct disfieldattr FIELDS_DeadReckoningParameter [] = {
535 {PRIMITIVE, type_UBYTE, "deadReckoningAlgorithm", "enumeration of what dead reckoning algorighm to use", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct DeadReckoningParameter,deadReckoningAlgorithm), },
536 {FIXED_LIST, type_BYTE, "otherParameters", "other parameters to use in the dead reckoning algorithm", 15, NULL, 0, 0, 0, PRIMITIVE, FALSE, FALSE, sizeof(char), offsetof(struct DeadReckoningParameter,otherParameters), },
537 {CLASSREF, type_Vector3Float, "entityLinearAcceleration", "Linear acceleration of the entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct DeadReckoningParameter,entityLinearAcceleration), },
538 {CLASSREF, type_Vector3Float, "entityAngularVelocity", "angular velocity of the entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct DeadReckoningParameter,entityAngularVelocity), },
539 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
540};
541struct disfieldattr FIELDS_BeamAntennaPattern [] = {
542 {CLASSREF, type_Orientation, "beamDirection", "The rotation that transformst he reference coordinate sytem into the beam coordinate system. Either world coordinates or entity coordinates may be used as the reference coordinate system, as specified by teh reference system field of the antenna pattern record.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Orientation), offsetof(struct BeamAntennaPattern,beamDirection), },
543 {PRIMITIVE, type_FLOAT, "azimuthBeamwidth", NULL, 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(float), offsetof(struct BeamAntennaPattern,azimuthBeamwidth), },
544 {PRIMITIVE, type_FLOAT, "referenceSystem", NULL, 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(float), offsetof(struct BeamAntennaPattern,referenceSystem), },
545 {PRIMITIVE, type_SHORT, "padding1", NULL, 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(short), offsetof(struct BeamAntennaPattern,padding1), },
546 {PRIMITIVE, type_BYTE, "padding2", NULL, 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(char), offsetof(struct BeamAntennaPattern,padding2), },
547 {PRIMITIVE, type_FLOAT, "ez", "Magnigute of the z-component in beam coordinates at some arbitrary single point in the mainbeam and in the far field of the antenna.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct BeamAntennaPattern,ez), },
548 {PRIMITIVE, type_FLOAT, "ex", "Magnigute of the x-component in beam coordinates at some arbitrary single point in the mainbeam and in the far field of the antenna.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct BeamAntennaPattern,ex), },
549 {PRIMITIVE, type_FLOAT, "phase", "THe phase angle between Ez and Ex in radians.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct BeamAntennaPattern,phase), },
550 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
551};
552struct disfieldattr FIELDS_SyntheticEnvironmentFamilyPdu [] = {
553 {CLASSREF, type_Pdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct Pdu), 0 },
554 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
555};
556struct disfieldattr FIELDS_AcousticEmitterSystemData [] = {
557 {PRIMITIVE, type_UBYTE, "emitterSystemDataLength", "Length of emitter system data", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AcousticEmitterSystemData,emitterSystemDataLength), },
558 {PRIMITIVE, type_UBYTE, "numberOfBeams", "Number of beams", 0, NULL, 0, type_AcousticBeamData, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AcousticEmitterSystemData,numberOfBeams), },
559 {PRIMITIVE, type_USHORT, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AcousticEmitterSystemData,pad2), },
560 {CLASSREF, type_AcousticEmitterSystem, "acousticEmitterSystem", "This field shall specify the system for a particular UA emitter.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct AcousticEmitterSystem), offsetof(struct AcousticEmitterSystemData,acousticEmitterSystem), },
561 {CLASSREF, type_Vector3Float, "emitterLocation", "Represents the location wrt the entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct AcousticEmitterSystemData,emitterLocation), },
562 {VARIABLE_LIST, type_AcousticBeamData, "beamRecords", "For each beam in numberOfBeams, an emitter system. This is not right--the beam records need to be at the end of the PDU, rather than attached to each system.", 0, "numberOfBeams", 1, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct AcousticBeamData), offsetof(struct AcousticEmitterSystemData,beamRecords), },
563 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
564};
565struct disfieldattr FIELDS_RepairResponsePdu [] = {
566 {CLASSREF, type_LogisticsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct LogisticsFamilyPdu), 0 },
567 {CLASSREF, type_EntityID, "receivingEntityID", "Entity that is receiving service", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct RepairResponsePdu,receivingEntityID), },
568 {CLASSREF, type_EntityID, "repairingEntityID", "Entity that is supplying", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct RepairResponsePdu,repairingEntityID), },
569 {PRIMITIVE, type_UBYTE, "repairResult", "Result of repair operation", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct RepairResponsePdu,repairResult), },
570 {PRIMITIVE, type_SHORT, "padding1", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(short), offsetof(struct RepairResponsePdu,padding1), },
571 {PRIMITIVE, type_BYTE, "padding2", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(char), offsetof(struct RepairResponsePdu,padding2), },
572 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
573};
574struct disfieldattr FIELDS_SimulationManagementFamilyPdu [] = {
575 {CLASSREF, type_Pdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct Pdu), 0 },
576 {CLASSREF, type_EntityID, "originatingEntityID", "Entity that is sending message", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct SimulationManagementFamilyPdu,originatingEntityID), },
577 {CLASSREF, type_EntityID, "receivingEntityID", "Entity that is intended to receive message", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct SimulationManagementFamilyPdu,receivingEntityID), },
578 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
579};
580struct disfieldattr FIELDS_AntennaLocation [] = {
581 {CLASSREF, type_Vector3Double, "antennaLocation", "Location of the radiating portion of the antenna in world coordinates", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct AntennaLocation,antennaLocation), },
582 {CLASSREF, type_Vector3Float, "relativeAntennaLocation", "Location of the radiating portion of the antenna in entity coordinates", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct AntennaLocation,relativeAntennaLocation), },
583 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
584};
585struct disfieldattr FIELDS_DataQueryPdu [] = {
586 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
587 {PRIMITIVE, type_UINT, "requestID", "ID of request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataQueryPdu,requestID), },
588 {PRIMITIVE, type_UINT, "timeInterval", "time issues between issues of Data PDUs. Zero means send once only.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataQueryPdu,timeInterval), },
589 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Number of fixed datum records", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataQueryPdu,numberOfFixedDatumRecords), },
590 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "Number of variable datum records", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataQueryPdu,numberOfVariableDatumRecords), },
591 {VARIABLE_LIST, type_FixedDatum, "fixedDatums", "variable length list of fixed datums", 0, "numberOfFixedDatumRecords", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct DataQueryPdu,fixedDatums), },
592 {VARIABLE_LIST, type_VariableDatum, "variableDatums", "variable length list of variable length datums", 0, "numberOfVariableDatumRecords", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct DataQueryPdu,variableDatums), },
593 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
594};
595struct disfieldattr FIELDS_BurstDescriptor [] = {
596 {CLASSREF, type_EntityType, "munition", "What munition was used in the burst", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct BurstDescriptor,munition), },
597 {PRIMITIVE, type_USHORT, "warhead", "type of warhead", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct BurstDescriptor,warhead), },
598 {PRIMITIVE, type_USHORT, "fuse", "type of fuse used", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct BurstDescriptor,fuse), },
599 {PRIMITIVE, type_USHORT, "quantity", "how many of the munition were fired", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct BurstDescriptor,quantity), },
600 {PRIMITIVE, type_USHORT, "rate", "rate at which the munition was fired", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct BurstDescriptor,rate), },
601 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
602};
603struct disfieldattr FIELDS_LinearObjectStatePdu [] = {
604 {CLASSREF, type_SyntheticEnvironmentFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SyntheticEnvironmentFamilyPdu), 0 },
605 {CLASSREF, type_EntityID, "objectID", "Object in synthetic environment", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct LinearObjectStatePdu,objectID), },
606 {CLASSREF, type_EntityID, "referencedObjectID", "Object with which this point object is associated", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct LinearObjectStatePdu,referencedObjectID), },
607 {PRIMITIVE, type_USHORT, "updateNumber", "unique update number of each state transition of an object", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct LinearObjectStatePdu,updateNumber), },
608 {PRIMITIVE, type_UBYTE, "forceID", "force ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct LinearObjectStatePdu,forceID), },
609 {PRIMITIVE, type_UBYTE, "numberOfSegments", "number of linear segment parameters", 0, NULL, 0, type_LinearSegmentParameter, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct LinearObjectStatePdu,numberOfSegments), },
610 {CLASSREF, type_SimulationAddress, "requesterID", "requesterID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct SimulationAddress), offsetof(struct LinearObjectStatePdu,requesterID), },
611 {CLASSREF, type_SimulationAddress, "receivingID", "receiver ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct SimulationAddress), offsetof(struct LinearObjectStatePdu,receivingID), },
612 {CLASSREF, type_ObjectType, "objectType", "Object type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct ObjectType), offsetof(struct LinearObjectStatePdu,objectType), },
613 {VARIABLE_LIST, type_LinearSegmentParameter, "linearSegmentParameters", "Linear segment parameters", 0, "numberOfSegments", 5, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct LinearSegmentParameter), offsetof(struct LinearObjectStatePdu,linearSegmentParameters), },
614 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
615};
616struct disfieldattr FIELDS_CreateEntityPdu [] = {
617 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
618 {PRIMITIVE, type_UINT, "requestID", "Identifier for the request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct CreateEntityPdu,requestID), },
619 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
620};
621struct disfieldattr FIELDS_RadioCommunicationsFamilyPdu [] = {
622 {CLASSREF, type_Pdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct Pdu), 0 },
623 {CLASSREF, type_EntityID, "entityId", "ID of the entitythat is the source of the communication", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct RadioCommunicationsFamilyPdu,entityId), },
624 {PRIMITIVE, type_USHORT, "radioId", "particular radio within an entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct RadioCommunicationsFamilyPdu,radioId), },
625 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
626};
627struct disfieldattr FIELDS_AcousticBeamData [] = {
628 {PRIMITIVE, type_USHORT, "beamDataLength", "beam data length", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AcousticBeamData,beamDataLength), },
629 {PRIMITIVE, type_UBYTE, "beamIDNumber", "beamIDNumber", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AcousticBeamData,beamIDNumber), },
630 {PRIMITIVE, type_USHORT, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AcousticBeamData,pad2), },
631 {CLASSREF, type_AcousticBeamFundamentalParameter, "fundamentalDataParameters", "fundamental data parameters", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct AcousticBeamFundamentalParameter), offsetof(struct AcousticBeamData,fundamentalDataParameters), },
632 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
633};
634struct disfieldattr FIELDS_IntercomSignalPdu [] = {
635 {CLASSREF, type_RadioCommunicationsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct RadioCommunicationsFamilyPdu), 0 },
636 {CLASSREF, type_EntityID, "entityID", "entity ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct IntercomSignalPdu,entityID), },
637 {PRIMITIVE, type_USHORT, "communicationsDeviceID", "ID of communications device", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IntercomSignalPdu,communicationsDeviceID), },
638 {PRIMITIVE, type_USHORT, "encodingScheme", "encoding scheme", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IntercomSignalPdu,encodingScheme), },
639 {PRIMITIVE, type_USHORT, "tdlType", "tactical data link type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IntercomSignalPdu,tdlType), },
640 {PRIMITIVE, type_UINT, "sampleRate", "sample rate", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct IntercomSignalPdu,sampleRate), },
641 {PRIMITIVE, type_USHORT, "dataLength", "data length", 0, NULL, 0, type_OneByteChunk, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IntercomSignalPdu,dataLength), },
642 {PRIMITIVE, type_USHORT, "samples", "samples", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IntercomSignalPdu,samples), },
643 {VARIABLE_LIST, type_OneByteChunk, "data", "data bytes", 0, "dataLength", 6, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct OneByteChunk), offsetof(struct IntercomSignalPdu,data), },
644 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
645};
646struct disfieldattr FIELDS_GridAxisRecordRepresentation2 [] = {
647 {CLASSREF, type_GridAxisRecord, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct GridAxisRecord), 0 },
648 {PRIMITIVE, type_USHORT, "numberOfValues", "number of values", 0, NULL, 0, type_FourByteChunk, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct GridAxisRecordRepresentation2,numberOfValues), },
649 {VARIABLE_LIST, type_FourByteChunk, "dataValues", "variable length list of data parameters ^^^this is wrong--need padding as well", 0, "numberOfValues", 1, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FourByteChunk), offsetof(struct GridAxisRecordRepresentation2,dataValues), },
650 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
651};
652struct disfieldattr FIELDS_LinearSegmentParameter [] = {
653 {PRIMITIVE, type_UBYTE, "segmentNumber", "number of segments", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct LinearSegmentParameter,segmentNumber), },
654 {CLASSREF, type_SixByteChunk, "segmentAppearance", "segment appearance", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct SixByteChunk), offsetof(struct LinearSegmentParameter,segmentAppearance), },
655 {CLASSREF, type_Vector3Double, "location", "location", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct LinearSegmentParameter,location), },
656 {CLASSREF, type_Orientation, "orientation", "orientation", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Orientation), offsetof(struct LinearSegmentParameter,orientation), },
657 {PRIMITIVE, type_USHORT, "segmentLength", "segmentLength", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct LinearSegmentParameter,segmentLength), },
658 {PRIMITIVE, type_USHORT, "segmentWidth", "segmentWidth", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct LinearSegmentParameter,segmentWidth), },
659 {PRIMITIVE, type_USHORT, "segmentHeight", "segmentHeight", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct LinearSegmentParameter,segmentHeight), },
660 {PRIMITIVE, type_USHORT, "segmentDepth", "segment Depth", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct LinearSegmentParameter,segmentDepth), },
661 {PRIMITIVE, type_UINT, "pad1", "segment Depth", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct LinearSegmentParameter,pad1), },
662 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
663};
664struct disfieldattr FIELDS_GridAxisRecordRepresentation1 [] = {
665 {CLASSREF, type_GridAxisRecord, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct GridAxisRecord), 0 },
666 {PRIMITIVE, type_FLOAT, "fieldScale", "constant scale factor", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct GridAxisRecordRepresentation1,fieldScale), },
667 {PRIMITIVE, type_FLOAT, "fieldOffset", "constant offset used to scale grid data", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct GridAxisRecordRepresentation1,fieldOffset), },
668 {PRIMITIVE, type_USHORT, "numberOfValues", "Number of data values", 0, NULL, 0, type_TwoByteChunk, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct GridAxisRecordRepresentation1,numberOfValues), },
669 {VARIABLE_LIST, type_TwoByteChunk, "dataValues", "variable length list of data parameters ^^^this is wrong--need padding as well", 0, "numberOfValues", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct TwoByteChunk), offsetof(struct GridAxisRecordRepresentation1,dataValues), },
670 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
671};
672struct disfieldattr FIELDS_GridAxisRecordRepresentation0 [] = {
673 {CLASSREF, type_GridAxisRecord, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct GridAxisRecord), 0 },
674 {PRIMITIVE, type_USHORT, "numberOfBytes", "number of bytes of environmental state data", 0, NULL, 0, type_OneByteChunk, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct GridAxisRecordRepresentation0,numberOfBytes), },
675 {VARIABLE_LIST, type_OneByteChunk, "dataValues", "variable length list of data parameters ^^^this is wrong--need padding as well", 0, "numberOfBytes", 1, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct OneByteChunk), offsetof(struct GridAxisRecordRepresentation0,dataValues), },
676 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
677};
678struct disfieldattr FIELDS_RemoveEntityPdu [] = {
679 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
680 {PRIMITIVE, type_UINT, "requestID", "Identifier for the request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct RemoveEntityPdu,requestID), },
681 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
682};
683struct disfieldattr FIELDS_ResupplyReceivedPdu [] = {
684 {CLASSREF, type_LogisticsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct LogisticsFamilyPdu), 0 },
685 {CLASSREF, type_EntityID, "receivingEntityID", "Entity that is receiving service", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ResupplyReceivedPdu,receivingEntityID), },
686 {CLASSREF, type_EntityID, "supplyingEntityID", "Entity that is supplying", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ResupplyReceivedPdu,supplyingEntityID), },
687 {PRIMITIVE, type_UBYTE, "numberOfSupplyTypes", "how many supplies are being offered", 0, NULL, 0, type_SupplyQuantity, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ResupplyReceivedPdu,numberOfSupplyTypes), },
688 {PRIMITIVE, type_SHORT, "padding1", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(short), offsetof(struct ResupplyReceivedPdu,padding1), },
689 {PRIMITIVE, type_BYTE, "padding2", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(char), offsetof(struct ResupplyReceivedPdu,padding2), },
690 {VARIABLE_LIST, type_SupplyQuantity, "supplies", NULL, 0, "numberOfSupplyTypes", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct SupplyQuantity), offsetof(struct ResupplyReceivedPdu,supplies), },
691 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
692};
693struct disfieldattr FIELDS_WarfareFamilyPdu [] = {
694 {CLASSREF, type_Pdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct Pdu), 0 },
695 {CLASSREF, type_EntityID, "firingEntityID", "ID of the entity that shot", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct WarfareFamilyPdu,firingEntityID), },
696 {CLASSREF, type_EntityID, "targetEntityID", "ID of the entity that is being shot at", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct WarfareFamilyPdu,targetEntityID), },
697 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
698};
699struct disfieldattr FIELDS_ElectronicEmissionSystemData [] = {
700 {PRIMITIVE, type_UBYTE, "systemDataLength", "This field shall specify the length of this emitter system's data (including beam data and its track/jam information) in 32-bit words. The length shall include the System Data Length field. ", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ElectronicEmissionSystemData,systemDataLength), },
701 {PRIMITIVE, type_UBYTE, "numberOfBeams", "This field shall specify the number of beams being described in the current PDU for the system being described. ", 0, NULL, 0, type_ElectronicEmissionBeamData, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ElectronicEmissionSystemData,numberOfBeams), },
702 {PRIMITIVE, type_USHORT, "emissionsPadding2", "padding.", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ElectronicEmissionSystemData,emissionsPadding2), },
703 {CLASSREF, type_EmitterSystem, "emitterSystem", "This field shall specify information about a particular emitter system", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EmitterSystem), offsetof(struct ElectronicEmissionSystemData,emitterSystem), },
704 {CLASSREF, type_Vector3Float, "location", "Location with respect to the entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct ElectronicEmissionSystemData,location), },
705 {VARIABLE_LIST, type_ElectronicEmissionBeamData, "beamDataRecords", "variable length list of beam data records", 0, "numberOfBeams", 1, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct ElectronicEmissionBeamData), offsetof(struct ElectronicEmissionSystemData,beamDataRecords), },
706 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
707};
708struct disfieldattr FIELDS_ActionRequestPdu [] = {
709 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
710 {PRIMITIVE, type_UINT, "requestID", "Request ID that is unique", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionRequestPdu,requestID), },
711 {PRIMITIVE, type_UINT, "actionID", "identifies the action being requested", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionRequestPdu,actionID), },
712 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Number of fixed datum records", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionRequestPdu,numberOfFixedDatumRecords), },
713 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "Number of variable datum records", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionRequestPdu,numberOfVariableDatumRecords), },
714 {VARIABLE_LIST, type_FixedDatum, "fixedDatums", "variable length list of fixed datums", 0, "numberOfFixedDatumRecords", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct ActionRequestPdu,fixedDatums), },
715 {VARIABLE_LIST, type_VariableDatum, "variableDatums", "variable length list of variable length datums", 0, "numberOfVariableDatumRecords", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct ActionRequestPdu,variableDatums), },
716 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
717};
718struct disfieldattr FIELDS_SupplyQuantity [] = {
719 {CLASSREF, type_EntityType, "supplyType", "Type of supply", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct SupplyQuantity,supplyType), },
720 {PRIMITIVE, type_UBYTE, "quantity", "quantity to be supplied", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct SupplyQuantity,quantity), },
721 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
722};
723struct disfieldattr FIELDS_AcknowledgePdu [] = {
724 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
725 {PRIMITIVE, type_USHORT, "acknowledgeFlag", "type of message being acknowledged", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AcknowledgePdu,acknowledgeFlag), },
726 {PRIMITIVE, type_USHORT, "responseFlag", "Whether or not the receiving entity was able to comply with the request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AcknowledgePdu,responseFlag), },
727 {PRIMITIVE, type_UINT, "requestID", "Request ID that is unique", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct AcknowledgePdu,requestID), },
728 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
729};
730struct disfieldattr FIELDS_DistributedEmissionsFamilyPdu [] = {
731 {CLASSREF, type_Pdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct Pdu), 0 },
732 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
733};
734struct disfieldattr FIELDS_IffAtcNavAidsLayer1Pdu [] = {
735 {CLASSREF, type_DistributedEmissionsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct DistributedEmissionsFamilyPdu), 0 },
736 {CLASSREF, type_EntityID, "emittingEntityId", "ID of the entity that is the source of the emissions", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct IffAtcNavAidsLayer1Pdu,emittingEntityId), },
737 {CLASSREF, type_EventID, "eventID", "Number generated by the issuing simulation to associate realted events.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EventID), offsetof(struct IffAtcNavAidsLayer1Pdu,eventID), },
738 {CLASSREF, type_Vector3Float, "location", "Location wrt entity. There is some ambugiuity in the standard here, but this is the order it is listed in the table.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct IffAtcNavAidsLayer1Pdu,location), },
739 {CLASSREF, type_SystemID, "systemID", "System ID information", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct SystemID), offsetof(struct IffAtcNavAidsLayer1Pdu,systemID), },
740 {PRIMITIVE, type_USHORT, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IffAtcNavAidsLayer1Pdu,pad2), },
741 {CLASSREF, type_IffFundamentalData, "fundamentalParameters", "fundamental parameters", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct IffFundamentalData), offsetof(struct IffAtcNavAidsLayer1Pdu,fundamentalParameters), },
742 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
743};
744struct disfieldattr FIELDS_SimulationManagementWithReliabilityFamilyPdu [] = {
745 {CLASSREF, type_Pdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct Pdu), 0 },
746 {CLASSREF, type_EntityID, "originatingEntityID", "Object originatig the request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct SimulationManagementWithReliabilityFamilyPdu,originatingEntityID), },
747 {CLASSREF, type_EntityID, "receivingEntityID", "Object with which this point object is associated", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct SimulationManagementWithReliabilityFamilyPdu,receivingEntityID), },
748 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
749};
750struct disfieldattr FIELDS_ActionRequestReliablePdu [] = {
751 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
752 {PRIMITIVE, type_UBYTE, "requiredReliabilityService", "level of reliability service used for this transaction", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ActionRequestReliablePdu,requiredReliabilityService), },
753 {PRIMITIVE, type_USHORT, "pad1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ActionRequestReliablePdu,pad1), },
754 {PRIMITIVE, type_UBYTE, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ActionRequestReliablePdu,pad2), },
755 {PRIMITIVE, type_UINT, "requestID", "request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionRequestReliablePdu,requestID), },
756 {PRIMITIVE, type_UINT, "actionID", "request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionRequestReliablePdu,actionID), },
757 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Fixed datum record count", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionRequestReliablePdu,numberOfFixedDatumRecords), },
758 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "variable datum record count", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionRequestReliablePdu,numberOfVariableDatumRecords), },
759 {VARIABLE_LIST, type_FixedDatum, "fixedDatumRecords", "Fixed datum records", 0, "numberOfFixedDatumRecords", 6, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct ActionRequestReliablePdu,fixedDatumRecords), },
760 {VARIABLE_LIST, type_VariableDatum, "variableDatumRecords", "Variable datum records", 0, "numberOfVariableDatumRecords", 7, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct ActionRequestReliablePdu,variableDatumRecords), },
761 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
762};
763struct disfieldattr FIELDS_DesignatorPdu [] = {
764 {CLASSREF, type_DistributedEmissionsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct DistributedEmissionsFamilyPdu), 0 },
765 {CLASSREF, type_EntityID, "designatingEntityID", "ID of the entity designating", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct DesignatorPdu,designatingEntityID), },
766 {PRIMITIVE, type_USHORT, "codeName", "This field shall specify a unique emitter database number assigned to differentiate between otherwise similar or identical emitter beams within an emitter system.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct DesignatorPdu,codeName), },
767 {CLASSREF, type_EntityID, "designatedEntityID", "ID of the entity being designated", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct DesignatorPdu,designatedEntityID), },
768 {PRIMITIVE, type_USHORT, "designatorCode", "This field shall identify the designator code being used by the designating entity ", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct DesignatorPdu,designatorCode), },
769 {PRIMITIVE, type_FLOAT, "designatorPower", "This field shall identify the designator output power in watts", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct DesignatorPdu,designatorPower), },
770 {PRIMITIVE, type_FLOAT, "designatorWavelength", "This field shall identify the designator wavelength in units of microns", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct DesignatorPdu,designatorWavelength), },
771 {CLASSREF, type_Vector3Float, "designatorSpotWrtDesignated", "designtor spot wrt the designated entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct DesignatorPdu,designatorSpotWrtDesignated), },
772 {CLASSREF, type_Vector3Double, "designatorSpotLocation", "designtor spot wrt the designated entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct DesignatorPdu,designatorSpotLocation), },
773 {PRIMITIVE, type_BYTE, "deadReckoningAlgorithm", "Dead reckoning algorithm", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(char), offsetof(struct DesignatorPdu,deadReckoningAlgorithm), },
774 {PRIMITIVE, type_USHORT, "padding1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct DesignatorPdu,padding1), },
775 {PRIMITIVE, type_BYTE, "padding2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(char), offsetof(struct DesignatorPdu,padding2), },
776 {CLASSREF, type_Vector3Float, "entityLinearAcceleration", "linear accelleration of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct DesignatorPdu,entityLinearAcceleration), },
777 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
778};
779struct disfieldattr FIELDS_GriddedDataPdu [] = {
780 {CLASSREF, type_SyntheticEnvironmentFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SyntheticEnvironmentFamilyPdu), 0 },
781 {CLASSREF, type_EntityID, "environmentalSimulationApplicationID", "environmental simulation application ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct GriddedDataPdu,environmentalSimulationApplicationID), },
782 {PRIMITIVE, type_USHORT, "fieldNumber", "unique identifier for each piece of enviornmental data", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct GriddedDataPdu,fieldNumber), },
783 {PRIMITIVE, type_USHORT, "pduNumber", "sequence number for the total set of PDUS used to transmit the data", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct GriddedDataPdu,pduNumber), },
784 {PRIMITIVE, type_USHORT, "pduTotal", "Total number of PDUS used to transmit the data", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct GriddedDataPdu,pduTotal), },
785 {PRIMITIVE, type_USHORT, "coordinateSystem", "coordinate system of the grid", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct GriddedDataPdu,coordinateSystem), },
786 {PRIMITIVE, type_UBYTE, "numberOfGridAxes", "number of grid axes for the environmental data", 0, NULL, 0, type_GridAxisRecord, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct GriddedDataPdu,numberOfGridAxes), },
787 {PRIMITIVE, type_UBYTE, "constantGrid", "are domain grid axes identidal to those of the priveious domain update?", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct GriddedDataPdu,constantGrid), },
788 {CLASSREF, type_EntityType, "environmentType", "type of environment", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct GriddedDataPdu,environmentType), },
789 {CLASSREF, type_Orientation, "orientation", "orientation of the data grid", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Orientation), offsetof(struct GriddedDataPdu,orientation), },
790 {PRIMITIVE, type_LONG, "sampleTime", "valid time of the enviormental data sample, 64 bit unsigned int", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(long long), offsetof(struct GriddedDataPdu,sampleTime), },
791 {PRIMITIVE, type_UINT, "totalValues", "total number of all data values for all pdus for an environmental sample", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct GriddedDataPdu,totalValues), },
792 {PRIMITIVE, type_UBYTE, "vectorDimension", "total number of data values at each grid point.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct GriddedDataPdu,vectorDimension), },
793 {PRIMITIVE, type_USHORT, "padding1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct GriddedDataPdu,padding1), },
794 {PRIMITIVE, type_UBYTE, "padding2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct GriddedDataPdu,padding2), },
795 {VARIABLE_LIST, type_GridAxisRecord, "gridDataList", "Grid data ^^^This is wrong", 0, "numberOfGridAxes", 6, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct GridAxisRecord), offsetof(struct GriddedDataPdu,gridDataList), },
796 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
797};
798struct disfieldattr FIELDS_SetRecordReliablePdu [] = {
799 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
800 {PRIMITIVE, type_UINT, "requestID", "request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct SetRecordReliablePdu,requestID), },
801 {PRIMITIVE, type_UBYTE, "requiredReliabilityService", "level of reliability service used for this transaction", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct SetRecordReliablePdu,requiredReliabilityService), },
802 {PRIMITIVE, type_USHORT, "pad1", "padding. The spec is unclear and contradictory here.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SetRecordReliablePdu,pad1), },
803 {PRIMITIVE, type_UBYTE, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct SetRecordReliablePdu,pad2), },
804 {PRIMITIVE, type_UINT, "numberOfRecordSets", "Number of record sets in list", 0, NULL, 0, type_RecordSet, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct SetRecordReliablePdu,numberOfRecordSets), },
805 {VARIABLE_LIST, type_RecordSet, "recordSets", "record sets", 0, "numberOfRecordSets", 5, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct RecordSet), offsetof(struct SetRecordReliablePdu,recordSets), },
806 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
807};
808struct disfieldattr FIELDS_StopFreezePdu [] = {
809 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
810 {CLASSREF, type_ClockTime, "realWorldTime", "UTC time at which the simulation shall stop or freeze", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct ClockTime), offsetof(struct StopFreezePdu,realWorldTime), },
811 {PRIMITIVE, type_UBYTE, "reason", "Reason the simulation was stopped or frozen", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct StopFreezePdu,reason), },
812 {PRIMITIVE, type_UBYTE, "frozenBehavior", "Internal behavior of the simulation and its appearance while frozento the other participants", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct StopFreezePdu,frozenBehavior), },
813 {PRIMITIVE, type_SHORT, "padding1", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(short), offsetof(struct StopFreezePdu,padding1), },
814 {PRIMITIVE, type_UINT, "requestID", "Request ID that is unique", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct StopFreezePdu,requestID), },
815 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
816};
817struct disfieldattr FIELDS_ResupplyCancelPdu [] = {
818 {CLASSREF, type_LogisticsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct LogisticsFamilyPdu), 0 },
819 {CLASSREF, type_EntityID, "receivingEntityID", "Entity that is receiving service", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ResupplyCancelPdu,receivingEntityID), },
820 {CLASSREF, type_EntityID, "supplyingEntityID", "Entity that is supplying", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ResupplyCancelPdu,supplyingEntityID), },
821 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
822};
823struct disfieldattr FIELDS_EntityManagementFamilyPdu [] = {
824 {CLASSREF, type_Pdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct Pdu), 0 },
825 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
826};
827struct disfieldattr FIELDS_StartResumePdu [] = {
828 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
829 {CLASSREF, type_ClockTime, "realWorldTime", "UTC time at which the simulation shall start or resume", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct ClockTime), offsetof(struct StartResumePdu,realWorldTime), },
830 {CLASSREF, type_ClockTime, "simulationTime", "Simulation clock time at which the simulation shall start or resume", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct ClockTime), offsetof(struct StartResumePdu,simulationTime), },
831 {PRIMITIVE, type_UINT, "requestID", "Identifier for the request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct StartResumePdu,requestID), },
832 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
833};
834struct disfieldattr FIELDS_TransmitterPdu [] = {
835 {CLASSREF, type_RadioCommunicationsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct RadioCommunicationsFamilyPdu), 0 },
836 {CLASSREF, type_RadioEntityType, "radioEntityType", "linear accelleration of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct RadioEntityType), offsetof(struct TransmitterPdu,radioEntityType), },
837 {PRIMITIVE, type_UBYTE, "transmitState", "transmit state", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct TransmitterPdu,transmitState), },
838 {PRIMITIVE, type_UBYTE, "inputSource", "input source", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct TransmitterPdu,inputSource), },
839 {PRIMITIVE, type_USHORT, "padding1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct TransmitterPdu,padding1), },
840 {CLASSREF, type_Vector3Double, "antennaLocation", "Location of antenna", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct TransmitterPdu,antennaLocation), },
841 {CLASSREF, type_Vector3Float, "relativeAntennaLocation", "relative location of antenna", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct TransmitterPdu,relativeAntennaLocation), },
842 {PRIMITIVE, type_USHORT, "antennaPatternType", "antenna pattern type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct TransmitterPdu,antennaPatternType), },
843 {PRIMITIVE, type_USHORT, "antennaPatternCount", "atenna pattern length", 0, NULL, 0, type_Vector3Float, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct TransmitterPdu,antennaPatternCount), },
844 {PRIMITIVE, type_ULONG, "frequency", "frequency", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned long long), offsetof(struct TransmitterPdu,frequency), },
845 {PRIMITIVE, type_FLOAT, "transmitFrequencyBandwidth", "transmit frequency Bandwidth", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct TransmitterPdu,transmitFrequencyBandwidth), },
846 {PRIMITIVE, type_FLOAT, "power", "transmission power", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct TransmitterPdu,power), },
847 {CLASSREF, type_ModulationType, "modulationType", "modulation", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct ModulationType), offsetof(struct TransmitterPdu,modulationType), },
848 {PRIMITIVE, type_USHORT, "cryptoSystem", "crypto system enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct TransmitterPdu,cryptoSystem), },
849 {PRIMITIVE, type_USHORT, "cryptoKeyId", "crypto system key identifer", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct TransmitterPdu,cryptoKeyId), },
850 {PRIMITIVE, type_UBYTE, "modulationParameterCount", "how many modulation parameters we have", 0, NULL, 0, type_Vector3Float, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct TransmitterPdu,modulationParameterCount), },
851 {PRIMITIVE, type_USHORT, "padding2", "padding2", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct TransmitterPdu,padding2), },
852 {PRIMITIVE, type_UBYTE, "padding3", "padding3", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct TransmitterPdu,padding3), },
853 {VARIABLE_LIST, type_Vector3Float, "modulationParametersList", "variable length list of modulation parameters", 0, "modulationParameterCount", 15, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct TransmitterPdu,modulationParametersList), },
854 {VARIABLE_LIST, type_Vector3Float, "antennaPatternList", "variable length list of antenna pattern records", 0, "antennaPatternCount", 8, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct TransmitterPdu,antennaPatternList), },
855 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
856};
857struct disfieldattr FIELDS_TrackJamTarget [] = {
858 {CLASSREF, type_EntityID, "trackJam", "track/jam target", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct TrackJamTarget,trackJam), },
859 {PRIMITIVE, type_UBYTE, "emitterID", "Emitter ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct TrackJamTarget,emitterID), },
860 {PRIMITIVE, type_UBYTE, "beamID", "beam ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct TrackJamTarget,beamID), },
861 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
862};
863struct disfieldattr FIELDS_ElectronicEmissionsPdu [] = {
864 {CLASSREF, type_DistributedEmissionsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct DistributedEmissionsFamilyPdu), 0 },
865 {CLASSREF, type_EntityID, "emittingEntityID", "ID of the entity emitting", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ElectronicEmissionsPdu,emittingEntityID), },
866 {CLASSREF, type_EventID, "eventID", "ID of event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EventID), offsetof(struct ElectronicEmissionsPdu,eventID), },
867 {PRIMITIVE, type_UBYTE, "stateUpdateIndicator", "This field shall be used to indicate if the data in the PDU represents a state update or just data that has changed since issuance of the last Electromagnetic Emission PDU [relative to the identified entity and emission system(s)].", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ElectronicEmissionsPdu,stateUpdateIndicator), },
868 {PRIMITIVE, type_UBYTE, "numberOfSystems", "This field shall specify the number of emission systems being described in the current PDU.", 0, NULL, 0, type_ElectronicEmissionSystemData, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ElectronicEmissionsPdu,numberOfSystems), },
869 {PRIMITIVE, type_USHORT, "paddingForEmissionsPdu", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ElectronicEmissionsPdu,paddingForEmissionsPdu), },
870 {VARIABLE_LIST, type_ElectronicEmissionSystemData, "systems", "Electronic emmissions systems", 0, "numberOfSystems", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct ElectronicEmissionSystemData), offsetof(struct ElectronicEmissionsPdu,systems), },
871 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
872};
873struct disfieldattr FIELDS_ResupplyOfferPdu [] = {
874 {CLASSREF, type_LogisticsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct LogisticsFamilyPdu), 0 },
875 {CLASSREF, type_EntityID, "receivingEntityID", "Entity that is receiving service", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ResupplyOfferPdu,receivingEntityID), },
876 {CLASSREF, type_EntityID, "supplyingEntityID", "Entity that is supplying", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ResupplyOfferPdu,supplyingEntityID), },
877 {PRIMITIVE, type_UBYTE, "numberOfSupplyTypes", "how many supplies are being offered", 0, NULL, 0, type_SupplyQuantity, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ResupplyOfferPdu,numberOfSupplyTypes), },
878 {PRIMITIVE, type_SHORT, "padding1", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(short), offsetof(struct ResupplyOfferPdu,padding1), },
879 {PRIMITIVE, type_BYTE, "padding2", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(char), offsetof(struct ResupplyOfferPdu,padding2), },
880 {VARIABLE_LIST, type_SupplyQuantity, "supplies", NULL, 0, "numberOfSupplyTypes", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct SupplyQuantity), offsetof(struct ResupplyOfferPdu,supplies), },
881 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
882};
883struct disfieldattr FIELDS_MinefieldFamilyPdu [] = {
884 {CLASSREF, type_Pdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct Pdu), 0 },
885 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
886};
887struct disfieldattr FIELDS_SetDataReliablePdu [] = {
888 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
889 {PRIMITIVE, type_UBYTE, "requiredReliabilityService", "level of reliability service used for this transaction", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct SetDataReliablePdu,requiredReliabilityService), },
890 {PRIMITIVE, type_USHORT, "pad1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SetDataReliablePdu,pad1), },
891 {PRIMITIVE, type_UBYTE, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct SetDataReliablePdu,pad2), },
892 {PRIMITIVE, type_UINT, "requestID", "Request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct SetDataReliablePdu,requestID), },
893 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Fixed datum record count", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct SetDataReliablePdu,numberOfFixedDatumRecords), },
894 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "variable datum record count", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct SetDataReliablePdu,numberOfVariableDatumRecords), },
895 {VARIABLE_LIST, type_FixedDatum, "fixedDatumRecords", "Fixed datum records", 0, "numberOfFixedDatumRecords", 5, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct SetDataReliablePdu,fixedDatumRecords), },
896 {VARIABLE_LIST, type_VariableDatum, "variableDatumRecords", "Variable datum records", 0, "numberOfVariableDatumRecords", 6, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct SetDataReliablePdu,variableDatumRecords), },
897 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
898};
899struct disfieldattr FIELDS_EventReportPdu [] = {
900 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
901 {PRIMITIVE, type_UINT, "eventType", "Type of event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct EventReportPdu,eventType), },
902 {PRIMITIVE, type_UINT, "padding1", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct EventReportPdu,padding1), },
903 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Number of fixed datum records", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct EventReportPdu,numberOfFixedDatumRecords), },
904 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "Number of variable datum records", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct EventReportPdu,numberOfVariableDatumRecords), },
905 {VARIABLE_LIST, type_FixedDatum, "fixedDatums", "variable length list of fixed datums", 0, "numberOfFixedDatumRecords", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct EventReportPdu,fixedDatums), },
906 {VARIABLE_LIST, type_VariableDatum, "variableDatums", "variable length list of variable length datums", 0, "numberOfVariableDatumRecords", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct EventReportPdu,variableDatums), },
907 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
908};
909struct disfieldattr FIELDS_PointObjectStatePdu [] = {
910 {CLASSREF, type_SyntheticEnvironmentFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SyntheticEnvironmentFamilyPdu), 0 },
911 {CLASSREF, type_EntityID, "objectID", "Object in synthetic environment", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct PointObjectStatePdu,objectID), },
912 {CLASSREF, type_EntityID, "referencedObjectID", "Object with which this point object is associated", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct PointObjectStatePdu,referencedObjectID), },
913 {PRIMITIVE, type_USHORT, "updateNumber", "unique update number of each state transition of an object", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct PointObjectStatePdu,updateNumber), },
914 {PRIMITIVE, type_UBYTE, "forceID", "force ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct PointObjectStatePdu,forceID), },
915 {PRIMITIVE, type_UBYTE, "modifications", "modifications", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct PointObjectStatePdu,modifications), },
916 {CLASSREF, type_ObjectType, "objectType", "Object type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct ObjectType), offsetof(struct PointObjectStatePdu,objectType), },
917 {CLASSREF, type_Vector3Double, "objectLocation", "Object location", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct PointObjectStatePdu,objectLocation), },
918 {CLASSREF, type_Orientation, "objectOrientation", "Object orientation", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Orientation), offsetof(struct PointObjectStatePdu,objectOrientation), },
919 {PRIMITIVE, type_DOUBLE, "objectAppearance", "Object apperance", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(double), offsetof(struct PointObjectStatePdu,objectAppearance), },
920 {CLASSREF, type_SimulationAddress, "requesterID", "requesterID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct SimulationAddress), offsetof(struct PointObjectStatePdu,requesterID), },
921 {CLASSREF, type_SimulationAddress, "receivingID", "receiver ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct SimulationAddress), offsetof(struct PointObjectStatePdu,receivingID), },
922 {PRIMITIVE, type_UINT, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct PointObjectStatePdu,pad2), },
923 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
924};
925struct disfieldattr FIELDS_EnvironmentalProcessPdu [] = {
926 {CLASSREF, type_SyntheticEnvironmentFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SyntheticEnvironmentFamilyPdu), 0 },
927 {CLASSREF, type_EntityID, "environementalProcessID", "Environmental process ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct EnvironmentalProcessPdu,environementalProcessID), },
928 {CLASSREF, type_EntityType, "environmentType", "Environment type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct EnvironmentalProcessPdu,environmentType), },
929 {PRIMITIVE, type_UBYTE, "modelType", "model type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EnvironmentalProcessPdu,modelType), },
930 {PRIMITIVE, type_UBYTE, "environmentStatus", "Environment status", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EnvironmentalProcessPdu,environmentStatus), },
931 {PRIMITIVE, type_UBYTE, "numberOfEnvironmentRecords", "number of environment records ", 0, NULL, 0, type_Environment, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EnvironmentalProcessPdu,numberOfEnvironmentRecords), },
932 {PRIMITIVE, type_USHORT, "sequenceNumber", "PDU sequence number for the environmentla process if pdu sequencing required", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct EnvironmentalProcessPdu,sequenceNumber), },
933 {VARIABLE_LIST, type_Environment, "environmentRecords", "environemt records", 0, "numberOfEnvironmentRecords", 5, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct Environment), offsetof(struct EnvironmentalProcessPdu,environmentRecords), },
934 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
935};
936struct disfieldattr FIELDS_DataPdu [] = {
937 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
938 {PRIMITIVE, type_UINT, "requestID", "ID of request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataPdu,requestID), },
939 {PRIMITIVE, type_UINT, "padding1", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataPdu,padding1), },
940 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Number of fixed datum records", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataPdu,numberOfFixedDatumRecords), },
941 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "Number of variable datum records", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataPdu,numberOfVariableDatumRecords), },
942 {VARIABLE_LIST, type_FixedDatum, "fixedDatums", "variable length list of fixed datums", 0, "numberOfFixedDatumRecords", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct DataPdu,fixedDatums), },
943 {VARIABLE_LIST, type_VariableDatum, "variableDatums", "variable length list of variable length datums", 0, "numberOfVariableDatumRecords", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct DataPdu,variableDatums), },
944 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
945};
946struct disfieldattr FIELDS_IsGroupOfPdu [] = {
947 {CLASSREF, type_EntityManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct EntityManagementFamilyPdu), 0 },
948 {CLASSREF, type_EntityID, "groupEntityID", "ID of aggregated entities", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct IsGroupOfPdu,groupEntityID), },
949 {PRIMITIVE, type_UBYTE, "groupedEntityCategory", "type of entities constituting the group", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IsGroupOfPdu,groupedEntityCategory), },
950 {PRIMITIVE, type_UBYTE, "numberOfGroupedEntities", "Number of individual entities constituting the group", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IsGroupOfPdu,numberOfGroupedEntities), },
951 {PRIMITIVE, type_UINT, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct IsGroupOfPdu,pad2), },
952 {PRIMITIVE, type_DOUBLE, "latitude", "latitude", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(double), offsetof(struct IsGroupOfPdu,latitude), },
953 {PRIMITIVE, type_DOUBLE, "longitude", "longitude", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(double), offsetof(struct IsGroupOfPdu,longitude), },
954 {VARIABLE_LIST, type_VariableDatum, "groupedEntityDescriptions", "GED records about each individual entity in the group. ^^^this is wrong--need a database lookup to find the actual size of the list elements", 0, "numberOfGroupedEntities", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct IsGroupOfPdu,groupedEntityDescriptions), },
955 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
956};
957struct disfieldattr FIELDS_MinefieldDataPdu [] = {
958 {CLASSREF, type_MinefieldFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct MinefieldFamilyPdu), 0 },
959 {CLASSREF, type_EntityID, "minefieldID", "Minefield ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct MinefieldDataPdu,minefieldID), },
960 {CLASSREF, type_EntityID, "requestingEntityID", "ID of entity making request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct MinefieldDataPdu,requestingEntityID), },
961 {PRIMITIVE, type_USHORT, "minefieldSequenceNumbeer", "Minefield sequence number", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct MinefieldDataPdu,minefieldSequenceNumbeer), },
962 {PRIMITIVE, type_UBYTE, "requestID", "request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldDataPdu,requestID), },
963 {PRIMITIVE, type_UBYTE, "pduSequenceNumber", "pdu sequence number", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldDataPdu,pduSequenceNumber), },
964 {PRIMITIVE, type_UBYTE, "numberOfPdus", "number of pdus in response", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldDataPdu,numberOfPdus), },
965 {PRIMITIVE, type_UBYTE, "numberOfMinesInThisPdu", "how many mines are in this PDU", 0, NULL, 0, type_Vector3Float, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldDataPdu,numberOfMinesInThisPdu), },
966 {PRIMITIVE, type_UBYTE, "numberOfSensorTypes", "how many sensor type are in this PDU", 0, NULL, 0, type_TwoByteChunk, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldDataPdu,numberOfSensorTypes), },
967 {PRIMITIVE, type_UBYTE, "pad2", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldDataPdu,pad2), },
968 {PRIMITIVE, type_UINT, "dataFilter", "32 boolean fields", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct MinefieldDataPdu,dataFilter), },
969 {CLASSREF, type_EntityType, "mineType", "Mine type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct MinefieldDataPdu,mineType), },
970 {VARIABLE_LIST, type_TwoByteChunk, "sensorTypes", "Sensor types, each 16 bits long", 0, "numberOfSensorTypes", 8, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct TwoByteChunk), offsetof(struct MinefieldDataPdu,sensorTypes), },
971 {PRIMITIVE, type_UBYTE, "pad3", "Padding to get things 32-bit aligned. ^^^this is wrong--dyanmically sized padding needed", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldDataPdu,pad3), },
972 {VARIABLE_LIST, type_Vector3Float, "mineLocation", "Mine locations", 0, "numberOfMinesInThisPdu", 7, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct MinefieldDataPdu,mineLocation), },
973 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
974};
975struct disfieldattr FIELDS_TransferControlRequestPdu [] = {
976 {CLASSREF, type_EntityManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct EntityManagementFamilyPdu), 0 },
977 {CLASSREF, type_EntityID, "orginatingEntityID", "ID of entity originating request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct TransferControlRequestPdu,orginatingEntityID), },
978 {CLASSREF, type_EntityID, "recevingEntityID", "ID of entity receiving request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct TransferControlRequestPdu,recevingEntityID), },
979 {PRIMITIVE, type_UINT, "requestID", "ID ofrequest", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct TransferControlRequestPdu,requestID), },
980 {PRIMITIVE, type_UBYTE, "requiredReliabilityService", "required level of reliabliity service.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct TransferControlRequestPdu,requiredReliabilityService), },
981 {PRIMITIVE, type_UBYTE, "tranferType", "type of transfer desired", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct TransferControlRequestPdu,tranferType), },
982 {CLASSREF, type_EntityID, "transferEntityID", "The entity for which control is being requested to transfer", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct TransferControlRequestPdu,transferEntityID), },
983 {PRIMITIVE, type_UBYTE, "numberOfRecordSets", "number of record sets to transfer", 0, NULL, 0, type_RecordSet, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct TransferControlRequestPdu,numberOfRecordSets), },
984 {VARIABLE_LIST, type_RecordSet, "recordSets", "^^^This is wrong--the RecordSet class needs more work", 0, "numberOfRecordSets", 7, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct RecordSet), offsetof(struct TransferControlRequestPdu,recordSets), },
985 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
986};
987struct disfieldattr FIELDS_EntityInformationFamilyPdu [] = {
988 {CLASSREF, type_Pdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct Pdu), 0 },
989 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
990};
991struct disfieldattr FIELDS_AcknowledgeReliablePdu [] = {
992 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
993 {PRIMITIVE, type_USHORT, "acknowledgeFlag", "ack flags", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AcknowledgeReliablePdu,acknowledgeFlag), },
994 {PRIMITIVE, type_USHORT, "responseFlag", "response flags", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AcknowledgeReliablePdu,responseFlag), },
995 {PRIMITIVE, type_UINT, "requestID", "Request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct AcknowledgeReliablePdu,requestID), },
996 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
997};
998struct disfieldattr FIELDS_StartResumeReliablePdu [] = {
999 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
1000 {CLASSREF, type_ClockTime, "realWorldTime", "time in real world for this operation to happen", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct ClockTime), offsetof(struct StartResumeReliablePdu,realWorldTime), },
1001 {CLASSREF, type_ClockTime, "simulationTime", "time in simulation for the simulation to resume", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct ClockTime), offsetof(struct StartResumeReliablePdu,simulationTime), },
1002 {PRIMITIVE, type_UBYTE, "requiredReliabilityService", "level of reliability service used for this transaction", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct StartResumeReliablePdu,requiredReliabilityService), },
1003 {PRIMITIVE, type_USHORT, "pad1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct StartResumeReliablePdu,pad1), },
1004 {PRIMITIVE, type_UBYTE, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct StartResumeReliablePdu,pad2), },
1005 {PRIMITIVE, type_UINT, "requestID", "Request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct StartResumeReliablePdu,requestID), },
1006 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1007};
1008struct disfieldattr FIELDS_IffAtcNavAidsLayer2Pdu [] = {
1009 {CLASSREF, type_IffAtcNavAidsLayer1Pdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct IffAtcNavAidsLayer1Pdu), 0 },
1010 {CLASSREF, type_LayerHeader, "layerHeader", "layer header", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct LayerHeader), offsetof(struct IffAtcNavAidsLayer2Pdu,layerHeader), },
1011 {CLASSREF, type_BeamData, "beamData", "beam data", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct BeamData), offsetof(struct IffAtcNavAidsLayer2Pdu,beamData), },
1012 {CLASSREF, type_BeamData, "secondaryOperationalData", "Secondary operational data, 5.2.57", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct BeamData), offsetof(struct IffAtcNavAidsLayer2Pdu,secondaryOperationalData), },
1013 {VARIABLE_LIST, type_FundamentalParameterDataIff, "fundamentalIffParameters", "variable length list of fundamental parameters. ^^^This is wrong", 0, "pad2", 0, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FundamentalParameterDataIff), offsetof(struct IffAtcNavAidsLayer2Pdu,fundamentalIffParameters), },
1014 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1015};
1016struct disfieldattr FIELDS_ArealObjectStatePdu [] = {
1017 {CLASSREF, type_SyntheticEnvironmentFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SyntheticEnvironmentFamilyPdu), 0 },
1018 {CLASSREF, type_EntityID, "objectID", "Object in synthetic environment", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ArealObjectStatePdu,objectID), },
1019 {CLASSREF, type_EntityID, "referencedObjectID", "Object with which this point object is associated", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ArealObjectStatePdu,referencedObjectID), },
1020 {PRIMITIVE, type_USHORT, "updateNumber", "unique update number of each state transition of an object", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ArealObjectStatePdu,updateNumber), },
1021 {PRIMITIVE, type_UBYTE, "forceID", "force ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ArealObjectStatePdu,forceID), },
1022 {PRIMITIVE, type_UBYTE, "modifications", "modifications enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct ArealObjectStatePdu,modifications), },
1023 {CLASSREF, type_EntityType, "objectType", "Object type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct ArealObjectStatePdu,objectType), },
1024 {CLASSREF, type_SixByteChunk, "objectAppearance", "Object appearance", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct SixByteChunk), offsetof(struct ArealObjectStatePdu,objectAppearance), },
1025 {PRIMITIVE, type_USHORT, "numberOfPoints", "Number of points", 0, NULL, 0, type_Vector3Double, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ArealObjectStatePdu,numberOfPoints), },
1026 {CLASSREF, type_SimulationAddress, "requesterID", "requesterID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct SimulationAddress), offsetof(struct ArealObjectStatePdu,requesterID), },
1027 {CLASSREF, type_SimulationAddress, "receivingID", "receiver ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct SimulationAddress), offsetof(struct ArealObjectStatePdu,receivingID), },
1028 {VARIABLE_LIST, type_Vector3Double, "objectLocation", "location of object", 0, "numberOfPoints", 8, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct ArealObjectStatePdu,objectLocation), },
1029 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1030};
1031struct disfieldattr FIELDS_DataQueryReliablePdu [] = {
1032 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
1033 {PRIMITIVE, type_UBYTE, "requiredReliabilityService", "level of reliability service used for this transaction", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct DataQueryReliablePdu,requiredReliabilityService), },
1034 {PRIMITIVE, type_USHORT, "pad1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct DataQueryReliablePdu,pad1), },
1035 {PRIMITIVE, type_UBYTE, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct DataQueryReliablePdu,pad2), },
1036 {PRIMITIVE, type_UINT, "requestID", "request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataQueryReliablePdu,requestID), },
1037 {PRIMITIVE, type_UINT, "timeInterval", "time interval between issuing data query PDUs", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataQueryReliablePdu,timeInterval), },
1038 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Fixed datum record count", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataQueryReliablePdu,numberOfFixedDatumRecords), },
1039 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "variable datum record count", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataQueryReliablePdu,numberOfVariableDatumRecords), },
1040 {VARIABLE_LIST, type_FixedDatum, "fixedDatumRecords", "Fixed datum records", 0, "numberOfFixedDatumRecords", 6, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct DataQueryReliablePdu,fixedDatumRecords), },
1041 {VARIABLE_LIST, type_VariableDatum, "variableDatumRecords", "Variable datum records", 0, "numberOfVariableDatumRecords", 7, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct DataQueryReliablePdu,variableDatumRecords), },
1042 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1043};
1044struct disfieldattr FIELDS_AggregateStatePdu [] = {
1045 {CLASSREF, type_EntityManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct EntityManagementFamilyPdu), 0 },
1046 {CLASSREF, type_EntityID, "aggregateID", "ID of aggregated entities", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct AggregateStatePdu,aggregateID), },
1047 {PRIMITIVE, type_UBYTE, "forceID", "force ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AggregateStatePdu,forceID), },
1048 {PRIMITIVE, type_UBYTE, "aggregateState", "state of aggregate", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AggregateStatePdu,aggregateState), },
1049 {CLASSREF, type_EntityType, "aggregateType", "entity type of the aggregated entities", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct AggregateStatePdu,aggregateType), },
1050 {PRIMITIVE, type_UINT, "formation", "formation of aggregated entities", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct AggregateStatePdu,formation), },
1051 {CLASSREF, type_AggregateMarking, "aggregateMarking", "marking for aggregate; first char is charset type, rest is char data", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct AggregateMarking), offsetof(struct AggregateStatePdu,aggregateMarking), },
1052 {CLASSREF, type_Vector3Float, "dimensions", "dimensions of bounding box for the aggregated entities, origin at the center of mass", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct AggregateStatePdu,dimensions), },
1053 {CLASSREF, type_Orientation, "orientation", "orientation of the bounding box", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Orientation), offsetof(struct AggregateStatePdu,orientation), },
1054 {CLASSREF, type_Vector3Double, "centerOfMass", "center of mass of the aggregation", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct AggregateStatePdu,centerOfMass), },
1055 {CLASSREF, type_Vector3Float, "velocity", "velocity of aggregation", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct AggregateStatePdu,velocity), },
1056 {PRIMITIVE, type_USHORT, "numberOfDisAggregates", "number of aggregates", 0, NULL, 0, type_AggregateID, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AggregateStatePdu,numberOfDisAggregates), },
1057 {PRIMITIVE, type_USHORT, "numberOfDisEntities", "number of entities", 0, NULL, 0, type_EntityID, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AggregateStatePdu,numberOfDisEntities), },
1058 {PRIMITIVE, type_USHORT, "numberOfSilentAggregateTypes", "number of silent aggregate types", 0, NULL, 0, type_EntityType, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AggregateStatePdu,numberOfSilentAggregateTypes), },
1059 {PRIMITIVE, type_USHORT, "numberOfSilentEntityTypes", "number of silent entity types", 0, NULL, 0, type_EntityType, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct AggregateStatePdu,numberOfSilentEntityTypes), },
1060 {VARIABLE_LIST, type_AggregateID, "aggregateIDList", "aggregates list", 0, "numberOfDisAggregates", 11, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct AggregateID), offsetof(struct AggregateStatePdu,aggregateIDList), },
1061 {VARIABLE_LIST, type_EntityID, "entityIDList", "entity ID list", 0, "numberOfDisEntities", 12, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct AggregateStatePdu,entityIDList), },
1062 {PRIMITIVE, type_UBYTE, "pad2", "^^^padding to put the start of the next list on a 32 bit boundary. This needs to be fixed", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct AggregateStatePdu,pad2), },
1063 {VARIABLE_LIST, type_EntityType, "silentAggregateSystemList", "silent entity types", 0, "numberOfSilentAggregateTypes", 13, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct AggregateStatePdu,silentAggregateSystemList), },
1064 {VARIABLE_LIST, type_EntityType, "silentEntitySystemList", "silent entity types", 0, "numberOfSilentEntityTypes", 14, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct AggregateStatePdu,silentEntitySystemList), },
1065 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "number of variable datum records", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct AggregateStatePdu,numberOfVariableDatumRecords), },
1066 {VARIABLE_LIST, type_VariableDatum, "variableDatumList", "variableDatums", 0, "numberOfVariableDatumRecords", 20, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct AggregateStatePdu,variableDatumList), },
1067 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1068};
1069struct disfieldattr FIELDS_EntityStateUpdatePdu [] = {
1070 {CLASSREF, type_EntityInformationFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct EntityInformationFamilyPdu), 0 },
1071 {CLASSREF, type_EntityID, "entityID", "This field shall identify the entity issuing the PDU", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct EntityStateUpdatePdu,entityID), },
1072 {PRIMITIVE, type_BYTE, "padding1", "Padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(char), offsetof(struct EntityStateUpdatePdu,padding1), },
1073 {PRIMITIVE, type_UBYTE, "numberOfArticulationParameters", "How many articulation parameters are in the variable length list", 0, NULL, 0, type_ArticulationParameter, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EntityStateUpdatePdu,numberOfArticulationParameters), },
1074 {CLASSREF, type_Vector3Float, "entityLinearVelocity", "Describes the speed of the entity in the world", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct EntityStateUpdatePdu,entityLinearVelocity), },
1075 {CLASSREF, type_Vector3Double, "entityLocation", "describes the location of the entity in the world", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct EntityStateUpdatePdu,entityLocation), },
1076 {CLASSREF, type_Orientation, "entityOrientation", "describes the orientation of the entity, in euler angles", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Orientation), offsetof(struct EntityStateUpdatePdu,entityOrientation), },
1077 {PRIMITIVE, type_INT, "entityAppearance", "a series of bit flags that are used to help draw the entity, such as smoking, on fire, etc.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(int), offsetof(struct EntityStateUpdatePdu,entityAppearance), },
1078 {VARIABLE_LIST, type_ArticulationParameter, "articulationParameters", NULL, 0, "numberOfArticulationParameters", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct ArticulationParameter), offsetof(struct EntityStateUpdatePdu,articulationParameters), },
1079 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1080};
1081struct disfieldattr FIELDS_MinefieldStatePdu [] = {
1082 {CLASSREF, type_MinefieldFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct MinefieldFamilyPdu), 0 },
1083 {CLASSREF, type_EntityID, "minefieldID", "Minefield ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct MinefieldStatePdu,minefieldID), },
1084 {PRIMITIVE, type_USHORT, "minefieldSequence", "Minefield sequence", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct MinefieldStatePdu,minefieldSequence), },
1085 {PRIMITIVE, type_UBYTE, "forceID", "force ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldStatePdu,forceID), },
1086 {PRIMITIVE, type_UBYTE, "numberOfPerimeterPoints", "Number of permieter points", 0, NULL, 0, type_Point, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldStatePdu,numberOfPerimeterPoints), },
1087 {CLASSREF, type_EntityType, "minefieldType", "type of minefield", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct MinefieldStatePdu,minefieldType), },
1088 {PRIMITIVE, type_USHORT, "numberOfMineTypes", "how many mine types", 0, NULL, 0, type_EntityType, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct MinefieldStatePdu,numberOfMineTypes), },
1089 {CLASSREF, type_Vector3Double, "minefieldLocation", "location of minefield in world coords", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct MinefieldStatePdu,minefieldLocation), },
1090 {CLASSREF, type_Orientation, "minefieldOrientation", "orientation of minefield", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Orientation), offsetof(struct MinefieldStatePdu,minefieldOrientation), },
1091 {PRIMITIVE, type_USHORT, "appearance", "appearance bitflags", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct MinefieldStatePdu,appearance), },
1092 {PRIMITIVE, type_USHORT, "protocolMode", "protocolMode", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct MinefieldStatePdu,protocolMode), },
1093 {VARIABLE_LIST, type_Point, "perimeterPoints", "perimeter points for the minefield", 0, "numberOfPerimeterPoints", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct Point), offsetof(struct MinefieldStatePdu,perimeterPoints), },
1094 {VARIABLE_LIST, type_EntityType, "mineType", "Type of mines", 0, "numberOfMineTypes", 6, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct MinefieldStatePdu,mineType), },
1095 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1096};
1097struct disfieldattr FIELDS_DataReliablePdu [] = {
1098 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
1099 {PRIMITIVE, type_UINT, "requestID", "Request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataReliablePdu,requestID), },
1100 {PRIMITIVE, type_UBYTE, "requiredReliabilityService", "level of reliability service used for this transaction", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct DataReliablePdu,requiredReliabilityService), },
1101 {PRIMITIVE, type_USHORT, "pad1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct DataReliablePdu,pad1), },
1102 {PRIMITIVE, type_UBYTE, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct DataReliablePdu,pad2), },
1103 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Fixed datum record count", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataReliablePdu,numberOfFixedDatumRecords), },
1104 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "variable datum record count", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct DataReliablePdu,numberOfVariableDatumRecords), },
1105 {VARIABLE_LIST, type_FixedDatum, "fixedDatumRecords", "Fixed datum records", 0, "numberOfFixedDatumRecords", 5, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct DataReliablePdu,fixedDatumRecords), },
1106 {VARIABLE_LIST, type_VariableDatum, "variableDatumRecords", "Variable datum records", 0, "numberOfVariableDatumRecords", 6, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct DataReliablePdu,variableDatumRecords), },
1107 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1108};
1109struct disfieldattr FIELDS_CommentPdu [] = {
1110 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
1111 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Number of fixed datum records", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct CommentPdu,numberOfFixedDatumRecords), },
1112 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "Number of variable datum records", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct CommentPdu,numberOfVariableDatumRecords), },
1113 {VARIABLE_LIST, type_FixedDatum, "fixedDatums", "variable length list of fixed datums", 0, "numberOfFixedDatumRecords", 1, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct CommentPdu,fixedDatums), },
1114 {VARIABLE_LIST, type_VariableDatum, "variableDatums", "variable length list of variable length datums", 0, "numberOfVariableDatumRecords", 2, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct CommentPdu,variableDatums), },
1115 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1116};
1117struct disfieldattr FIELDS_CommentReliablePdu [] = {
1118 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
1119 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Fixed datum record count", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct CommentReliablePdu,numberOfFixedDatumRecords), },
1120 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "variable datum record count", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct CommentReliablePdu,numberOfVariableDatumRecords), },
1121 {VARIABLE_LIST, type_FixedDatum, "fixedDatumRecords", "Fixed datum records", 0, "numberOfFixedDatumRecords", 1, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct CommentReliablePdu,fixedDatumRecords), },
1122 {VARIABLE_LIST, type_VariableDatum, "variableDatumRecords", "Variable datum records", 0, "numberOfVariableDatumRecords", 2, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct CommentReliablePdu,variableDatumRecords), },
1123 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1124};
1125struct disfieldattr FIELDS_DetonationPdu [] = {
1126 {CLASSREF, type_WarfareFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct WarfareFamilyPdu), 0 },
1127 {CLASSREF, type_EntityID, "munitionID", "ID of muntion that was fired", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct DetonationPdu,munitionID), },
1128 {CLASSREF, type_EventID, "eventID", "ID firing event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EventID), offsetof(struct DetonationPdu,eventID), },
1129 {CLASSREF, type_Vector3Float, "velocity", "ID firing event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct DetonationPdu,velocity), },
1130 {CLASSREF, type_Vector3Double, "locationInWorldCoordinates", "where the detonation is, in world coordinates", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct DetonationPdu,locationInWorldCoordinates), },
1131 {CLASSREF, type_BurstDescriptor, "burstDescriptor", "Describes munition used", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct BurstDescriptor), offsetof(struct DetonationPdu,burstDescriptor), },
1132 {CLASSREF, type_Vector3Float, "locationInEntityCoordinates", "location of the detonation or impact in the target entity's coordinate system. This information should be used for damage assessment.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct DetonationPdu,locationInEntityCoordinates), },
1133 {PRIMITIVE, type_UBYTE, "detonationResult", "result of the explosion", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct DetonationPdu,detonationResult), },
1134 {PRIMITIVE, type_UBYTE, "numberOfArticulationParameters", "How many articulation parameters we have", 0, NULL, 0, type_ArticulationParameter, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct DetonationPdu,numberOfArticulationParameters), },
1135 {PRIMITIVE, type_SHORT, "pad", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(short), offsetof(struct DetonationPdu,pad), },
1136 {VARIABLE_LIST, type_ArticulationParameter, "articulationParameters", NULL, 0, "numberOfArticulationParameters", 8, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct ArticulationParameter), offsetof(struct DetonationPdu,articulationParameters), },
1137 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1138};
1139struct disfieldattr FIELDS_SetDataPdu [] = {
1140 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
1141 {PRIMITIVE, type_UINT, "requestID", "ID of request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct SetDataPdu,requestID), },
1142 {PRIMITIVE, type_UINT, "padding1", "padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct SetDataPdu,padding1), },
1143 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Number of fixed datum records", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct SetDataPdu,numberOfFixedDatumRecords), },
1144 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "Number of variable datum records", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct SetDataPdu,numberOfVariableDatumRecords), },
1145 {VARIABLE_LIST, type_FixedDatum, "fixedDatums", "variable length list of fixed datums", 0, "numberOfFixedDatumRecords", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct SetDataPdu,fixedDatums), },
1146 {VARIABLE_LIST, type_VariableDatum, "variableDatums", "variable length list of variable length datums", 0, "numberOfVariableDatumRecords", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct SetDataPdu,variableDatums), },
1147 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1148};
1149struct disfieldattr FIELDS_RecordQueryReliablePdu [] = {
1150 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
1151 {PRIMITIVE, type_UINT, "requestID", "request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct RecordQueryReliablePdu,requestID), },
1152 {PRIMITIVE, type_UBYTE, "requiredReliabilityService", "level of reliability service used for this transaction", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct RecordQueryReliablePdu,requiredReliabilityService), },
1153 {PRIMITIVE, type_USHORT, "pad1", "padding. The spec is unclear and contradictory here.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct RecordQueryReliablePdu,pad1), },
1154 {PRIMITIVE, type_UBYTE, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct RecordQueryReliablePdu,pad2), },
1155 {PRIMITIVE, type_USHORT, "eventType", "event type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct RecordQueryReliablePdu,eventType), },
1156 {PRIMITIVE, type_UINT, "time", "time", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct RecordQueryReliablePdu,time), },
1157 {PRIMITIVE, type_UINT, "numberOfRecords", "numberOfRecords", 0, NULL, 0, type_FourByteChunk, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct RecordQueryReliablePdu,numberOfRecords), },
1158 {VARIABLE_LIST, type_FourByteChunk, "recordIDs", "record IDs", 0, "numberOfRecords", 7, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FourByteChunk), offsetof(struct RecordQueryReliablePdu,recordIDs), },
1159 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1160};
1161struct disfieldattr FIELDS_CollisionPdu [] = {
1162 {CLASSREF, type_EntityInformationFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct EntityInformationFamilyPdu), 0 },
1163 {CLASSREF, type_EntityID, "issuingEntityID", "ID of the entity that issued the collision PDU", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct CollisionPdu,issuingEntityID), },
1164 {CLASSREF, type_EntityID, "collidingEntityID", "ID of entity that has collided with the issuing entity ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct CollisionPdu,collidingEntityID), },
1165 {CLASSREF, type_EventID, "eventID", "ID of event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EventID), offsetof(struct CollisionPdu,eventID), },
1166 {PRIMITIVE, type_UBYTE, "collisionType", "ID of event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct CollisionPdu,collisionType), },
1167 {PRIMITIVE, type_BYTE, "pad", "some padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(char), offsetof(struct CollisionPdu,pad), },
1168 {CLASSREF, type_Vector3Float, "velocity", "velocity at collision", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct CollisionPdu,velocity), },
1169 {PRIMITIVE, type_FLOAT, "mass", "mass of issuing entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct CollisionPdu,mass), },
1170 {CLASSREF, type_Vector3Float, "location", "Location with respect to entity the issuing entity collided with", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct CollisionPdu,location), },
1171 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1172};
1173struct disfieldattr FIELDS_ActionResponsePdu [] = {
1174 {CLASSREF, type_SimulationManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementFamilyPdu), 0 },
1175 {PRIMITIVE, type_UINT, "requestID", "Request ID that is unique", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionResponsePdu,requestID), },
1176 {PRIMITIVE, type_UINT, "requestStatus", "Status of response", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionResponsePdu,requestStatus), },
1177 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Number of fixed datum records", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionResponsePdu,numberOfFixedDatumRecords), },
1178 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "Number of variable datum records", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionResponsePdu,numberOfVariableDatumRecords), },
1179 {VARIABLE_LIST, type_FixedDatum, "fixedDatums", "variable length list of fixed datums", 0, "numberOfFixedDatumRecords", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct ActionResponsePdu,fixedDatums), },
1180 {VARIABLE_LIST, type_VariableDatum, "variableDatums", "variable length list of variable length datums", 0, "numberOfVariableDatumRecords", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct ActionResponsePdu,variableDatums), },
1181 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1182};
1183struct disfieldattr FIELDS_FirePdu [] = {
1184 {CLASSREF, type_WarfareFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct WarfareFamilyPdu), 0 },
1185 {CLASSREF, type_EntityID, "munitionID", "ID of the munition that is being shot", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct FirePdu,munitionID), },
1186 {CLASSREF, type_EventID, "eventID", "ID of event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EventID), offsetof(struct FirePdu,eventID), },
1187 {PRIMITIVE, type_INT, "fireMissionIndex", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(int), offsetof(struct FirePdu,fireMissionIndex), },
1188 {CLASSREF, type_Vector3Double, "locationInWorldCoordinates", "location of the firing event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct FirePdu,locationInWorldCoordinates), },
1189 {CLASSREF, type_BurstDescriptor, "burstDescriptor", "Describes munitions used in the firing event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct BurstDescriptor), offsetof(struct FirePdu,burstDescriptor), },
1190 {CLASSREF, type_Vector3Float, "velocity", "Velocity of the ammunition", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct FirePdu,velocity), },
1191 {PRIMITIVE, type_FLOAT, "range", "range to the target", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FirePdu,range), },
1192 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1193};
1194struct disfieldattr FIELDS_ReceiverPdu [] = {
1195 {CLASSREF, type_RadioCommunicationsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct RadioCommunicationsFamilyPdu), 0 },
1196 {PRIMITIVE, type_USHORT, "receiverState", "encoding scheme used, and enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ReceiverPdu,receiverState), },
1197 {PRIMITIVE, type_USHORT, "padding1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ReceiverPdu,padding1), },
1198 {PRIMITIVE, type_FLOAT, "receivedPoser", "received power", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct ReceiverPdu,receivedPoser), },
1199 {CLASSREF, type_EntityID, "transmitterEntityId", "ID of transmitter", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct ReceiverPdu,transmitterEntityId), },
1200 {PRIMITIVE, type_USHORT, "transmitterRadioId", "ID of transmitting radio", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct ReceiverPdu,transmitterRadioId), },
1201 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1202};
1203struct disfieldattr FIELDS_UaPdu [] = {
1204 {CLASSREF, type_DistributedEmissionsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct DistributedEmissionsFamilyPdu), 0 },
1205 {CLASSREF, type_EntityID, "emittingEntityID", "ID of the entity that is the source of the emission", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct UaPdu,emittingEntityID), },
1206 {CLASSREF, type_EventID, "eventID", "ID of event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EventID), offsetof(struct UaPdu,eventID), },
1207 {PRIMITIVE, type_BYTE, "stateChangeIndicator", "This field shall be used to indicate whether the data in the UA PDU represent a state update or data that have changed since issuance of the last UA PDU", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(char), offsetof(struct UaPdu,stateChangeIndicator), },
1208 {PRIMITIVE, type_BYTE, "pad", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(char), offsetof(struct UaPdu,pad), },
1209 {PRIMITIVE, type_USHORT, "passiveParameterIndex", "This field indicates which database record (or file) shall be used in the definition of passive signature (unintentional) emissions of the entity. The indicated database record (or file) shall define all noise generated as a function of propulsion plant configurations and associated auxiliaries.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct UaPdu,passiveParameterIndex), },
1210 {PRIMITIVE, type_UBYTE, "propulsionPlantConfiguration", "This field shall specify the entity propulsion plant configuration. This field is used to determine the passive signature characteristics of an entity.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct UaPdu,propulsionPlantConfiguration), },
1211 {PRIMITIVE, type_UBYTE, "numberOfShafts", " This field shall represent the number of shafts on a platform", 0, NULL, 0, type_ShaftRPMs, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct UaPdu,numberOfShafts), },
1212 {PRIMITIVE, type_UBYTE, "numberOfAPAs", "This field shall indicate the number of APAs described in the current UA PDU", 0, NULL, 0, type_ApaData, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct UaPdu,numberOfAPAs), },
1213 {PRIMITIVE, type_UBYTE, "numberOfUAEmitterSystems", "This field shall specify the number of UA emitter systems being described in the current UA PDU", 0, NULL, 0, type_AcousticEmitterSystemData, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct UaPdu,numberOfUAEmitterSystems), },
1214 {VARIABLE_LIST, type_ShaftRPMs, "shaftRPMs", "shaft RPM values", 0, "numberOfShafts", 7, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct ShaftRPMs), offsetof(struct UaPdu,shaftRPMs), },
1215 {VARIABLE_LIST, type_ApaData, "apaData", "apaData", 0, "numberOfAPAs", 8, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct ApaData), offsetof(struct UaPdu,apaData), },
1216 {VARIABLE_LIST, type_AcousticEmitterSystemData, "emitterSystems", NULL, 0, "numberOfUAEmitterSystems", 9, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct AcousticEmitterSystemData), offsetof(struct UaPdu,emitterSystems), },
1217 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1218};
1219struct disfieldattr FIELDS_IntercomControlPdu [] = {
1220 {CLASSREF, type_RadioCommunicationsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct RadioCommunicationsFamilyPdu), 0 },
1221 {PRIMITIVE, type_UBYTE, "controlType", "control type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IntercomControlPdu,controlType), },
1222 {PRIMITIVE, type_UBYTE, "communicationsChannelType", "control type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IntercomControlPdu,communicationsChannelType), },
1223 {CLASSREF, type_EntityID, "sourceEntityID", "Source entity ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct IntercomControlPdu,sourceEntityID), },
1224 {PRIMITIVE, type_UBYTE, "sourceCommunicationsDeviceID", "The specific intercom device being simulated within an entity.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IntercomControlPdu,sourceCommunicationsDeviceID), },
1225 {PRIMITIVE, type_UBYTE, "sourceLineID", "Line number to which the intercom control refers", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IntercomControlPdu,sourceLineID), },
1226 {PRIMITIVE, type_UBYTE, "transmitPriority", "priority of this message relative to transmissons from other intercom devices", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IntercomControlPdu,transmitPriority), },
1227 {PRIMITIVE, type_UBYTE, "transmitLineState", "current transmit state of the line", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IntercomControlPdu,transmitLineState), },
1228 {PRIMITIVE, type_UBYTE, "command", "detailed type requested.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct IntercomControlPdu,command), },
1229 {CLASSREF, type_EntityID, "masterEntityID", "eid of the entity that has created this intercom channel.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct IntercomControlPdu,masterEntityID), },
1230 {PRIMITIVE, type_USHORT, "masterCommunicationsDeviceID", "specific intercom device that has created this intercom channel", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct IntercomControlPdu,masterCommunicationsDeviceID), },
1231 {PRIMITIVE, type_UINT, "intercomParametersLength", "number of intercom parameters", 0, NULL, 0, type_IntercomCommunicationsParameters, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct IntercomControlPdu,intercomParametersLength), },
1232 {VARIABLE_LIST, type_IntercomCommunicationsParameters, "intercomParameters", "^^^This is wrong--the length of the data field is variable. Using a long for now.", 0, "intercomParametersLength", 11, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct IntercomCommunicationsParameters), offsetof(struct IntercomControlPdu,intercomParameters), },
1233 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1234};
1235struct disfieldattr FIELDS_SignalPdu [] = {
1236 {CLASSREF, type_RadioCommunicationsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct RadioCommunicationsFamilyPdu), 0 },
1237 {PRIMITIVE, type_USHORT, "encodingScheme", "encoding scheme used, and enumeration", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SignalPdu,encodingScheme), },
1238 {PRIMITIVE, type_USHORT, "tdlType", "tdl type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SignalPdu,tdlType), },
1239 {PRIMITIVE, type_UINT, "sampleRate", "sample rate", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct SignalPdu,sampleRate), },
1240 {PRIMITIVE, type_SHORT, "dataLength", "length od data", 0, NULL, 0, type_OneByteChunk, 0, 0, FALSE, FALSE, sizeof(short), offsetof(struct SignalPdu,dataLength), },
1241 {PRIMITIVE, type_SHORT, "samples", "number of samples", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(short), offsetof(struct SignalPdu,samples), },
1242 {VARIABLE_LIST, type_OneByteChunk, "data", "list of eight bit values", 0, "dataLength", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct OneByteChunk), offsetof(struct SignalPdu,data), },
1243 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1244};
1245struct disfieldattr FIELDS_RemoveEntityReliablePdu [] = {
1246 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
1247 {PRIMITIVE, type_UBYTE, "requiredReliabilityService", "level of reliability service used for this transaction", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct RemoveEntityReliablePdu,requiredReliabilityService), },
1248 {PRIMITIVE, type_USHORT, "pad1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct RemoveEntityReliablePdu,pad1), },
1249 {PRIMITIVE, type_UBYTE, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct RemoveEntityReliablePdu,pad2), },
1250 {PRIMITIVE, type_UINT, "requestID", "Request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct RemoveEntityReliablePdu,requestID), },
1251 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1252};
1253struct disfieldattr FIELDS_SeesPdu [] = {
1254 {CLASSREF, type_DistributedEmissionsFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct DistributedEmissionsFamilyPdu), 0 },
1255 {CLASSREF, type_EntityID, "orginatingEntityID", "Originating entity ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct SeesPdu,orginatingEntityID), },
1256 {PRIMITIVE, type_USHORT, "infraredSignatureRepresentationIndex", "IR Signature representation index", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SeesPdu,infraredSignatureRepresentationIndex), },
1257 {PRIMITIVE, type_USHORT, "acousticSignatureRepresentationIndex", "acoustic Signature representation index", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SeesPdu,acousticSignatureRepresentationIndex), },
1258 {PRIMITIVE, type_USHORT, "radarCrossSectionSignatureRepresentationIndex", "radar cross section representation index", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SeesPdu,radarCrossSectionSignatureRepresentationIndex), },
1259 {PRIMITIVE, type_USHORT, "numberOfPropulsionSystems", "how many propulsion systems", 0, NULL, 0, type_PropulsionSystemData, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SeesPdu,numberOfPropulsionSystems), },
1260 {PRIMITIVE, type_USHORT, "numberOfVectoringNozzleSystems", "how many vectoring nozzle systems", 0, NULL, 0, type_VectoringNozzleSystemData, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct SeesPdu,numberOfVectoringNozzleSystems), },
1261 {VARIABLE_LIST, type_PropulsionSystemData, "propulsionSystemData", "variable length list of propulsion system data", 0, "numberOfPropulsionSystems", 5, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct PropulsionSystemData), offsetof(struct SeesPdu,propulsionSystemData), },
1262 {VARIABLE_LIST, type_VectoringNozzleSystemData, "vectoringSystemData", "variable length list of vectoring system data", 0, "numberOfVectoringNozzleSystems", 6, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VectoringNozzleSystemData), offsetof(struct SeesPdu,vectoringSystemData), },
1263 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1264};
1265struct disfieldattr FIELDS_CreateEntityReliablePdu [] = {
1266 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
1267 {PRIMITIVE, type_UBYTE, "requiredReliabilityService", "level of reliability service used for this transaction", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct CreateEntityReliablePdu,requiredReliabilityService), },
1268 {PRIMITIVE, type_USHORT, "pad1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct CreateEntityReliablePdu,pad1), },
1269 {PRIMITIVE, type_UBYTE, "pad2", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct CreateEntityReliablePdu,pad2), },
1270 {PRIMITIVE, type_UINT, "requestID", "Request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct CreateEntityReliablePdu,requestID), },
1271 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1272};
1273struct disfieldattr FIELDS_StopFreezeReliablePdu [] = {
1274 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
1275 {CLASSREF, type_ClockTime, "realWorldTime", "time in real world for this operation to happen", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct ClockTime), offsetof(struct StopFreezeReliablePdu,realWorldTime), },
1276 {PRIMITIVE, type_UBYTE, "reason", "Reason for stopping/freezing simulation", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct StopFreezeReliablePdu,reason), },
1277 {PRIMITIVE, type_UBYTE, "frozenBehavior", "internal behvior of the simulation while frozen", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct StopFreezeReliablePdu,frozenBehavior), },
1278 {PRIMITIVE, type_UBYTE, "requiredReliablityService", "reliablity level", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct StopFreezeReliablePdu,requiredReliablityService), },
1279 {PRIMITIVE, type_UBYTE, "pad1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct StopFreezeReliablePdu,pad1), },
1280 {PRIMITIVE, type_UINT, "requestID", "Request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct StopFreezeReliablePdu,requestID), },
1281 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1282};
1283struct disfieldattr FIELDS_EventReportReliablePdu [] = {
1284 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
1285 {PRIMITIVE, type_USHORT, "eventType", "Event type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct EventReportReliablePdu,eventType), },
1286 {PRIMITIVE, type_UINT, "pad1", "padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct EventReportReliablePdu,pad1), },
1287 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Fixed datum record count", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct EventReportReliablePdu,numberOfFixedDatumRecords), },
1288 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "variable datum record count", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct EventReportReliablePdu,numberOfVariableDatumRecords), },
1289 {VARIABLE_LIST, type_FixedDatum, "fixedDatumRecords", "Fixed datum records", 0, "numberOfFixedDatumRecords", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct EventReportReliablePdu,fixedDatumRecords), },
1290 {VARIABLE_LIST, type_VariableDatum, "variableDatumRecords", "Variable datum records", 0, "numberOfVariableDatumRecords", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct EventReportReliablePdu,variableDatumRecords), },
1291 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1292};
1293struct disfieldattr FIELDS_MinefieldResponseNackPdu [] = {
1294 {CLASSREF, type_MinefieldFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct MinefieldFamilyPdu), 0 },
1295 {CLASSREF, type_EntityID, "minefieldID", "Minefield ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct MinefieldResponseNackPdu,minefieldID), },
1296 {CLASSREF, type_EntityID, "requestingEntityID", "entity ID making the request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct MinefieldResponseNackPdu,requestingEntityID), },
1297 {PRIMITIVE, type_UBYTE, "requestID", "request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldResponseNackPdu,requestID), },
1298 {PRIMITIVE, type_UBYTE, "numberOfMissingPdus", "how many pdus were missing", 0, NULL, 0, type_EightByteChunk, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldResponseNackPdu,numberOfMissingPdus), },
1299 {VARIABLE_LIST, type_EightByteChunk, "missingPduSequenceNumbers", "PDU sequence numbers that were missing", 0, "numberOfMissingPdus", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct EightByteChunk), offsetof(struct MinefieldResponseNackPdu,missingPduSequenceNumbers), },
1300 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1301};
1302struct disfieldattr FIELDS_CollisionElasticPdu [] = {
1303 {CLASSREF, type_EntityInformationFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct EntityInformationFamilyPdu), 0 },
1304 {CLASSREF, type_EntityID, "issuingEntityID", "ID of the entity that issued the collision PDU", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct CollisionElasticPdu,issuingEntityID), },
1305 {CLASSREF, type_EntityID, "collidingEntityID", "ID of entity that has collided with the issuing entity ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct CollisionElasticPdu,collidingEntityID), },
1306 {CLASSREF, type_EventID, "collisionEventID", "ID of event", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EventID), offsetof(struct CollisionElasticPdu,collisionEventID), },
1307 {PRIMITIVE, type_SHORT, "pad", "some padding", 0, NULL, 0, 0, 0,0, FALSE, FALSE, sizeof(short), offsetof(struct CollisionElasticPdu,pad), },
1308 {CLASSREF, type_Vector3Float, "contactVelocity", "velocity at collision", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct CollisionElasticPdu,contactVelocity), },
1309 {PRIMITIVE, type_FLOAT, "mass", "mass of issuing entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct CollisionElasticPdu,mass), },
1310 {CLASSREF, type_Vector3Float, "location", "Location with respect to entity the issuing entity collided with", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct CollisionElasticPdu,location), },
1311 {PRIMITIVE, type_FLOAT, "collisionResultXX", "tensor values", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct CollisionElasticPdu,collisionResultXX), },
1312 {PRIMITIVE, type_FLOAT, "collisionResultXY", "tensor values", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct CollisionElasticPdu,collisionResultXY), },
1313 {PRIMITIVE, type_FLOAT, "collisionResultXZ", "tensor values", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct CollisionElasticPdu,collisionResultXZ), },
1314 {PRIMITIVE, type_FLOAT, "collisionResultYY", "tensor values", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct CollisionElasticPdu,collisionResultYY), },
1315 {PRIMITIVE, type_FLOAT, "collisionResultYZ", "tensor values", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct CollisionElasticPdu,collisionResultYZ), },
1316 {PRIMITIVE, type_FLOAT, "collisionResultZZ", "tensor values", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct CollisionElasticPdu,collisionResultZZ), },
1317 {CLASSREF, type_Vector3Float, "unitSurfaceNormal", "This record shall represent the normal vector to the surface at the point of collision detection. The surface normal shall be represented in world coordinates.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct CollisionElasticPdu,unitSurfaceNormal), },
1318 {PRIMITIVE, type_FLOAT, "coefficientOfRestitution", "This field shall represent the degree to which energy is conserved in a collision", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct CollisionElasticPdu,coefficientOfRestitution), },
1319 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1320};
1321struct disfieldattr FIELDS_ActionResponseReliablePdu [] = {
1322 {CLASSREF, type_SimulationManagementWithReliabilityFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct SimulationManagementWithReliabilityFamilyPdu), 0 },
1323 {PRIMITIVE, type_UINT, "requestID", "request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionResponseReliablePdu,requestID), },
1324 {PRIMITIVE, type_UINT, "responseStatus", "status of response", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionResponseReliablePdu,responseStatus), },
1325 {PRIMITIVE, type_UINT, "numberOfFixedDatumRecords", "Fixed datum record count", 0, NULL, 0, type_FixedDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionResponseReliablePdu,numberOfFixedDatumRecords), },
1326 {PRIMITIVE, type_UINT, "numberOfVariableDatumRecords", "variable datum record count", 0, NULL, 0, type_VariableDatum, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct ActionResponseReliablePdu,numberOfVariableDatumRecords), },
1327 {VARIABLE_LIST, type_FixedDatum, "fixedDatumRecords", "Fixed datum records", 0, "numberOfFixedDatumRecords", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct FixedDatum), offsetof(struct ActionResponseReliablePdu,fixedDatumRecords), },
1328 {VARIABLE_LIST, type_VariableDatum, "variableDatumRecords", "Variable datum records", 0, "numberOfVariableDatumRecords", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct VariableDatum), offsetof(struct ActionResponseReliablePdu,variableDatumRecords), },
1329 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1330};
1331struct disfieldattr FIELDS_IsPartOfPdu [] = {
1332 {CLASSREF, type_EntityManagementFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct EntityManagementFamilyPdu), 0 },
1333 {CLASSREF, type_EntityID, "orginatingEntityID", "ID of entity originating PDU", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct IsPartOfPdu,orginatingEntityID), },
1334 {CLASSREF, type_EntityID, "receivingEntityID", "ID of entity receiving PDU", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct IsPartOfPdu,receivingEntityID), },
1335 {CLASSREF, type_Relationship, "relationship", "relationship of joined parts", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Relationship), offsetof(struct IsPartOfPdu,relationship), },
1336 {CLASSREF, type_Vector3Float, "partLocation", "location of part; centroid of part in host's coordinate system. x=range, y=bearing, z=0", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct IsPartOfPdu,partLocation), },
1337 {CLASSREF, type_NamedLocation, "namedLocationID", "named location", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct NamedLocation), offsetof(struct IsPartOfPdu,namedLocationID), },
1338 {CLASSREF, type_EntityType, "partEntityType", "entity type", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct IsPartOfPdu,partEntityType), },
1339 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1340};
1341struct disfieldattr FIELDS_MinefieldQueryPdu [] = {
1342 {CLASSREF, type_MinefieldFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct MinefieldFamilyPdu), 0 },
1343 {CLASSREF, type_EntityID, "minefieldID", "Minefield ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct MinefieldQueryPdu,minefieldID), },
1344 {CLASSREF, type_EntityID, "requestingEntityID", "EID of entity making the request", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct MinefieldQueryPdu,requestingEntityID), },
1345 {PRIMITIVE, type_UBYTE, "requestID", "request ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldQueryPdu,requestID), },
1346 {PRIMITIVE, type_UBYTE, "numberOfPerimeterPoints", "Number of perimeter points for the minefield", 0, NULL, 0, type_Point, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldQueryPdu,numberOfPerimeterPoints), },
1347 {PRIMITIVE, type_UBYTE, "pad2", "Padding", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldQueryPdu,pad2), },
1348 {PRIMITIVE, type_UBYTE, "numberOfSensorTypes", "Number of sensor types", 0, NULL, 0, type_TwoByteChunk, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct MinefieldQueryPdu,numberOfSensorTypes), },
1349 {PRIMITIVE, type_UINT, "dataFilter", "data filter, 32 boolean fields", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned int), offsetof(struct MinefieldQueryPdu,dataFilter), },
1350 {CLASSREF, type_EntityType, "requestedMineType", "Entity type of mine being requested", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct MinefieldQueryPdu,requestedMineType), },
1351 {VARIABLE_LIST, type_Point, "requestedPerimeterPoints", "perimeter points of request", 0, "numberOfPerimeterPoints", 4, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct Point), offsetof(struct MinefieldQueryPdu,requestedPerimeterPoints), },
1352 {VARIABLE_LIST, type_TwoByteChunk, "sensorTypes", "Sensor types, each 16 bits long", 0, "numberOfSensorTypes", 6, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct TwoByteChunk), offsetof(struct MinefieldQueryPdu,sensorTypes), },
1353 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1354};
1355struct disfieldattr FIELDS_EntityStatePdu [] = {
1356 {CLASSREF, type_EntityInformationFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct EntityInformationFamilyPdu), 0 },
1357 {CLASSREF, type_EntityID, "entityID", "Unique ID for an entity that is tied to this state information", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityID), offsetof(struct EntityStatePdu,entityID), },
1358 {PRIMITIVE, type_UBYTE, "forceId", "What force this entity is affiliated with, eg red, blue, neutral, etc", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct EntityStatePdu,forceId), },
1359 {PRIMITIVE, type_BYTE, "numberOfArticulationParameters", "How many articulation parameters are in the variable length list", 0, NULL, 0, type_ArticulationParameter, 0, 0, FALSE, FALSE, sizeof(char), offsetof(struct EntityStatePdu,numberOfArticulationParameters), },
1360 {CLASSREF, type_EntityType, "entityType", "Describes the type of entity in the world", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct EntityStatePdu,entityType), },
1361 {CLASSREF, type_EntityType, "alternativeEntityType", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct EntityType), offsetof(struct EntityStatePdu,alternativeEntityType), },
1362 {CLASSREF, type_Vector3Float, "entityLinearVelocity", "Describes the speed of the entity in the world", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Float), offsetof(struct EntityStatePdu,entityLinearVelocity), },
1363 {CLASSREF, type_Vector3Double, "entityLocation", "describes the location of the entity in the world", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Vector3Double), offsetof(struct EntityStatePdu,entityLocation), },
1364 {CLASSREF, type_Orientation, "entityOrientation", "describes the orientation of the entity, in euler angles", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Orientation), offsetof(struct EntityStatePdu,entityOrientation), },
1365 {PRIMITIVE, type_INT, "entityAppearance", "a series of bit flags that are used to help draw the entity, such as smoking, on fire, etc.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(int), offsetof(struct EntityStatePdu,entityAppearance), },
1366 {CLASSREF, type_DeadReckoningParameter, "deadReckoningParameters", "parameters used for dead reckoning", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct DeadReckoningParameter), offsetof(struct EntityStatePdu,deadReckoningParameters), },
1367 {CLASSREF, type_Marking, "marking", "characters that can be used for debugging, or to draw unique strings on the side of entities in the world", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(struct Marking), offsetof(struct EntityStatePdu,marking), },
1368 {PRIMITIVE, type_INT, "capabilities", "a series of bit flags", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(int), offsetof(struct EntityStatePdu,capabilities), },
1369 {VARIABLE_LIST, type_ArticulationParameter, "articulationParameters", "variable length list of articulation parameters", 0, "numberOfArticulationParameters", 3, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct ArticulationParameter), offsetof(struct EntityStatePdu,articulationParameters), },
1370 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1371};
1372struct disfieldattr FIELDS_FastEntityStatePdu [] = {
1373 {CLASSREF, type_EntityInformationFamilyPdu, "super", NULL,0,NULL, 0,0,0,0,0,UNSET,(int)sizeof(struct EntityInformationFamilyPdu), 0 },
1374 {PRIMITIVE, type_USHORT, "site", "The site ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct FastEntityStatePdu,site), },
1375 {PRIMITIVE, type_USHORT, "application", "The application ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct FastEntityStatePdu,application), },
1376 {PRIMITIVE, type_USHORT, "entity", "the entity ID", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct FastEntityStatePdu,entity), },
1377 {PRIMITIVE, type_UBYTE, "forceId", "what force this entity is affiliated with, eg red, blue, neutral, etc", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,forceId), },
1378 {PRIMITIVE, type_BYTE, "numberOfArticulationParameters", "How many articulation parameters are in the variable length list", 0, NULL, 0, type_ArticulationParameter, 0, 0, FALSE, FALSE, sizeof(char), offsetof(struct FastEntityStatePdu,numberOfArticulationParameters), },
1379 {PRIMITIVE, type_UBYTE, "entityKind", "Kind of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,entityKind), },
1380 {PRIMITIVE, type_UBYTE, "domain", "Domain of entity (air, surface, subsurface, space, etc)", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,domain), },
1381 {PRIMITIVE, type_USHORT, "country", "country to which the design of the entity is attributed", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct FastEntityStatePdu,country), },
1382 {PRIMITIVE, type_UBYTE, "category", "category of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,category), },
1383 {PRIMITIVE, type_UBYTE, "subcategory", "subcategory of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,subcategory), },
1384 {PRIMITIVE, type_UBYTE, "specific", "specific info based on subcategory field", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,specific), },
1385 {PRIMITIVE, type_UBYTE, "extra", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,extra), },
1386 {PRIMITIVE, type_UBYTE, "altEntityKind", "Kind of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,altEntityKind), },
1387 {PRIMITIVE, type_UBYTE, "altDomain", "Domain of entity (air, surface, subsurface, space, etc)", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,altDomain), },
1388 {PRIMITIVE, type_USHORT, "altCountry", "country to which the design of the entity is attributed", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned short), offsetof(struct FastEntityStatePdu,altCountry), },
1389 {PRIMITIVE, type_UBYTE, "altCategory", "category of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,altCategory), },
1390 {PRIMITIVE, type_UBYTE, "altSubcategory", "subcategory of entity", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,altSubcategory), },
1391 {PRIMITIVE, type_UBYTE, "altSpecific", "specific info based on subcategory field", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,altSpecific), },
1392 {PRIMITIVE, type_UBYTE, "altExtra", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,altExtra), },
1393 {PRIMITIVE, type_FLOAT, "xVelocity", "X velo", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,xVelocity), },
1394 {PRIMITIVE, type_FLOAT, "yVelocity", "y Value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,yVelocity), },
1395 {PRIMITIVE, type_FLOAT, "zVelocity", "Z value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,zVelocity), },
1396 {PRIMITIVE, type_DOUBLE, "xLocation", "X value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(double), offsetof(struct FastEntityStatePdu,xLocation), },
1397 {PRIMITIVE, type_DOUBLE, "yLocation", "y Value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(double), offsetof(struct FastEntityStatePdu,yLocation), },
1398 {PRIMITIVE, type_DOUBLE, "zLocation", "Z value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(double), offsetof(struct FastEntityStatePdu,zLocation), },
1399 {PRIMITIVE, type_FLOAT, "psi", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,psi), },
1400 {PRIMITIVE, type_FLOAT, "theta", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,theta), },
1401 {PRIMITIVE, type_FLOAT, "phi", NULL, 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,phi), },
1402 {PRIMITIVE, type_INT, "entityAppearance", "a series of bit flags that are used to help draw the entity, such as smoking, on fire, etc.", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(int), offsetof(struct FastEntityStatePdu,entityAppearance), },
1403 {PRIMITIVE, type_UBYTE, "deadReckoningAlgorithm", "enumeration of what dead reckoning algorighm to use", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(unsigned char), offsetof(struct FastEntityStatePdu,deadReckoningAlgorithm), },
1404 {FIXED_LIST, type_BYTE, "otherParameters", "other parameters to use in the dead reckoning algorithm", 15, NULL, 0, 0, 0, PRIMITIVE, FALSE, FALSE, sizeof(char), offsetof(struct FastEntityStatePdu,otherParameters), },
1405 {PRIMITIVE, type_FLOAT, "xAcceleration", "X value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,xAcceleration), },
1406 {PRIMITIVE, type_FLOAT, "yAcceleration", "y Value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,yAcceleration), },
1407 {PRIMITIVE, type_FLOAT, "zAcceleration", "Z value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,zAcceleration), },
1408 {PRIMITIVE, type_FLOAT, "xAngularVelocity", "X value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,xAngularVelocity), },
1409 {PRIMITIVE, type_FLOAT, "yAngularVelocity", "y Value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,yAngularVelocity), },
1410 {PRIMITIVE, type_FLOAT, "zAngularVelocity", "Z value", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(float), offsetof(struct FastEntityStatePdu,zAngularVelocity), },
1411 {FIXED_LIST, type_BYTE, "marking", "characters that can be used for debugging, or to draw unique strings on the side of entities in the world", 12, NULL, 0, 0, 0, PRIMITIVE, TRUE, FALSE, sizeof(char), offsetof(struct FastEntityStatePdu,marking), },
1412 {PRIMITIVE, type_INT, "capabilities", "a series of bit flags", 0, NULL, 0, 0, 0, 0, FALSE, FALSE, sizeof(int), offsetof(struct FastEntityStatePdu,capabilities), },
1413 {VARIABLE_LIST, type_ArticulationParameter, "articulationParameters", "variable length list of articulation parameters", 0, "numberOfArticulationParameters", 5, 0, 0, CLASSREF, FALSE, FALSE, sizeof(struct ArticulationParameter), offsetof(struct FastEntityStatePdu,articulationParameters), },
1414 {-1,0,NULL,NULL,0,NULL,0,0,0,0,0,0,0,0},
1415};
1416void ctor_pduHeader(void *pdutype, unsigned char pduType, unsigned char protocolFamily){
1417 struct Pdu *header = (struct Pdu*)pdutype;
1418 header->pduType = pduType;
1419 header->protocolFamily = protocolFamily;
1420}
1421struct dis_class {
1422 struct disfieldattr *fields;
1423 unsigned char pduType;
1424 unsigned char protocolFamily;
1425};
1426// class table - same order as type_ enum
1427struct dis_class DIS_CLASS [] = {
1428 {NULL,0,0},
1429 {NULL,0,0},
1430 {NULL,0,0},
1431 {NULL,0,0},
1432 {NULL,0,0},
1433 {NULL,0,0},
1434 {NULL,0,0},
1435 {NULL,0,0},
1436 {NULL,0,0},
1437 {NULL,0,0},
1438 {FIELDS_SystemID,0,0},
1439 {FIELDS_RadioEntityType,0,0},
1440 {FIELDS_LayerHeader,0,0},
1441 {FIELDS_AcousticEmitterSystem,0,0},
1442 {FIELDS_FourByteChunk,0,0},
1443 {FIELDS_Orientation,0,0},
1444 {FIELDS_OneByteChunk,0,0},
1445 {FIELDS_EventID,0,0},
1446 {FIELDS_VectoringNozzleSystemData,0,0},
1447 {FIELDS_ObjectType,0,0},
1448 {FIELDS_FundamentalParameterDataIff,0,0},
1449 {FIELDS_EightByteChunk,0,0},
1450 {FIELDS_FixedDatum,0,0},
1451 {FIELDS_GridAxisRecord,0,0},
1452 {FIELDS_AggregateID,0,0},
1453 {FIELDS_TwoByteChunk,0,0},
1454 {FIELDS_ClockTime,0,0},
1455 {FIELDS_Relationship,0,0},
1456 {FIELDS_Vector3Float,0,0},
1457 {FIELDS_ModulationType,0,0},
1458 {FIELDS_SimulationAddress,0,0},
1459 {FIELDS_IffFundamentalData,0,0},
1460 {FIELDS_AggregateType,0,0},
1461 {FIELDS_BeamData,0,0},
1462 {FIELDS_NamedLocation,0,0},
1463 {FIELDS_RecordSet,0,0},
1464 {FIELDS_SphericalHarmonicAntennaPattern,0,0},
1465 {FIELDS_ShaftRPMs,0,0},
1466 {FIELDS_IntercomCommunicationsParameters,0,0},
1467 {FIELDS_AcousticBeamFundamentalParameter,0,0},
1468 {FIELDS_EntityType,0,0},
1469 {FIELDS_FundamentalParameterData,0,0},
1470 {FIELDS_ApaData,0,0},
1471 {FIELDS_Environment,0,0},
1472 {FIELDS_AcousticEmitter,0,0},
1473 {FIELDS_AngularVelocityVector,0,0},
1474 {FIELDS_AggregateMarking,0,0},
1475 {FIELDS_EntityID,0,0},
1476 {FIELDS_SixByteChunk,0,0},
1477 {FIELDS_Vector3Double,0,0},
1478 {FIELDS_Pdu,0,0},
1479 {FIELDS_VariableDatum,0,0},
1480 {FIELDS_ArticulationParameter,0,0},
1481 {FIELDS_Marking,0,0},
1482 {FIELDS_Point,0,0},
1483 {FIELDS_PropulsionSystemData,0,0},
1484 {FIELDS_EmitterSystem,0,0},
1485 {FIELDS_PduContainer,0,0},
1486 {FIELDS_ElectronicEmissionBeamData,0,0},
1487 {FIELDS_LogisticsFamilyPdu,0,3},
1488 {FIELDS_ServiceRequestPdu,5,0},
1489 {FIELDS_RepairCompletePdu,9,0},
1490 {FIELDS_DeadReckoningParameter,0,0},
1491 {FIELDS_BeamAntennaPattern,0,0},
1492 {FIELDS_SyntheticEnvironmentFamilyPdu,0,9},
1493 {FIELDS_AcousticEmitterSystemData,0,0},
1494 {FIELDS_RepairResponsePdu,10,0},
1495 {FIELDS_SimulationManagementFamilyPdu,0,5},
1496 {FIELDS_AntennaLocation,0,0},
1497 {FIELDS_DataQueryPdu,18,0},
1498 {FIELDS_BurstDescriptor,0,0},
1499 {FIELDS_LinearObjectStatePdu,44,0},
1500 {FIELDS_CreateEntityPdu,11,0},
1501 {FIELDS_RadioCommunicationsFamilyPdu,0,4},
1502 {FIELDS_AcousticBeamData,0,0},
1503 {FIELDS_IntercomSignalPdu,31,0},
1504 {FIELDS_GridAxisRecordRepresentation2,0,0},
1505 {FIELDS_LinearSegmentParameter,0,0},
1506 {FIELDS_GridAxisRecordRepresentation1,0,0},
1507 {FIELDS_GridAxisRecordRepresentation0,0,0},
1508 {FIELDS_RemoveEntityPdu,12,0},
1509 {FIELDS_ResupplyReceivedPdu,7,0},
1510 {FIELDS_WarfareFamilyPdu,0,2},
1511 {FIELDS_ElectronicEmissionSystemData,0,0},
1512 {FIELDS_ActionRequestPdu,16,0},
1513 {FIELDS_SupplyQuantity,0,0},
1514 {FIELDS_AcknowledgePdu,15,0},
1515 {FIELDS_DistributedEmissionsFamilyPdu,0,6},
1516 {FIELDS_IffAtcNavAidsLayer1Pdu,28,0},
1517 {FIELDS_SimulationManagementWithReliabilityFamilyPdu,0,10},
1518 {FIELDS_ActionRequestReliablePdu,56,0},
1519 {FIELDS_DesignatorPdu,24,0},
1520 {FIELDS_GriddedDataPdu,42,0},
1521 {FIELDS_SetRecordReliablePdu,64,0},
1522 {FIELDS_StopFreezePdu,14,0},
1523 {FIELDS_ResupplyCancelPdu,8,0},
1524 {FIELDS_EntityManagementFamilyPdu,0,7},
1525 {FIELDS_StartResumePdu,13,0},
1526 {FIELDS_TransmitterPdu,25,0},
1527 {FIELDS_TrackJamTarget,0,0},
1528 {FIELDS_ElectronicEmissionsPdu,23,0},
1529 {FIELDS_ResupplyOfferPdu,6,0},
1530 {FIELDS_MinefieldFamilyPdu,0,8},
1531 {FIELDS_SetDataReliablePdu,59,0},
1532 {FIELDS_EventReportPdu,21,0},
1533 {FIELDS_PointObjectStatePdu,43,0},
1534 {FIELDS_EnvironmentalProcessPdu,41,0},
1535 {FIELDS_DataPdu,20,0},
1536 {FIELDS_IsGroupOfPdu,34,0},
1537 {FIELDS_MinefieldDataPdu,39,0},
1538 {FIELDS_TransferControlRequestPdu,35,0},
1539 {FIELDS_EntityInformationFamilyPdu,0,1},
1540 {FIELDS_AcknowledgeReliablePdu,55,0},
1541 {FIELDS_StartResumeReliablePdu,53,0},
1542 {FIELDS_IffAtcNavAidsLayer2Pdu,0,0},
1543 {FIELDS_ArealObjectStatePdu,45,0},
1544 {FIELDS_DataQueryReliablePdu,58,0},
1545 {FIELDS_AggregateStatePdu,33,0},
1546 {FIELDS_EntityStateUpdatePdu,67,1},
1547 {FIELDS_MinefieldStatePdu,37,0},
1548 {FIELDS_DataReliablePdu,60,0},
1549 {FIELDS_CommentPdu,22,0},
1550 {FIELDS_CommentReliablePdu,62,0},
1551 {FIELDS_DetonationPdu,3,0},
1552 {FIELDS_SetDataPdu,19,0},
1553 {FIELDS_RecordQueryReliablePdu,63,0},
1554 {FIELDS_CollisionPdu,4,1},
1555 {FIELDS_ActionResponsePdu,17,0},
1556 {FIELDS_FirePdu,2,0},
1557 {FIELDS_ReceiverPdu,27,0},
1558 {FIELDS_UaPdu,29,0},
1559 {FIELDS_IntercomControlPdu,32,0},
1560 {FIELDS_SignalPdu,26,0},
1561 {FIELDS_RemoveEntityReliablePdu,52,0},
1562 {FIELDS_SeesPdu,30,0},
1563 {FIELDS_CreateEntityReliablePdu,51,0},
1564 {FIELDS_StopFreezeReliablePdu,54,0},
1565 {FIELDS_EventReportReliablePdu,61,0},
1566 {FIELDS_MinefieldResponseNackPdu,40,0},
1567 {FIELDS_CollisionElasticPdu,66,1},
1568 {FIELDS_ActionResponseReliablePdu,57,0},
1569 {FIELDS_IsPartOfPdu,36,0},
1570 {FIELDS_MinefieldQueryPdu,38,0},
1571 {FIELDS_EntityStatePdu,1,0},
1572 {FIELDS_FastEntityStatePdu,1,0},
1573};
1574int pdu2dis [] = {
1575 0,
1576 type_FastEntityStatePdu,
1577 type_FirePdu,
1578 type_DetonationPdu,
1579 type_CollisionPdu,
1580 type_ServiceRequestPdu,
1581 type_ResupplyOfferPdu,
1582 type_ResupplyReceivedPdu,
1583 type_ResupplyCancelPdu,
1584 type_RepairCompletePdu,
1585 type_RepairResponsePdu,
1586 type_CreateEntityPdu,
1587 type_RemoveEntityPdu,
1588 type_StartResumePdu,
1589 type_StopFreezePdu,
1590 type_AcknowledgePdu,
1591 type_ActionRequestPdu,
1592 type_ActionResponsePdu,
1593 type_DataQueryPdu,
1594 type_SetDataPdu,
1595 type_DataPdu,
1596 type_EventReportPdu,
1597 type_CommentPdu,
1598 type_ElectronicEmissionsPdu,
1599 type_DesignatorPdu,
1600 type_TransmitterPdu,
1601 type_SignalPdu,
1602 type_ReceiverPdu,
1603 type_IffAtcNavAidsLayer1Pdu,
1604 type_UaPdu,
1605 type_SeesPdu,
1606 type_IntercomSignalPdu,
1607 type_IntercomControlPdu,
1608 type_AggregateStatePdu,
1609 type_IsGroupOfPdu,
1610 type_TransferControlRequestPdu,
1611 type_IsPartOfPdu,
1612 type_MinefieldStatePdu,
1613 type_MinefieldQueryPdu,
1614 type_MinefieldDataPdu,
1615 type_MinefieldResponseNackPdu,
1616 type_EnvironmentalProcessPdu,
1617 type_GriddedDataPdu,
1618 type_PointObjectStatePdu,
1619 type_LinearObjectStatePdu,
1620 type_ArealObjectStatePdu,
1621 0,
1622 0,
1623 0,
1624 0,
1625 0,
1626 type_CreateEntityReliablePdu,
1627 type_RemoveEntityReliablePdu,
1628 type_StartResumeReliablePdu,
1629 type_StopFreezeReliablePdu,
1630 type_AcknowledgeReliablePdu,
1631 type_ActionRequestReliablePdu,
1632 type_ActionResponseReliablePdu,
1633 type_DataQueryReliablePdu,
1634 type_SetDataReliablePdu,
1635 type_DataReliablePdu,
1636 type_EventReportReliablePdu,
1637 type_CommentReliablePdu,
1638 type_RecordQueryReliablePdu,
1639 type_SetRecordReliablePdu,
1640 0,
1641 type_CollisionElasticPdu,
1642 type_EntityStateUpdatePdu,
1643};
1644int pduToDis(int pdu){
1645 return pdu2dis[pdu];
1646}
1647void initialize_field(char *t,struct disfieldattr* field);
1648void initializeclass(unsigned char *t, int distype){
1649 struct disfieldattr *field;
1650 memset(t,0,TYPE_SIZE[distype]);
1651 field = DIS_CLASS[distype].fields;
1652 do{
1653 //initialize field
1654 initialize_field((char *)t+field->offset,field);
1655 field++;
1656 } while(field->kind > -1);
1657}
1658void initialize_field(char *t,struct disfieldattr* field){
1659 switch(field->kind){
1660 case CLASSREF:
1661 initializeclass((unsigned char *)t,field->type);
1662 break;
1663 case PRIMITIVE:
1664 switch(field->type){
1665 case type_UBYTE:
1666 {
1667 unsigned char ub = (unsigned char)field->defaultvalue;
1668 memcpy(t,&ub,TYPE_SIZE[field->type]);
1669 break;
1670 }
1671 case type_BYTE:
1672 {
1673 char bb = (char)field->defaultvalue;
1674 memcpy(t,&bb,TYPE_SIZE[field->type]);
1675 break;
1676 }
1677 case type_USHORT:
1678 {
1679 unsigned short us = (unsigned short)field->defaultvalue;
1680 memcpy(t,&us,TYPE_SIZE[field->type]);
1681 break;
1682 }
1683 case type_SHORT:
1684 {
1685 short ss = (short)field->defaultvalue;
1686 memcpy(t,&ss,TYPE_SIZE[field->type]);
1687 break;
1688 }
1689 case type_UINT:
1690 {
1691 unsigned int ui = (unsigned int)field->defaultvalue;
1692 memcpy(t,&ui,TYPE_SIZE[field->type]);
1693 break;
1694 }
1695 case type_INT:
1696 {
1697 int ii = (int)field->defaultvalue;
1698 memcpy(t,&ii,TYPE_SIZE[field->type]);
1699 break;
1700 }
1701 case type_ULONG:
1702 {
1703 unsigned long long ull = (unsigned long long)field->defaultvalue;
1704 memcpy(t,&ull,TYPE_SIZE[field->type]);
1705 break;
1706 }
1707 case type_LONG:
1708 {
1709 long long ll = (long long)field->defaultvalue;
1710 memcpy(t,&ll,TYPE_SIZE[field->type]);
1711 break;
1712 }
1713 case type_FLOAT:
1714 {
1715 float ff = (float)field->defaultvalue;
1716 memcpy(t,&ff,TYPE_SIZE[field->type]);
1717 break;
1718 }
1719 case type_DOUBLE:
1720 {
1721 double dd = (double)field->defaultvalue;
1722 memcpy(t,&dd,TYPE_SIZE[field->type]);
1723 break;
1724 }
1725 default: break;
1726 }
1727 break;
1728 case FIXED_LIST:
1729 case VARIABLE_LIST:
1730 break;
1731 }
1732}
1733unsigned char * dis_ctor(int distype){
1734 unsigned char *item;
1735 struct dis_class *cinit = &DIS_CLASS[distype];
1736 item = malloc(TYPE_SIZE[distype]);
1737 memset(item,0,TYPE_SIZE[distype]);
1738 initializeclass(item,distype);
1739 if(cinit->pduType || cinit->protocolFamily)
1740 ctor_pduHeader(item,cinit->pduType,cinit->protocolFamily);
1741 return item;
1742}
1743void dis_dtor(unsigned char *item, int distype){
1744 struct dis_class *cinit = &DIS_CLASS[distype];
1745 if(item){
1746 //look for and free malloced VARIABLE_LIST fields
1747 if(cinit->fields){
1748 struct disfieldattr *field;
1749 field = cinit->fields;
1750 do{
1751 if(field->kind == VARIABLE_LIST){
1752 unsigned char **vlist;
1753 vlist = (unsigned char **)(item + field->offset);
1754 if(*vlist)
1755 free(*vlist);
1756 }
1757 field++;
1758 } while(field->kind > -1);
1759 }
1760 //free disdata
1761 free(item);
1762 }
1763}
1764
1765static int isHostLittleEndian = TRUE; //set once during program run
1766static int unde = 0; //debug = 1
1767char *endianswap(char *target, char *source, int size){
1768 if(isHostLittleEndian){
1769 int i;
1770 for(i=0;i<size;i++)
1771 target[i] = source[size-i-1];
1772 }else{
1773 memcpy(target,source,size);
1774 }
1775 return target;
1776 }
1777int primitive2int(unsigned char *ptr, int type){
1778 int n = 0;
1779 switch(type){
1780 case type_BYTE:
1781 n = (int)*(unsigned char*)ptr; break;
1782 case type_UBYTE:
1783 n = (int)*(char *)ptr; break;
1784 case type_INT:
1785 n = (int)*(int*)ptr; break;
1786 case type_UINT:
1787 n = (int)*(unsigned int *)ptr; break;
1788 case type_LONG:
1789 n = (int)*(long long *)ptr; break;
1790 case type_ULONG:
1791 n = (int)*(unsigned long long*)ptr; break;
1792 default:
1793 n = 0;
1794 }
1795 return n;
1796}
1797unsigned char *dis_marshal_list_item(unsigned char *datastream, unsigned char* item, int kind, int type){
1798 unsigned char *carat;
1799 int size;
1800 carat = datastream;
1801 size = TYPE_SIZE[type];
1802 switch(kind){
1803 case CLASSREF:
1804 //recurse for complex types
1805 if(unde) printf("classref size %d\n",size*8);
1806 carat = dis_marshal(carat, item, type);
1807 if(unde) printf("/classref\n");
1808 break;
1809 case PRIMITIVE:
1810 endianswap((char *)carat,(char *)item, size);
1811 if(unde) printf("doing primitive size %d\n",size*8);
1812 carat += size; //size in bytes
1813 break;
1814 default:
1815 //charater and bit buffers
1816 memcpy(carat,item,size);
1817 carat += size; //size in bytes
1818 if(unde) printf("doing unknown size %d\n",size * 8);
1819 break;
1820 }
1821 return carat;
1822}
1823unsigned char * dis_marshal(unsigned char * datastream, unsigned char *item, int type)
1824{
1825 int i,n;
1826 unsigned char *carat;
1827 unsigned char **vlist;
1828 struct disfieldattr *field = DIS_CLASS[type].fields;
1829 carat = datastream;
1830 do{
1831 switch(field->kind){
1832 case CLASSREF:
1833 //recurse for complex types
1834 carat = dis_marshal(carat,item + field->offset, field->type);
1835 break;
1836 case PRIMITIVE:
1837 endianswap((char *)carat, (char *)item + field->offset,field->size);
1838 carat += field->size; //size in bytes
1839 break;
1840 case FIXED_LIST:
1841 //in-place list
1842 for(i=0;i<field->listLength;i++){
1843 carat = dis_marshal_list_item(carat,item + field->offset + i*field->size,field->listkind,field->type);
1844 }
1845 break;
1846 case VARIABLE_LIST:
1847 n = 0;
1848 {
1849 struct disfieldattr *field2 = &DIS_CLASS[type].fields[field->countfieldindex];
1850 n = primitive2int(item+field2->offset,field2->type);
1851 }
1852 vlist = (unsigned char **)(item + field->offset);
1853 for(i=0;i<n;i++){
1854 carat = dis_marshal_list_item(carat,*vlist + i*field->size,field->listkind,field->type);
1855 }
1856 if(unde) printf("doing %s variable list size %d\n",field->name,field->size * field->listLength * 8);
1857 break;
1858 default:
1859 //charater and bit buffers
1860 memcpy(carat,item + field->offset,field->size);
1861 carat += field->size; //size in bytes
1862 break;
1863 }
1864 field ++;
1865 }while(field->kind > -1);
1866 return carat;
1867}
1868unsigned char *dis_unmarshal_list_item(unsigned char *datastream, unsigned char* item, int kind, int type){
1869 unsigned char *carat;
1870 int size;
1871 carat = datastream;
1872 size = TYPE_SIZE[type];
1873 switch(kind){
1874 case CLASSREF:
1875 //recurse for complex types
1876 if(unde) printf("classref size %d\n",size*8);
1877 carat = dis_unmarshal(carat, item, type);
1878 if(unde) printf("/classref\n");
1879 break;
1880 case PRIMITIVE:
1881 endianswap((char *)item, (char *)carat, size);
1882 if(unde) printf("doing primitive size %d\n",size*8);
1883 carat += size; //size in bytes
1884 break;
1885 default:
1886 //charater and bit buffers
1887 memcpy(item,carat,size);
1888 carat += size; //size in bytes
1889 if(unde) printf("doing unknown size %d\n",size * 8);
1890 break;
1891 }
1892 return carat;
1893}
1894unsigned char *dis_unmarshal(unsigned char *datastream, unsigned char* item, int type){
1895 unsigned char *carat;
1896 unsigned char **vlist;
1897 int i, n;
1898 struct disfieldattr *field = DIS_CLASS[type].fields;
1899 carat = datastream;
1900 do{
1901 switch(field->kind){
1902 case CLASSREF:
1903 //recurse for complex types
1904 if(unde) printf("classref %s size %d\n",field->name,field->size*8);
1905 carat = dis_unmarshal(carat,item + field->offset, field->type);
1906 if(unde) printf("/classref\n");
1907 break;
1908 case PRIMITIVE:
1909 endianswap((char *)item + field->offset,(char *)carat, field->size);
1910 if(unde) printf("doing %s primitive size %d\n",field->name,field->size*8);
1911 carat += field->size; //size in bytes
1912 break;
1913 case FIXED_LIST:
1914 //in-place list
1915 for(i=0;i<field->listLength;i++){
1916 carat = dis_unmarshal_list_item(carat,item + field->offset + i*field->size,field->listkind,field->type);
1917 }
1918 if(unde) printf("doing %s fixed list size %d\n",field->name,field->size*field->listLength*8);
1919 break;
1920 case VARIABLE_LIST:
1921 n = 0;
1922 {
1923 struct disfieldattr *field2 = &DIS_CLASS[type].fields[field->countfieldindex];
1924 n = primitive2int(item+field2->offset,field2->type);
1925 }
1926 vlist = (unsigned char **)(item + field->offset);
1927 *vlist = NULL;
1928 if(n) *vlist = malloc(n * field->size);
1929 for(i=0;i<n;i++){
1930 carat = dis_unmarshal_list_item(carat,*vlist + i*field->size,field->listkind,field->type);
1931 }
1932 if(unde) printf("doing %s variable list size %d\n",field->name,field->size * field->listLength * 8);
1933 break;
1934 default:
1935 //charater and bit buffers
1936 memcpy(item + field->offset,carat,field->size);
1937 carat += field->size; //size in bytes
1938 if(unde) printf("doing %s unknown size %d\n",field->name,field->size * 8);
1939 break;
1940 }
1941 field ++;
1942 }while(field->kind > -1);
1943 return carat;
1944}
Definition DIS.h:519
Definition DIS.h:222
Definition DIS.h:634
Definition DIS.h:597
unsigned char pduType
Type of pdu, unique for each PDU class.
Definition DIS.h:603
unsigned char protocolFamily
value that refers to the protocol family, eg SimulationManagement, et
Definition DIS.h:605
Definition DIS.h:642
Definition DIS.h:1869