1 /*********************************************************************
2 Copyright 2013 Karl Jones
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
27 http://p.sf.net/kdis/UserGuide
28 *********************************************************************/
30 /********************************************************************
35 purpose: Enums used in Entity Mangement PDUs
36 *********************************************************************/
40 #include "./EnumDescriptor.h"
46 /************************************************************************/
49 /* Aggregate_State_PDU */
50 /************************************************************************/
54 OtherAggregateState
= 0,
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 /************************************************************************/
79 /* Aggregate kind used in AggregateType */
82 /************************************************************************/
86 OtherAggregateKind
= 0,
90 SimilarCapabilities
= 4,
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 /************************************************************************/
111 /* Aggregate formation */
113 /* Aggregate_State_PDU */
114 /************************************************************************/
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. */
146 /************************************************************************/
148 enum GroupedEntityCategory
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 /************************************************************************/
179 /* Transfer Type field of the Transfer Control PDU. */
181 /* Transfer Control PDU */
182 /************************************************************************/
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.
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.
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 */
249 /************************************************************************/
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,
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,
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,
303 ForceID_U8_ID
= 11200,
304 DescriptionID
= 11300,
305 AlternativeEntityTypeID
= 12000,
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,
324 BumperNameID
= 14600,
325 VehicleNameID
= 14700,
326 UnitNumberID
= 14800,
327 DISIdentityID
= 15000,
330 DISEntityIDID
= 15300,
331 OwnershipStatusID
= 15800, // Ownership Status record - 64 bits
333 CrewMembersID
= 21000,
334 CrewMemberIDID
= 21100,
336 JobAssignment_string_ID
= 21300,
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,
357 SubcategoryID
= 24150,
359 Description2ID
= 24300,
361 VehicleMass_U32Kilograms_ID
= 26000,
362 SupplyQuantityID
= 27000,
367 GeocentricCoordinatesID
= 31200,
368 X_U32meters_ID
= 31210,
369 Y_U32meters_ID
= 31220,
370 Z_U32meters_ID
= 31230,
373 LineofSightID
= 31500,
377 OrientationID
= 32000,
378 HullHeadingAngle_degrees_ID
= 32100,
379 HullPitchAngleID
= 32200,
381 X_U32degrees_ID
= 32500,
382 Y_U32degrees_ID
= 32600,
383 Z_U32degrees_ID
= 32700,
384 AppearanceID
= 33000,
385 AmbientLightingID
= 33100,
387 PaintSchemeID
= 33200,
389 TrailingEffectsID
= 33400,
392 MinePlowsAttachedID
= 33710,
393 MineRollersAttachedID
= 33720,
394 TankTurretAzimuth_degreesRel2Ion_ID
= 33730,
395 FailuresandMalfunctionsID
= 34000,
396 Age_miles_ID
= 34100,
397 KilometersID
= 34110,
400 MobilityKillID
= 35100,
401 Fire_PowerKillID
= 35200,
402 PersonnelCasualtiesID
= 35300,
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,
413 ExerciseStateID
= 40010,
414 AFATDSFileNameID
= 40020,
415 TerrainDatabaseID
= 41000,
418 MissionTypeID
= 42200,
419 MissionRequestTimeStampID
= 42300,
420 ExerciseDescription_string_ID
= 43000,
421 Name_string_ID
= 43100,
422 Entities_integer_ID
= 43200,
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,
456 ThermalConditionID
= 51100,
458 TimeofDay_DiscreteID
= 52100,
459 TimeofDay_ContinuousID
= 52200,
462 CurrentHourID
= 52310,
463 CurrentMinuteID
= 52320,
464 CurrentSecondID
= 52330,
466 MaximumElevationID
= 52350,
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,
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,
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,
510 PositionAzimuthID
= 56120,
511 PositionElevationID
= 56130,
512 PositionIntensityID
= 56140,
515 PositionAzimuth1ID
= 56220,
516 PositionElevation1ID
= 56230,
517 PositionIntensity1ID
= 56240,
519 HorizonAzimuthID
= 56320,
520 HorizonElevationID
= 56330,
521 HorizonHeadingID
= 56340,
522 HorizonIntensityID
= 56350,
523 MeteorologicalID
= 57000,
524 TemperatureID
= 57100,
526 Visibility1ID
= 57300,
530 Haze_KBOOLean_ID
= 58000,
531 Visibility_meters_1ID
= 58100,
532 Visibility_feet_ID
= 58105,
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,
590 SourceSiteIDID
= 75100,
591 SourceHostIDID
= 75200,
592 ArticulatedPartsID
= 90000,
594 Index_See4_7_2_ID
= 90070,
596 PositionRateID
= 90200,
598 ExtensionRateID
= 90400,
606 AzimuthRateID
= 91200,
608 ElevationRateID
= 91400,
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 /************************************************************************/
647 /* Rest Status field in the Grouped Entity Description. */
649 /* GED_EnhancedGroundCombatSoldier */
650 /************************************************************************/
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. */
686 /************************************************************************/
688 enum RelationshipNature
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. */
724 /************************************************************************/
726 enum RelationshipPosition
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 /************************************************************************/
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. */
755 /************************************************************************/
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,
774 OnStationRangeAndBearing
= 15,
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