chore(include): changed include files from .h to .hpp
[KDIS.git] / include / KDIS / DataTypes / Enums / EnumEntityManagement.hpp
blobb21b9ad27c83d497fbc5c42e42cc21eca95538df
1 /*********************************************************************
2 Copyright 2013 Karl Jones
3 All rights reserved.
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions are met:
8 1. Redistributions of source code must retain the above copyright notice, this
9 list of conditions and the following disclaimer.
10 2. Redistributions in binary form must reproduce the above copyright notice,
11 this list of conditions and the following disclaimer in the documentation
12 and/or other materials provided with the distribution.
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
15 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
18 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 For Further Information Please Contact me at
26 Karljj1@yahoo.com
27 http://p.sf.net/kdis/UserGuide
28 *********************************************************************/
30 /********************************************************************
31 EnumEntityManagement
32 created: 07/02/2009
33 author: Karl Jones
35 purpose: Enums used in Entity Mangement PDUs
36 *********************************************************************/
38 #pragma once
40 #include "./EnumDescriptor.h"
42 namespace KDIS {
43 namespace DATA_TYPE {
44 namespace ENUMS {
46 /************************************************************************/
47 /* Aggregate State */
48 /* Used In: */
49 /* Aggregate_State_PDU */
50 /************************************************************************/
52 enum AggregateState
54 OtherAggregateState = 0,
55 Aggregated = 1,
56 Disaggregated = 2,
57 FullyDisaggregated = 3,
58 PseudoDisaggregated = 4,
59 PartiallyDisaggregated = 5
62 // Returns number of values in the EnumDescriptor for this enum.
63 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
64 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
65 KDIS_EXPORT KUINT32 GetEnumSizeAggregateState();
67 // Returns the EnumDescriptor value for the specified index.
68 // Use GetEnumSize<enum> to get the array size.
69 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
70 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorAggregateState( KUINT32 Index );
72 KDIS_EXPORT KString GetEnumAsStringAggregateState( KINT32 Value );
74 // Returns true if a value was found.
75 KDIS_EXPORT KBOOL GetEnumFromStringAggregateState( const KString & Value, KINT32 & ValueOut );
77 /************************************************************************/
78 /* Aggregate Kind */
79 /* Aggregate kind used in AggregateType */
80 /* Used In: */
81 /* AggregateType */
82 /************************************************************************/
84 enum AggregateKind
86 OtherAggregateKind = 0,
87 MilitaryHierachy = 1,
88 CommonType = 2,
89 CommonMission = 3,
90 SimilarCapabilities = 4,
91 CommonLocation = 5
94 // Returns number of values in the EnumDescriptor for this enum.
95 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
96 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
97 KDIS_EXPORT KUINT32 GetEnumSizeAggregateKind();
99 // Returns the EnumDescriptor value for the specified index.
100 // Use GetEnumSize<enum> to get the array size.
101 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
102 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorAggregateKind( KUINT32 Index );
104 KDIS_EXPORT KString GetEnumAsStringAggregateKind( KINT32 Value );
106 // Returns true if a value was found.
107 KDIS_EXPORT KBOOL GetEnumFromStringAggregateKind( const KString & Value, KINT32 & ValueOut );
109 /************************************************************************/
110 /* Formation */
111 /* Aggregate formation */
112 /* Used In: */
113 /* Aggregate_State_PDU */
114 /************************************************************************/
116 enum Formation
118 OtherFormation = 0,
119 Assembly = 1,
120 Vee = 2,
121 Wedge = 3,
122 Line = 4,
123 Column = 5
126 // Returns number of values in the EnumDescriptor for this enum.
127 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
128 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
129 KDIS_EXPORT KUINT32 GetEnumSizeFormation();
131 // Returns the EnumDescriptor value for the specified index.
132 // Use GetEnumSize<enum> to get the array size.
133 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
134 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorFormation( KUINT32 Index );
136 KDIS_EXPORT KString GetEnumAsStringFormation( KINT32 Value );
138 // Returns true if a value was found.
139 KDIS_EXPORT KBOOL GetEnumFromStringFormation( const KString & Value, KINT32 & ValueOut );
141 /************************************************************************/
142 /* Grouped Entity Category */
143 /* Describes the type of entities constituting a group. */
144 /* Used In: */
145 /* IsGroupOf_PDU */
146 /************************************************************************/
148 enum GroupedEntityCategory
150 UndefinedGEC = 0,
151 BasicGroundCombatVehicleGEC = 1,
152 EnhancedGroundCombatVehicleGEC = 2,
153 BasicGroundCombatSoldierGEC = 3,
154 EnhancedGroundCombatSoldierGEC = 4,
155 BasicRotorWingAircraftGEC = 5,
156 EnhancedRotorWingAircraftGEC = 6,
157 BasicFixedWingAircraftGEC = 7,
158 EnhancedFixedWingAircraftGEC = 8,
159 GroundLogisticsVehicleGEC = 9
162 // Returns number of values in the EnumDescriptor for this enum.
163 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
164 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
165 KDIS_EXPORT KUINT32 GetEnumSizeGroupedEntityCategory();
167 // Returns the EnumDescriptor value for the specified index.
168 // Use GetEnumSize<enum> to get the array size.
169 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
170 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorGroupedEntityCategory( KUINT32 Index );
172 KDIS_EXPORT KString GetEnumAsStringGroupedEntityCategory( KINT32 Value );
174 // Returns true if a value was found.
175 KDIS_EXPORT KBOOL GetEnumFromStringGroupedEntityCategory( const KString & Value, KINT32 & ValueOut );
177 /************************************************************************/
178 /* Transfer Type */
179 /* Transfer Type field of the Transfer Control PDU. */
180 /* Used In: */
181 /* Transfer Control PDU */
182 /************************************************************************/
184 enum TransferType
186 OtherTransferType = 0,
188 // AKA Push Transfer - Entity.
189 // A simulation initiates a request to transfer an entity it owns to another simulation.
190 ControllingApplicationRequestsTransferOfAnEntity = 1,
192 // AKA Automatic Pull Transfer - Entity.
193 // A simulation automatically initiates a request to assume ownership of an entity presently
194 // owned by another simulation.
195 ApplicationDesiringControlRequestsTransferOfAnEntity = 2,
197 MutualExchange_SwapOfAnEntity = 3,
199 // AKA Push Transfer - Environmental Process.
200 // A simulation initiates a request to transfer an environmental process it owns to another simulation.
201 ControllingApplicationRequestsTransferOfAnEnvironmentalProcess = 4,
203 // AKA Automatic Pull Transfer - Environmental Process .
204 // A simulation automatically initiates a request to assume ownership of an environmental process
205 // presently owned by another simulation.
206 ApplicationDesiringControlsRequestsTransferOfAnEnvironmentalProcess = 5,
208 MutualExchange_SwapOfAnEnvironmental = 6,
210 // Cancel Transfer. The present transfer is cancelled.
211 CancelTransfer = 7,
213 // **Note the following are taken from 'IEEE 1278.1-200X Draft'**
215 // A simulation manually initiates a request to assume ownership of an entity presently owned
216 // by another simulation
217 ManualPullTransfer_Entity = 8,
219 //A simulation manually initiates a request to assume ownership of an environmental process
220 // presently owned by another simulation.
221 ManualPullTransfer_EnvironmentalProcess = 9,
223 //If the entity specified in the Transferred Entity field exists as a local entity at the
224 // simulation, it is to be automatically removed.
225 RemoveEntity = 10
228 // Returns number of values in the EnumDescriptor for this enum.
229 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
230 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
231 KDIS_EXPORT KUINT32 GetEnumSizeTransferType();
233 // Returns the EnumDescriptor value for the specified index.
234 // Use GetEnumSize<enum> to get the array size.
235 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
236 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorTransferType( KUINT32 Index );
238 KDIS_EXPORT KString GetEnumAsStringTransferType( KINT32 Value );
240 // Returns true if a value was found.
241 KDIS_EXPORT KBOOL GetEnumFromStringTransferType( const KString & Value, KINT32 & ValueOut );
243 /************************************************************************/
244 /* ID_Enum / Datum ID / Record ID */
245 /* Used In: */
246 /* Fixed Datum */
247 /* Variable Datum */
248 /* Record Set */
249 /************************************************************************/
251 enum ID_Enum
253 IdentificationID = 10000,
254 DRAAngularX_VelocityID = 100001,
255 DRAAngularY_VelocityID = 100002,
256 DRAAngularZ_VelocityID = 100003,
257 Appearance_TrailingEffectsID = 100004,
258 Appearance_HatchID = 100005,
259 Appearance_CharacterSetID = 100008,
260 Capability_AmmunitionSupplierID = 100010,
261 Capability_MiscellaneousSupplierID = 100011,
262 Capability_RepairProviderID = 100012,
263 ArticulationParameterID = 100014,
264 ArticulationParameterTypeID = 100047,
265 ArticulationParameterValueID = 100048,
266 TimeofDay__SceneID = 100058,
267 SonarSystemStatusID = 100100,
268 UpperLatitudeID = 100160,
269 LatitudeSouth_LocationOfWeatherCellID = 100161,
270 WesternLongitudeID = 100162,
271 LongitudeWest_LocationOfWeatherCellID = 100163,
272 AccomplishedAcceptID = 100164,
273 CDROMNumber_DiskIDForTerrainID = 100165,
274 DTEDDiskID = 100166,
275 AltitudeID = 100167,
276 TacticalSystemStatusID = 100169,
277 JTIDSStatusID = 100170,
278 TADIL_JStatusID = 100171,
279 DSDDStatusID = 100172,
280 WeaponSystemStatusID = 100200,
281 Entity_Track_UpdateDataID = 100300,
282 Local_ForceTrainingID = 100400,
283 Entity_TrackIdentityDataID = 100500,
284 EngagementDataID = 100600,
285 Entity_TrackEquipmentDataID = 100700,
286 Emission_EWDataID = 100800,
287 AppearanceDataID = 100900,
288 Command_OrderDataID = 101000,
289 EnvironmentalDataID = 101100,
290 SignificantEventDataID = 101200,
291 OperatorActionDataID = 101300,
292 TimeSynchronizationID = 101400,
293 TomahawkDataID = 101500,
294 EntityTypeID = 11000,
295 ConcatenatedID = 11100,
296 Kind_U8_ID = 11110,
297 Domain_U8_ID = 11120,
298 Country_U16_ID = 11130,
299 Category_U8_ID = 11140,
300 Subcategory_U8_ID = 11150,
301 Specific_U8_ID = 11160,
302 Extra_U8_ID = 11170,
303 ForceID_U8_ID = 11200,
304 DescriptionID = 11300,
305 AlternativeEntityTypeID = 12000,
306 Kind_U8_1ID = 12110,
307 Domain_U8_1ID = 12120,
308 Country_U16_1ID = 12130,
309 Category_U8_1ID = 12140,
310 Subcategory_U8_1ID = 12150,
311 Specific_U8_1ID = 12160,
312 Extra_U8_1ID = 12170,
313 Description1ID = 12300,
314 EntityMarkingID = 13000,
315 EntityMarkingString_string80_ID = 13100,
316 CrewID_string80_ID = 13200,
317 TaskOrganizationID = 14000,
318 RegimentName_string_ID = 14200,
319 BattalionName_string_ID = 14300,
320 CompanyName_string_ID = 14400,
321 PlatoonNameID = 14500,
322 SquadNameID = 14520,
323 TeamNameID = 14540,
324 BumperNameID = 14600,
325 VehicleNameID = 14700,
326 UnitNumberID = 14800,
327 DISIdentityID = 15000,
328 DISSiteIDID = 15100,
329 DISHostIDID = 15200,
330 DISEntityIDID = 15300,
331 OwnershipStatusID = 15800, // Ownership Status record - 64 bits
332 LoadsID = 20000,
333 CrewMembersID = 21000,
334 CrewMemberIDID = 21100,
335 HealthID = 21200,
336 JobAssignment_string_ID = 21300,
337 FuelID = 23000,
338 Quantity_liters_ID = 23100,
339 Quantity_gallons_ID = 23105,
340 AmmunitionID = 24000,
341 _120_mmHEAT_quantity_Rounds_ID = 24001,
342 _120_mmSABOT_quantity_Rounds_ID = 24002,
343 _12_7_mmM8_quantity_Rounds_ID = 24003,
344 _12_7_mmM20_quantity_Rounds_ID = 24004,
345 _7_62_mmM62_quantity_Rounds_ID = 24005,
346 M250UKL8A1_quantity_Grenades_ID = 24006,
347 M250UKL8A3_quantity_Grenades_ID = 24007,
348 _7_62_mmM80_quantity_Rounds_ID = 24008,
349 _12_7_mm_quantity_Rounds_ID = 24009,
350 _7_62_mm_quantity_Rounds_ID = 24010,
351 Mines_quantity_Mines_ID = 24060,
352 TypeID = 24100,
353 KindID = 24110,
354 DomainID = 24120,
355 CountryID = 24130,
356 CategoryID = 24140,
357 SubcategoryID = 24150,
358 ExtraID = 24160,
359 Description2ID = 24300,
360 CargoID = 25000,
361 VehicleMass_U32Kilograms_ID = 26000,
362 SupplyQuantityID = 27000,
363 ArmamentID = 28000,
364 StatusID = 30000,
365 PositionID = 31000,
366 MilGrid10ID = 31100,
367 GeocentricCoordinatesID = 31200,
368 X_U32meters_ID = 31210,
369 Y_U32meters_ID = 31220,
370 Z_U32meters_ID = 31230,
371 LatitudeID = 31300,
372 LongitudeID = 31400,
373 LineofSightID = 31500,
374 XID = 31510,
375 YID = 31520,
376 ZID = 31530,
377 OrientationID = 32000,
378 HullHeadingAngle_degrees_ID = 32100,
379 HullPitchAngleID = 32200,
380 RollAngleID = 32300,
381 X_U32degrees_ID = 32500,
382 Y_U32degrees_ID = 32600,
383 Z_U32degrees_ID = 32700,
384 AppearanceID = 33000,
385 AmbientLightingID = 33100,
386 LightsID = 33101,
387 PaintSchemeID = 33200,
388 SmokeID = 33300,
389 TrailingEffectsID = 33400,
390 FlamingID = 33500,
391 MarkingID = 33600,
392 MinePlowsAttachedID = 33710,
393 MineRollersAttachedID = 33720,
394 TankTurretAzimuth_degreesRel2Ion_ID = 33730,
395 FailuresandMalfunctionsID = 34000,
396 Age_miles_ID = 34100,
397 KilometersID = 34110,
398 DamageID = 35000,
399 CauseID = 35050,
400 MobilityKillID = 35100,
401 Fire_PowerKillID = 35200,
402 PersonnelCasualtiesID = 35300,
403 VelocityID = 36000,
404 X_velocity_meters_second_ID = 36100,
405 Y_velocity_meters_second_ID = 36200,
406 Z_velocity_meters_second_ID = 36300,
407 AccelerationID = 37000,
408 X_accelerationID = 37100,
409 Y_accelerationID = 37200,
410 Z_accelerationID = 37300,
411 EngineStatusID = 38100,
412 ExerciseID = 40000,
413 ExerciseStateID = 40010,
414 AFATDSFileNameID = 40020,
415 TerrainDatabaseID = 41000,
416 MissionsID = 42000,
417 MissionIDID = 42100,
418 MissionTypeID = 42200,
419 MissionRequestTimeStampID = 42300,
420 ExerciseDescription_string_ID = 43000,
421 Name_string_ID = 43100,
422 Entities_integer_ID = 43200,
423 VersionID = 43300,
424 GuiseMode_UI32_ID = 43410,
425 SimulationApplicationActiveStatus_UI16_0Backup1Primary_ID = 43420,
426 SimulationApplicationRoleID_VariableID_64ID = 43430,
427 SimulationApplicationState_VariableID_64ID = 43440,
428 VisualOutputModeID = 44000,
429 SimulationManagerRole_VariableID_ID = 44100,
430 SimulationManagerSiteID_UI16_ID = 44110,
431 SimulationManagerApplic_ID_UI16_ID = 44120,
432 SimulationManagerEntityID_UnisgnedI16_ID = 44130,
433 SimulationManagerActiveStatus_UI160Backup_1Primary_ID = 44140,
434 AfterActiveReviewRole_VariableID_ID = 44200,
435 AfterActiveReviewSiteID_UI16_ID = 44210,
436 AfterActiveApplic_ID_UI16_ID = 44220,
437 AfterActiveReviewEntityID_UI16_ID = 44230,
438 AfterActiveReviewActiveStatus_UI160Backup_1PrimaryID = 44240,
439 ExerciseLoggerRole_VariableID_ID = 44300,
440 ExerciseLoggerSiteID_UI16_ID = 44310,
441 ExerciseLoggerApplic_ID_UI16_ID = 44320,
442 ExerciseEntityID_UI16_ID = 44330,
443 ExerciseLoggerActiveStatus_UI160Backup_1Primary_ID = 44340,
444 SyntheticEnvironmentManagerRole_VariableID_ID = 44400,
445 SyntheticEnvironmentManagerSiteID_UI16_ID = 44410,
446 SyntheticEnvironmentManagerApplic_ID_UI16_ID = 44420,
447 SyntheticEnvironmentManagerEntityID_UI16_ID = 44430,
448 SyntheticEnvironmentManagerActiveStatus_UI160Backup_1Primary_ID = 44440,
449 SIMNET_DISTranslatorRole_VariableID_ID = 44500,
450 SIMNET_DISTranslatorSiteID_UI16_ID = 44510,
451 SIMNET_DISTranslatorApplic_ID_UI16_ID = 44520,
452 SIMNET_DISTranslatorEntityID_UI16_ID = 44530,
453 SIMNET_DISTranslatorActiveStatus_UI160Backup_1Primary_ID = 44540,
454 EnvironmentID = 50000,
455 WeatherID = 51000,
456 ThermalConditionID = 51100,
457 TimeID = 52000,
458 TimeofDay_DiscreteID = 52100,
459 TimeofDay_ContinuousID = 52200,
460 TimeModeID = 52300,
461 TimeSceneID = 52305,
462 CurrentHourID = 52310,
463 CurrentMinuteID = 52320,
464 CurrentSecondID = 52330,
465 AzimuthID = 52340,
466 MaximumElevationID = 52350,
467 TimeZoneID = 52360,
468 TimeSunriseEnabledID = 52400,
469 SunriseHourID = 52410,
470 SunriseMinuteID = 52420,
471 SunriseSecondID = 52430,
472 SunriseAzimuthID = 52440,
473 TimeSunsetEnabledID = 52500,
474 SunsetHourID = 52510,
475 SunsetHour1ID = 52511,
476 SunsetMinuteID = 52520,
477 SunsetSecondID = 52530,
478 DateID = 52600,
479 MonthID = 52610,
480 DayID = 52620,
481 YearID = 52630,
482 CloudsID = 53000,
483 CloudLayerEnableID = 53050,
484 CloudLayerSelectionID = 53060,
485 VisibilityID = 53100,
486 BaseAltitude_meters_ID = 53200,
487 BaseAltitude_feet_ID = 53250,
488 Ceiling_meters_ID = 53300,
489 Ceiling_feet_ID = 53350,
490 CharactericticsID = 53400,
491 ConcentrationLength_Float32__milligrams_meter_ID = 53410,
492 Transmittance_Float32_ID = 53420,
493 Radiance_Float32__microwatts_centimeter_steradian_ID = 53430,
494 PrecipitationID = 54000,
495 Rain_KBOOLean_ID = 54100,
496 Fog_KBOOLean_ID = 55000,
497 Visibility_meters_ID = 55100,
498 Visibility_miles_ID = 55105,
499 DensityID = 55200,
500 BaseID = 55300,
501 ViewLayerfromaboveID = 55401,
502 TransitionRangeID = 55410,
503 Bottom_meters_ID = 55420,
504 Bottom_feet_ID = 55425,
505 Ceiling_meters_1ID = 55430,
506 Ceiling_feet_1ID = 55435,
507 HeavenlyBodiesID = 56000,
508 SunID = 56100,
509 Position1ID = 56110,
510 PositionAzimuthID = 56120,
511 PositionElevationID = 56130,
512 PositionIntensityID = 56140,
513 MoonID = 56200,
514 Position2ID = 56210,
515 PositionAzimuth1ID = 56220,
516 PositionElevation1ID = 56230,
517 PositionIntensity1ID = 56240,
518 HorizonID = 56310,
519 HorizonAzimuthID = 56320,
520 HorizonElevationID = 56330,
521 HorizonHeadingID = 56340,
522 HorizonIntensityID = 56350,
523 MeteorologicalID = 57000,
524 TemperatureID = 57100,
525 HumidityID = 57200,
526 Visibility1ID = 57300,
527 WindsID = 57400,
528 SpeedID = 57410,
529 RainsoakID = 57500,
530 Haze_KBOOLean_ID = 58000,
531 Visibility_meters_1ID = 58100,
532 Visibility_feet_ID = 58105,
533 Density1ID = 58200,
534 Ceiling_meters_2ID = 58430,
535 Ceiling_feet_2ID = 58435,
536 ContaminantsandObsurantsID = 59000,
537 Contaminant_ObscurantType_UI32_ID = 59100,
538 Persistence_Enumeration8_ID = 59110,
539 ChemicalDosage_Float32__milligrams_meter_minute_ID = 59115,
540 ChemicalAirConcentration_Float32__milligrams_meter_ID = 59120,
541 ChemicalGroundDeposition_Float32__milligrams_meter_ID = 59125,
542 ChemicalMaximumGroundDeposition_Float32__milligrams_meter_ID = 59130,
543 ChemicalDosageThreshold_Float32__milligram_meter_minute_ID = 59135,
544 BiologicalDosage_Float32__particles_literofair_minute_ID = 59140,
545 BiologicalAirConcentration_Float32__particles_literofair_ID = 59145,
546 BiologicalDosageThreshold_Float32__particles_literofair_minute_ID = 59150,
547 BiologicalBinnedParticleCount_EnumID = 59155,
548 RadiologicalDosage_FloatingPoint32_ID = 59160,
549 CommunicationsID = 60000,
550 ChannelTypeID = 61100,
551 ChannelType1ID = 61101,
552 ChannelIdentificationID = 61200,
553 AlphaIdentificationID = 61300,
554 RadioIdentificationID = 61400,
555 LandLineIdentificationID = 61500,
556 IntercomIdentificationID = 61600,
557 GroupNetworkChannelNumberID = 61700,
558 RadioCommunicationsStatusID = 62100,
559 StationaryRadioTransmittersDefaultTime_unsigned_Recod = 62200,
560 MovingRadioTransmittersDefaultTime_unsigned_ID = 62300,
561 StationaryRadioSignalsDefaultTimeID = 62400,
562 MovingRadioSignalsDefaultTimeID = 62500,
563 RadioInitializationTransecSecurityKey_record_ID = 63101,
564 RadioInitializationInternalNoiseLevel_record_ID = 63102,
565 RadioInitializationSquelchThreshold_record_ID = 63103,
566 RadioInitializationAntennaLocation_record_ID = 63104,
567 RadioInitializationAntennaPatternType_record_ID = 63105,
568 RadioInitializationAntennaPatternLength_record_ID = 63106,
569 RadioInitializationBeamDefinition_record_ID = 63107,
570 RadioInitializationTransmitHeartbeatTime_record_ID = 63108,
571 RadioInitializationTransmitThresholdDistance_record_ID = 63109,
572 RadioChannelInitializationLockoutID_record_ID = 63110,
573 RadioChannelInitializationHopsetID_record_ID = 63111,
574 RadioChannelInitializationPresetFrequency_record_ID = 63112,
575 RadioChannelInitializationFrequencySyncTime_record_ID = 63113,
576 RadioChannelInitializationComsecKey_record_ID = 63114,
577 RadioChannelInitializationAlpha_record_ID = 63115,
578 AlgorithmParametersID = 70000,
579 DeadReckoningAlgorithm_DRA_ID = 71000,
580 DRALocationThreshold_unsigned32_ID = 71100,
581 DRAOrientationThresholdID = 71200,
582 DRATimeThresholdID = 71300,
583 SimulationManagementParametersID = 72000,
584 CheckpointIntervalID = 72100,
585 TransmitterTimeThresholdID = 72600,
586 ReceiverTimeThresholdID = 72700,
587 InteroperabilityModeID = 73000,
588 SIMNETDataCollection_record_ID = 74000,
589 EventIDID = 75000,
590 SourceSiteIDID = 75100,
591 SourceHostIDID = 75200,
592 ArticulatedPartsID = 90000,
593 PartIDID = 90050,
594 Index_See4_7_2_ID = 90070,
595 Position3ID = 90100,
596 PositionRateID = 90200,
597 ExtensionID = 90300,
598 ExtensionRateID = 90400,
599 X1ID = 90500,
600 X_rateID = 90600,
601 Y1ID = 90700,
602 Y_rateID = 90800,
603 Z1ID = 90900,
604 Z_rateID = 91000,
605 Azimuth1ID = 91100,
606 AzimuthRateID = 91200,
607 ElevationID = 91300,
608 ElevationRateID = 91400,
609 RotationID = 91500,
610 RotationRateID = 91600,
611 MunitionID = 500001, // 128 bits
612 EngineFuelID = 500002, // 64 bits
613 StorageFuelID = 500003, // 64 bits
614 ExpendableExpendableID = 500004, // 128 bits
615 TotalRecordSetsID = 500005, // 32 bits
616 LaunchedMunition = 500006, // 384 bits
617 AssociationAssociationID = 500007 // 256 bits
620 // Returns number of values in the EnumDescriptor for this enum.
621 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
622 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
623 KDIS_EXPORT KUINT32 GetEnumSizeID_Enum();
625 // Returns the EnumDescriptor value for the specified index.
626 // Use GetEnumSize<enum> to get the array size.
627 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
628 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorID_Enum( KUINT32 Index );
630 typedef ID_Enum DatumID;
631 typedef ID_Enum RecordID;
632 typedef ID_Enum AttributeID;
634 KDIS_EXPORT KString GetEnumAsStringID_Enum( KINT32 Value );
635 KDIS_EXPORT KString GetEnumAsStringDatumID( KINT32 Value );
636 KDIS_EXPORT KString GetEnumAsStringRecordID( KINT32 Value );
637 KDIS_EXPORT KString GetEnumAsStringAttributeID( KINT32 Value );
639 // Returns true if a value was found.
640 KDIS_EXPORT KBOOL GetEnumFromStringID_Enum( const KString & Value, KINT32 & ValueOut );
641 KDIS_EXPORT KBOOL GetEnumFromStringDatumID( const KString & Value, KINT32 & ValueOut );
642 KDIS_EXPORT KBOOL GetEnumFromStringRecordID( const KString & Value, KINT32 & ValueOut );
643 KDIS_EXPORT KBOOL GetEnumFromStringAttributeID( const KString & Value, KINT32 & ValueOut );
645 /************************************************************************/
646 /* Rest Status */
647 /* Rest Status field in the Grouped Entity Description. */
648 /* Used In: */
649 /* GED_EnhancedGroundCombatSoldier */
650 /************************************************************************/
652 enum RestStatus
654 NotRested = 0, // Has not slept in the last 3 days.
655 Avg_1_HrADayInLast3Days = 1, // Has slept an average of 1 hour per day in the last three days.
656 Avg_2_HrADayInLast3Days = 2, // Has slept an average of 2 hours per day in the last three days.
657 Avg_3_HrADayInLast3Days = 3, // Has slept an average of 3 hours per day in the last three days.
658 Avg_4_HrADayInLast3Days = 4, // Has slept an average of 4 hours per day in the last three days.
659 Avg_5_HrADayInLast3Days = 5, // Has slept an average of 5 hours per day in the last three days.
660 Avg_6_HrADayInLast3Days = 6, // Has slept an average of 6 hours per day in the last three days.
661 Avg_7_HrADayInLast3Days = 7, // Has slept an average of 7 hours per day in the last three days.
662 FullyRested = 8 // Fully rested (Has slept an average of 8 hours per day in the last three days)
665 // Returns number of values in the EnumDescriptor for this enum.
666 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
667 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
668 KDIS_EXPORT KUINT32 GetEnumSizeRestStatus();
670 // Returns the EnumDescriptor value for the specified index.
671 // Use GetEnumSize<enum> to get the array size.
672 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
673 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorRestStatus( KUINT32 Index );
675 KDIS_EXPORT KString GetEnumAsStringRestStatus( KINT32 Value );
677 // Returns true if a value was found.
678 KDIS_EXPORT KBOOL GetEnumFromStringRestStatus( const KString & Value, KINT32 & ValueOut );
680 /************************************************************************/
681 /* RelationshipNature */
682 /* Nature or purpose for joining of the part entity to the host */
683 /* entity within a IsPartOf PDU. */
684 /* Used In: */
685 /* IsPartOf_PDU */
686 /************************************************************************/
688 enum RelationshipNature
690 OtherNature = 0,
691 HostFireableMunition = 1,
692 MunitionCarriedAsCargo = 2,
693 FuelCarriedAsCargo = 3,
694 GunmountAttachedToHost = 4,
695 ComputerGeneratedForcesCarriedAsCargo = 5,
696 VehicleCarriedAsCargo = 6,
697 EmitterMountedOnHost = 7,
698 MobileCommandAndControlEntityCarriedAboardHost = 8,
699 EntityStationedAt = 9, // See Position enumerations with respect to host.
700 TeamMemberInFormationWith = 10
703 // Returns number of values in the EnumDescriptor for this enum.
704 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
705 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
706 KDIS_EXPORT KUINT32 GetEnumSizeRelationshipNature();
708 // Returns the EnumDescriptor value for the specified index.
709 // Use GetEnumSize<enum> to get the array size.
710 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
711 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorRelationshipNature( KUINT32 Index );
713 KDIS_EXPORT KString GetEnumAsStringRelationshipNature( KINT32 Value );
715 // Returns true if a value was found.
716 KDIS_EXPORT KBOOL GetEnumFromStringRelationshipNature( const KString & Value, KINT32 & ValueOut );
718 /************************************************************************/
719 /* RelationshipPosition */
720 /* Specifies the position of the part entity with respect to the host */
721 /* entity within a IsPartOf PDU. */
722 /* Used In: */
723 /* IsPartOf_PDU */
724 /************************************************************************/
726 enum RelationshipPosition
728 OtherPosition = 0,
729 OnTopOf = 1,
730 InsideOf = 2
733 // Returns number of values in the EnumDescriptor for this enum.
734 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
735 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
736 KDIS_EXPORT KUINT32 GetEnumSizeRelationshipPosition();
738 // Returns the EnumDescriptor value for the specified index.
739 // Use GetEnumSize<enum> to get the array size.
740 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
741 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorRelationshipPosition( KUINT32 Index );
743 KDIS_EXPORT KString GetEnumAsStringRelationshipPosition( KINT32 Value );
745 // Returns true if a value was found.
746 KDIS_EXPORT KBOOL GetEnumFromStringRelationshipPosition( const KString & Value, KINT32 & ValueOut );
748 /************************************************************************/
749 /* StationName */
750 /* Specifies the station name within the host at which the part entity */
751 /* is located. If the part entity is On Station, this field shall */
752 /* specify the representation of the part�s location data fields. */
753 /* Used In: */
754 /* IsPartOf_PDU */
755 /************************************************************************/
757 enum StationName
759 OtherStationName = 0,
760 AircraftWingstation = 1,
761 ShipsForwardGunmount_Starboard = 2,
762 ShipsForwardGunmount_Port = 3,
763 ShipsForwardGunmount_Centerline = 4,
764 ShipsAftGunmount_Starboard = 5,
765 ShipsAftGunmount_Port = 6,
766 ShipsAftGunmount_Centerline = 7,
767 ForwardTorpedoTube = 8,
768 AftTorpedoTube = 9,
769 BombBay = 10,
770 CargoBay = 11,
771 TruckBed = 12,
772 TrailerBed = 13,
773 WellDeck = 14,
774 OnStationRangeAndBearing = 15,
775 OnStationXYZ = 16
778 // Returns number of values in the EnumDescriptor for this enum.
779 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
780 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
781 KDIS_EXPORT KUINT32 GetEnumSizeStationName();
783 // Returns the EnumDescriptor value for the specified index.
784 // Use GetEnumSize<enum> to get the array size.
785 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
786 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorStationName( KUINT32 Index );
788 KDIS_EXPORT KString GetEnumAsStringStationName( KINT32 Value );
790 // Returns true if a value was found.
791 KDIS_EXPORT KBOOL GetEnumFromStringStationName( const KString & Value, KINT32 & ValueOut );
793 } // END namespace ENUMS
794 } // END namespace DATA_TYPES
795 } // END namespace KDIS