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};
1643int pduToDis(int pdu){
1644 return pdu2dis[pdu];
1645}
1646void initialize_field(char *t,struct disfieldattr* field);
1647void initializeclass(unsigned char *t, int distype){
1648 struct disfieldattr *field;
1649 memset(t,0,TYPE_SIZE[distype]);
1650 field = DIS_CLASS[distype].fields;
1651 do{
1652 //initialize field
1653 initialize_field((char *)t+field->offset,field);
1654 field++;
1655 } while(field->kind > -1);
1656}
1657void initialize_field(char *t,struct disfieldattr* field){
1658 switch(field->kind){
1659 case CLASSREF:
1660 initializeclass((unsigned char *)t,field->type);
1661 break;
1662 case PRIMITIVE:
1663 switch(field->type){
1664 case type_UBYTE:
1665 {
1666 unsigned char ub = (unsigned char)field->defaultvalue;
1667 memcpy(t,&ub,TYPE_SIZE[field->type]);
1668 break;
1669 }
1670 case type_BYTE:
1671 {
1672 char bb = (char)field->defaultvalue;
1673 memcpy(t,&bb,TYPE_SIZE[field->type]);
1674 break;
1675 }
1676 case type_USHORT:
1677 {
1678 unsigned short us = (unsigned short)field->defaultvalue;
1679 memcpy(t,&us,TYPE_SIZE[field->type]);
1680 break;
1681 }
1682 case type_SHORT:
1683 {
1684 short ss = (short)field->defaultvalue;
1685 memcpy(t,&ss,TYPE_SIZE[field->type]);
1686 break;
1687 }
1688 case type_UINT:
1689 {
1690 unsigned int ui = (unsigned int)field->defaultvalue;
1691 memcpy(t,&ui,TYPE_SIZE[field->type]);
1692 break;
1693 }
1694 case type_INT:
1695 {
1696 int ii = (int)field->defaultvalue;
1697 memcpy(t,&ii,TYPE_SIZE[field->type]);
1698 break;
1699 }
1700 case type_ULONG:
1701 {
1702 unsigned long long ull = (unsigned long long)field->defaultvalue;
1703 memcpy(t,&ull,TYPE_SIZE[field->type]);
1704 break;
1705 }
1706 case type_LONG:
1707 {
1708 long long ll = (long long)field->defaultvalue;
1709 memcpy(t,&ll,TYPE_SIZE[field->type]);
1710 break;
1711 }
1712 case type_FLOAT:
1713 {
1714 float ff = (float)field->defaultvalue;
1715 memcpy(t,&ff,TYPE_SIZE[field->type]);
1716 break;
1717 }
1718 case type_DOUBLE:
1719 {
1720 double dd = (double)field->defaultvalue;
1721 memcpy(t,&dd,TYPE_SIZE[field->type]);
1722 break;
1723 }
1724 default: break;
1725 }
1726 break;
1727 case FIXED_LIST:
1728 case VARIABLE_LIST:
1729 break;
1730 }
1731}
1732unsigned char * dis_ctor(int distype){
1733 unsigned char *item;
1734 struct dis_class *cinit = &DIS_CLASS[distype];
1735 item = malloc(TYPE_SIZE[distype]);
1736 memset(item,0,TYPE_SIZE[distype]);
1737 initializeclass(item,distype);
1738 if(cinit->pduType || cinit->protocolFamily)
1739 ctor_pduHeader(item,cinit->pduType,cinit->protocolFamily);
1740 return item;
1741}
1742void dis_dtor(unsigned char *item, int distype){
1743 struct dis_class *cinit = &DIS_CLASS[distype];
1744 if(item){
1745 //look for and free malloced VARIABLE_LIST fields
1746 if(cinit->fields){
1747 struct disfieldattr *field;
1748 field = cinit->fields;
1749 do{
1750 if(field->kind == VARIABLE_LIST){
1751 unsigned char **vlist;
1752 vlist = (unsigned char **)(item + field->offset);
1753 if(*vlist)
1754 free(*vlist);
1755 }
1756 field++;
1757 } while(field->kind > -1);
1758 }
1759 //free disdata
1760 free(item);
1761 }
1762}
1763
1764static int isHostLittleEndian = TRUE; //set once during program run
1765static int unde = 0; //debug = 1
1766char *endianswap(char *target, char *source, int size){
1767 if(isHostLittleEndian){
1768 int i;
1769 for(i=0;i<size;i++)
1770 target[i] = source[size-i-1];
1771 }else{
1772 memcpy(target,source,size);
1773 }
1774 return target;
1775 }
1776int primitive2int(unsigned char *ptr, int type){
1777 int n = 0;
1778 switch(type){
1779 case type_BYTE:
1780 n = (int)*(unsigned char*)ptr; break;
1781 case type_UBYTE:
1782 n = (int)*(char *)ptr; break;
1783 case type_INT:
1784 n = (int)*(int*)ptr; break;
1785 case type_UINT:
1786 n = (int)*(unsigned int *)ptr; break;
1787 case type_LONG:
1788 n = (int)*(long long *)ptr; break;
1789 case type_ULONG:
1790 n = (int)*(unsigned long long*)ptr; break;
1791 default:
1792 n = 0;
1793 }
1794 return n;
1795}
1796unsigned char *dis_marshal_list_item(unsigned char *datastream, unsigned char* item, int kind, int type){
1797 unsigned char *carat;
1798 int size;
1799 carat = datastream;
1800 size = TYPE_SIZE[type];
1801 switch(kind){
1802 case CLASSREF:
1803 //recurse for complex types
1804 if(unde) printf("classref size %d\n",size*8);
1805 carat = dis_marshal(carat, item, type);
1806 if(unde) printf("/classref\n");
1807 break;
1808 case PRIMITIVE:
1809 endianswap((char *)carat,(char *)item, size);
1810 if(unde) printf("doing primitive size %d\n",size*8);
1811 carat += size; //size in bytes
1812 break;
1813 default:
1814 //charater and bit buffers
1815 memcpy(carat,item,size);
1816 carat += size; //size in bytes
1817 if(unde) printf("doing unknown size %d\n",size * 8);
1818 break;
1819 }
1820 return carat;
1821}
1822unsigned char * dis_marshal(unsigned char * datastream, unsigned char *item, int type)
1823{
1824 int i,n;
1825 unsigned char *carat;
1826 unsigned char **vlist;
1827 struct disfieldattr *field = DIS_CLASS[type].fields;
1828 carat = datastream;
1829 do{
1830 switch(field->kind){
1831 case CLASSREF:
1832 //recurse for complex types
1833 carat = dis_marshal(carat,item + field->offset, field->type);
1834 break;
1835 case PRIMITIVE:
1836 endianswap((char *)carat, (char *)item + field->offset,field->size);
1837 carat += field->size; //size in bytes
1838 break;
1839 case FIXED_LIST:
1840 //in-place list
1841 for(i=0;i<field->listLength;i++){
1842 carat = dis_marshal_list_item(carat,item + field->offset + i*field->size,field->listkind,field->type);
1843 }
1844 break;
1845 case VARIABLE_LIST:
1846 n = 0;
1847 {
1848 struct disfieldattr *field2 = &DIS_CLASS[type].fields[field->countfieldindex];
1849 n = primitive2int(item+field2->offset,field2->type);
1850 }
1851 vlist = (unsigned char **)(item + field->offset);
1852 for(i=0;i<n;i++){
1853 carat = dis_marshal_list_item(carat,*vlist + i*field->size,field->listkind,field->type);
1854 }
1855 if(unde) printf("doing %s variable list size %d\n",field->name,field->size * field->listLength * 8);
1856 break;
1857 default:
1858 //charater and bit buffers
1859 memcpy(carat,item + field->offset,field->size);
1860 carat += field->size; //size in bytes
1861 break;
1862 }
1863 field ++;
1864 }while(field->kind > -1);
1865 return carat;
1866}
1867unsigned char *dis_unmarshal_list_item(unsigned char *datastream, unsigned char* item, int kind, int type){
1868 unsigned char *carat;
1869 int size;
1870 carat = datastream;
1871 size = TYPE_SIZE[type];
1872 switch(kind){
1873 case CLASSREF:
1874 //recurse for complex types
1875 if(unde) printf("classref size %d\n",size*8);
1876 carat = dis_unmarshal(carat, item, type);
1877 if(unde) printf("/classref\n");
1878 break;
1879 case PRIMITIVE:
1880 endianswap((char *)item, (char *)carat, size);
1881 if(unde) printf("doing primitive size %d\n",size*8);
1882 carat += size; //size in bytes
1883 break;
1884 default:
1885 //charater and bit buffers
1886 memcpy(item,carat,size);
1887 carat += size; //size in bytes
1888 if(unde) printf("doing unknown size %d\n",size * 8);
1889 break;
1890 }
1891 return carat;
1892}
1893unsigned char *dis_unmarshal(unsigned char *datastream, unsigned char* item, int type){
1894 unsigned char *carat;
1895 unsigned char **vlist;
1896 int i, n;
1897 struct disfieldattr *field = DIS_CLASS[type].fields;
1898 carat = datastream;
1899 do{
1900 switch(field->kind){
1901 case CLASSREF:
1902 //recurse for complex types
1903 if(unde) printf("classref %s size %d\n",field->name,field->size*8);
1904 carat = dis_unmarshal(carat,item + field->offset, field->type);
1905 if(unde) printf("/classref\n");
1906 break;
1907 case PRIMITIVE:
1908 endianswap((char *)item + field->offset,(char *)carat, field->size);
1909 if(unde) printf("doing %s primitive size %d\n",field->name,field->size*8);
1910 carat += field->size; //size in bytes
1911 break;
1912 case FIXED_LIST:
1913 //in-place list
1914 for(i=0;i<field->listLength;i++){
1915 carat = dis_unmarshal_list_item(carat,item + field->offset + i*field->size,field->listkind,field->type);
1916 }
1917 if(unde) printf("doing %s fixed list size %d\n",field->name,field->size*field->listLength*8);
1918 break;
1919 case VARIABLE_LIST:
1920 n = 0;
1921 {
1922 struct disfieldattr *field2 = &DIS_CLASS[type].fields[field->countfieldindex];
1923 n = primitive2int(item+field2->offset,field2->type);
1924 }
1925 vlist = (unsigned char **)(item + field->offset);
1926 *vlist = NULL;
1927 if(n) *vlist = malloc(n * field->size);
1928 for(i=0;i<n;i++){
1929 carat = dis_unmarshal_list_item(carat,*vlist + i*field->size,field->listkind,field->type);
1930 }
1931 if(unde) printf("doing %s variable list size %d\n",field->name,field->size * field->listLength * 8);
1932 break;
1933 default:
1934 //charater and bit buffers
1935 memcpy(item + field->offset,carat,field->size);
1936 carat += field->size; //size in bytes
1937 if(unde) printf("doing %s unknown size %d\n",field->name,field->size * 8);
1938 break;
1939 }
1940 field ++;
1941 }while(field->kind > -1);
1942 return carat;
1943}
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