chore(include): changed include files from .h to .hpp
[KDIS.git] / include / KDIS / DataTypes / Enums / EnumRadio.hpp
blobf03712246dfc2ae76f56d0c227fd441b83d9da67
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 EnumRadio
32 created: 21/08/2008
33 author: Karl Jones
35 purpose: Enums for radio parameters
36 *********************************************************************/
38 #pragma once
40 #include "./EnumDescriptor.h"
42 namespace KDIS {
43 namespace DATA_TYPE {
44 namespace ENUMS {
46 /************************************************************************/
47 /* Transmit State */
48 /* Radio Tranmit State */
49 /* Used In: */
50 /* Tranmitter PDU */
51 /************************************************************************/
53 enum TransmitState
55 Off = 0,
56 OnButNotTransmitting = 1,
57 OnAndTransmitting = 2
60 // Returns number of values in the EnumDescriptor for this enum.
61 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
62 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
63 KDIS_EXPORT KUINT32 GetEnumSizeTransmitState();
65 // Returns the EnumDescriptor value for the specified index.
66 // Use GetEnumSize<enum> to get the array size.
67 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
68 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorTransmitState( KUINT32 Index );
70 KDIS_EXPORT KString GetEnumAsStringTransmitState( KINT32 Value );
72 // Returns true if a value was found.
73 KDIS_EXPORT KBOOL GetEnumFromStringTransmitState( const KString & Value, KINT32 & ValueOut );
75 /************************************************************************/
76 /* Radio Input Source */
77 /* Radio in put source, represents the part of the entity that is */
78 /* transmitting. */
79 /* Used In: */
80 /* Tranmitter PDU */
81 /************************************************************************/
83 enum RadioInputSource
85 OtherRadioInputSource = 0,
86 Pilot = 1,
87 Copilot = 2,
88 FirstOfficer = 3,
89 Driver = 4,
90 Loader = 5,
91 Gunner = 6,
92 Commander = 7,
93 DigitalDataDevice = 8,
94 Intercom = 9,
95 #if DIS_VERSION > 6
96 AudioJammer =10,
97 DataJammer =11,
98 GPSJammer =12,
99 GPSMeaconer =13,
100 #endif
103 // Returns number of values in the EnumDescriptor for this enum.
104 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
105 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
106 KDIS_EXPORT KUINT32 GetEnumSizeRadioInputSource();
108 // Returns the EnumDescriptor value for the specified index.
109 // Use GetEnumSize<enum> to get the array size.
110 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
111 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorRadioInputSource( KUINT32 Index );
113 KDIS_EXPORT KString GetEnumAsStringRadioInputSource( KINT32 Value );
115 // Returns true if a value was found.
116 KDIS_EXPORT KBOOL GetEnumFromStringRadioInputSource( const KString & Value, KINT32 & ValueOut );
118 /************************************************************************/
119 /* Antenna Pattern Type */
120 /* Type of representation used for radiation pattern from antenna */
121 /* transmitting. */
122 /* Used In: */
123 /* Tranmitter PDU */
124 /************************************************************************/
126 enum AntennaPatternType
128 Omni_Directional = 0,
129 Beam = 1,
130 SphericalHarmonic = 2
133 // Returns number of values in the EnumDescriptor for this enum.
134 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
135 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
136 KDIS_EXPORT KUINT32 GetEnumSizeAntennaPatternType();
138 // Returns the EnumDescriptor value for the specified index.
139 // Use GetEnumSize<enum> to get the array size.
140 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
141 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorAntennaPatternType( KUINT32 Index );
143 KDIS_EXPORT KString GetEnumAsStringAntennaPatternType( KINT32 Value );
145 // Returns true if a value was found.
146 KDIS_EXPORT KBOOL GetEnumFromStringAntennaPatternType( const KString & Value, KINT32 & ValueOut );
148 /************************************************************************/
149 /* Radio Major Modulation */
150 /* Major Modulation Field */
151 /* Used In: */
152 /* Modulation Type */
153 /************************************************************************/
155 enum RadioMajorModulation
157 NoStatementRadioMajorModulation = 0,
158 Amplitude = 1,
159 AmplitudeAndAngle = 2,
160 Angle = 3,
161 Combination = 4,
162 Pulse = 5,
163 Unmodulated = 6,
164 CarrierPhaseShiftModulation_CPSM = 7
167 // Returns number of values in the EnumDescriptor for this enum.
168 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
169 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
170 KDIS_EXPORT KUINT32 GetEnumSizeRadioMajorModulation();
172 // Returns the EnumDescriptor value for the specified index.
173 // Use GetEnumSize<enum> to get the array size.
174 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
175 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorRadioMajorModulation( KUINT32 Index );
177 KDIS_EXPORT KString GetEnumAsStringRadioMajorModulation( KINT32 Value );
179 // Returns true if a value was found.
180 KDIS_EXPORT KBOOL GetEnumFromStringRadioMajorModulation( const KString & Value, KINT32 & ValueOut );
183 /************************************************************************/
184 /* Modulation Detail */
185 /* Various Enums dependent on Radio Major Modulation */
186 /* Used In: */
187 /* Modulation Type */
188 /************************************************************************/
190 enum DetailAmplitude
192 OtherDetailAmplitude = 0,
193 AFSK_AudioFrequencyShiftKeying = 1,
194 AM_AmplitudeModulation = 2,
195 CW_ContinuousWaveModulation = 3,
196 DSB_DoubleSideband = 4,
197 ISB_IndependentSideband = 5,
198 LSB_SingleBandSuppressedCarrier_LowerSidebandMode = 6,
199 SSB_Full_SingleSidebandFullCarrier = 7,
200 SSB_Reduc_SingleBandReducedCarrier = 8,
201 USB_SingleBandSuppressedCarrier_UpperSidebandMode = 9,
202 VSB_VestigialSideband = 10
205 // Returns number of values in the EnumDescriptor for this enum.
206 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
207 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
208 KDIS_EXPORT KUINT32 GetEnumSizeDetailAmplitude();
210 // Returns the EnumDescriptor value for the specified index.
211 // Use GetEnumSize<enum> to get the array size.
212 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
213 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorDetailAmplitude( KUINT32 Index );
215 KDIS_EXPORT KString GetEnumAsStringDetailAmplitude( KINT32 Value );
217 // Returns true if a value was found.
218 KDIS_EXPORT KBOOL GetEnumFromStringDetailAmplitude( const KString & Value, KINT32 & ValueOut );
220 enum DetailAmplitudeAndAngle
222 OtherDetailAmplitudeAndAngleDetail = 0,
223 AmplitudeAndAngleDetail = 1
226 // Returns number of values in the EnumDescriptor for this enum.
227 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
228 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
229 KDIS_EXPORT KUINT32 GetEnumSizeDetailAmplitudeAndAngle();
231 // Returns the EnumDescriptor value for the specified index.
232 // Use GetEnumSize<enum> to get the array size.
233 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
234 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorDetailAmplitudeAndAngle( KUINT32 Index );
236 KDIS_EXPORT KString GetEnumAsStringDetailAmplitudeAndAngle( KINT32 Value );
238 // Returns true if a value was found.
239 KDIS_EXPORT KBOOL GetEnumFromStringDetailAmplitudeAndAngle( const KString & Value, KINT32 & ValueOut );
241 enum DetailAngle
243 OtherDetailAngle = 0,
244 FM_FrequencyModulation = 1,
245 FSK_FrequencyShiftKeying = 2,
246 PM_PhaseModulation = 3
249 // Returns number of values in the EnumDescriptor for this enum.
250 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
251 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
252 KDIS_EXPORT KUINT32 GetEnumSizeDetailAngle();
254 // Returns the EnumDescriptor value for the specified index.
255 // Use GetEnumSize<enum> to get the array size.
256 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
257 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorDetailAngle( KUINT32 Index );
259 KDIS_EXPORT KString GetEnumAsStringDetailAngle( KINT32 Value );
261 // Returns true if a value was found.
262 KDIS_EXPORT KBOOL GetEnumFromStringDetailAngle( const KString & Value, KINT32 & ValueOut );
264 enum DetailCombination
266 OtherDetailCombination = 0,
267 AmplitudeAnglePulse = 1
270 // Returns number of values in the EnumDescriptor for this enum.
271 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
272 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
273 KDIS_EXPORT KUINT32 GetEnumSizeDetailCombination();
275 // Returns the EnumDescriptor value for the specified index.
276 // Use GetEnumSize<enum> to get the array size.
277 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
278 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorDetailCombination( KUINT32 Index );
280 KDIS_EXPORT KString GetEnumAsStringDetailCombination( KINT32 Value );
282 // Returns true if a value was found.
283 KDIS_EXPORT KBOOL GetEnumFromStringDetailCombination( const KString & Value, KINT32 & ValueOut );
285 enum DetailPulse
287 OtherPulseDetail = 0,
288 PulseDetail = 1,
289 X_Band_TACAN_PulseDetail = 2,
290 Y_Band_TACAN_PulseDetail = 3
293 // Returns number of values in the EnumDescriptor for this enum.
294 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
295 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
296 KDIS_EXPORT KUINT32 GetEnumSizeDetailPulse();
298 // Returns the EnumDescriptor value for the specified index.
299 // Use GetEnumSize<enum> to get the array size.
300 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
301 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorDetailPulse( KUINT32 Index );
303 KDIS_EXPORT KString GetEnumAsStringDetailPulse( KINT32 Value );
305 // Returns true if a value was found.
306 KDIS_EXPORT KBOOL GetEnumFromStringDetailPulse( const KString & Value, KINT32 & ValueOut );
308 enum DetailUnmodulated
310 OtherDetailUnmodulted = 0,
311 ContinuousWaveEmissionOfAnUnmodulatedCarrier = 1
314 // Returns number of values in the EnumDescriptor for this enum.
315 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
316 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
317 KDIS_EXPORT KUINT32 GetEnumSizeDetailUnmodulated();
319 // Returns the EnumDescriptor value for the specified index.
320 // Use GetEnumSize<enum> to get the array size.
321 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
322 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorDetailUnmodulated( KUINT32 Index );
324 KDIS_EXPORT KString GetEnumAsStringDetailUnmodulated( KINT32 Value );
326 // Returns true if a value was found.
327 KDIS_EXPORT KBOOL GetEnumFromStringDetailUnmodulated( const KString & Value, KINT32 & ValueOut );
329 enum DetailCarrierPhaseShift
331 OtherDetailCarrierPhaseShift = 0
334 enum DetailNoStatement
336 DetailNoStatementNoStatement = 0
338 // Returns number of values in the EnumDescriptor for this enum.
339 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
340 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
341 KDIS_EXPORT KUINT32 GetEnumSizeDetailCarrierPhaseShift();
343 // Returns the EnumDescriptor value for the specified index.
344 // Use GetEnumSize<enum> to get the array size.
345 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
346 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorDetailCarrierPhaseShift( KUINT32 Index );
348 KDIS_EXPORT KString GetEnumAsStringDetailCarrierPhaseShift( KINT32 Value );
350 // Returns true if a value was found.
351 KDIS_EXPORT KBOOL GetEnumFromStringDetailCarrierPhaseShift( const KString & Value, KINT32 & ValueOut );
353 /************************************************************************/
354 /* Modulation System */
355 /* Specifies the interpretation of the modulation parameter field(s) */
356 /* Used In: */
357 /* Modulation Type */
358 /************************************************************************/
360 enum ModulationSystem
362 OtherModulationSystem = 0,
363 GenericModulationSystem = 1,
364 HQ = 2,
365 HQII = 3,
366 HQIIA = 4,
367 SINCGARS = 5,
368 CCTT_SINCGARS = 6,
369 EPLRS_EnhancedPositionLocationReportingSystem = 7,
370 JTIDS_MIDS = 8,
371 #if DIS_VERSION > 6
372 LINK11 = 9,
373 LINK11b = 10,
374 LBAND_SATCOM = 11,
375 ENHANCED_SINCGARS_73 = 12,
376 NAVIGATION_AID = 13,
377 #endif
380 // Returns number of values in the EnumDescriptor for this enum.
381 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
382 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
383 KDIS_EXPORT KUINT32 GetEnumSizeModulationSystem();
385 // Returns the EnumDescriptor value for the specified index.
386 // Use GetEnumSize<enum> to get the array size.
387 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
388 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorModulationSystem( KUINT32 Index );
390 KDIS_EXPORT KString GetEnumAsStringModulationSystem( KINT32 Value );
392 // Returns true if a value was found.
393 KDIS_EXPORT KBOOL GetEnumFromStringModulationSystem( const KString & Value, KINT32 & ValueOut );
395 /************************************************************************/
396 /* Crypto System Type */
397 /* Identifies the crypto equipment used in a tranmission */
398 /* Used In: */
399 /* Transmitter PDU */
400 /************************************************************************/
402 enum CryptoSystemType
404 OtherCryptoSystem = 0,
405 KY_28 = 1,
406 VINSON_KY_57_KY_58_SINCGARS_ICOM = 2,
407 NarrowSpectrumSecureVoice_NSVE = 3,
408 WideSpectrumSecureVoice_WSVE = 4,
409 #if DIS_VERSION > 6
410 SINCGARS_ICOM = 5,
411 KY_75 = 6,
412 KY_100 = 7,
413 KY_57 = 8,
414 KYV_5 = 9,
415 Link11_KG_40A_P_NTDS = 10,
416 Link11B_KG_40A_S = 11,
417 Link11_KG_40AR = 12,
418 #endif
421 // Returns number of values in the EnumDescriptor for this enum.
422 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
423 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
424 KDIS_EXPORT KUINT32 GetEnumSizeCryptoSystemType();
426 // Returns the EnumDescriptor value for the specified index.
427 // Use GetEnumSize<enum> to get the array size.
428 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
429 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorCryptoSystemType( KUINT32 Index );
431 KDIS_EXPORT KString GetEnumAsStringCryptoSystemType( KINT32 Value );
433 // Returns true if a value was found.
434 KDIS_EXPORT KBOOL GetEnumFromStringCryptoSystemType( const KString & Value, KINT32 & ValueOut );
436 /************************************************************************/
437 /* Encryption Mode */
438 /* Identifies the mode of encryption */
439 /* Used In: */
440 /* CryptoSystem */
441 /************************************************************************/
443 enum EncryptionMode
445 BaseBand = 0,
446 Diphase = 1
449 // Returns number of values in the EnumDescriptor for this enum.
450 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
451 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
452 KDIS_EXPORT KUINT32 GetEnumSizeEncryptionMode();
454 // Returns the EnumDescriptor value for the specified index.
455 // Use GetEnumSize<enum> to get the array size.
456 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
457 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorEncryptionMode( KUINT32 Index );
459 KDIS_EXPORT KString GetEnumAsStringEncryptionMode( KINT32 Value );
461 // Returns true if a value was found.
462 KDIS_EXPORT KBOOL GetEnumFromStringEncryptionMode( const KString & Value, KINT32 & ValueOut );
464 /************************************************************************/
465 /* Encoding Class */
466 /* Encoding class for a signal PDU */
467 /* Used In: */
468 /* EncodingScheme */
469 /************************************************************************/
471 enum EncodingClass
473 EncodedAudio = 0,
474 RawBinaryData = 1,
475 ApplicationSpecificData = 2,
476 DatabaseIndex = 3
479 // Returns number of values in the EnumDescriptor for this enum.
480 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
481 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
482 KDIS_EXPORT KUINT32 GetEnumSizeEncodingClass();
484 // Returns the EnumDescriptor value for the specified index.
485 // Use GetEnumSize<enum> to get the array size.
486 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
487 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorEncodingClass( KUINT32 Index );
489 KDIS_EXPORT KString GetEnumAsStringEncodingClass( KINT32 Value );
491 // Returns true if a value was found.
492 KDIS_EXPORT KBOOL GetEnumFromStringEncodingClass( const KString & Value, KINT32 & ValueOut );
494 /************************************************************************/
495 /* Encoding Type */
496 /* Encoding type when EncodingClass is audio */
497 /* Used In: */
498 /* EncodingScheme */
499 /************************************************************************/
501 enum EncodingType
503 _8_bit_mu_law = 1,
504 CVSD_per_MIL_STD_188_113 = 2,
505 ADPCM_per_CCITT_G_721 = 3,
506 _16_bit_linear_PCM2sComplementBigEndian = 4,
507 _8_bit_linear_PCM = 5,
508 VQ_VectorQuantization = 6,
509 GSM_FullRate = 8,
510 GSM_HalfRate = 9,
511 SpeexNarrowBand = 10,
512 _16_bit_linear_PCM2sComplementLittleEndian = 100
516 // Returns number of values in the EnumDescriptor for this enum.
517 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
518 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
519 KDIS_EXPORT KUINT32 GetEnumSizeEncodingType();
521 // Returns the EnumDescriptor value for the specified index.
522 // Use GetEnumSize<enum> to get the array size.
523 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
524 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorEncodingType( KUINT32 Index );
526 KDIS_EXPORT KString GetEnumAsStringEncodingType( KINT32 Value );
528 // Returns true if a value was found.
529 KDIS_EXPORT KBOOL GetEnumFromStringEncodingType( const KString & Value, KINT32 & ValueOut );
531 /************************************************************************/
532 /* TDL Type */
533 /* Tactical Data Link Type */
534 /* Used In: */
535 /* EncodingScheme */
536 /************************************************************************/
538 enum TDLType
540 OtherTDLType = 0,
541 PADIL = 1,
542 NATOLink_1 = 2,
543 ATDL_1 = 3,
544 Link11B_TADILB_ = 4,
545 SituationalAwarenessDataLink_SADL_ = 5,
546 Link16LegacyFormat_JTIDS_TADIL_J_ = 6,
547 Link16LegacyFormat_JTIDS_FDL_TADIL_J_ = 7,
548 Link11A_TADILA_ = 8,
549 IJMS = 9,
550 Link4A_TADILC_ = 10,
551 Link4C = 11,
552 TIBS = 12,
553 ATL = 13,
554 ConstantSource = 14,
555 AbbreviatedCommandandControl = 15,
556 MILSTAR = 16,
557 ATHS = 17,
558 OTHGOLD = 18,
559 TACELINT = 19,
560 WeaponsDataLink_AWW_13_ = 20,
561 AbbreviatedCommandandControl1 = 21,
562 EnhancedPositionLocationReportingSystem_EPLRS_ = 22,
563 PositionLocationReportingSystem_PLRS_ = 23,
564 SINCGARS_TDLType = 24,
565 HaveQuickI = 25,
566 HaveQuickII = 26,
567 HaveQuickIIA_Saturn_ = 27,
568 Intra_FlightDataLink1 = 28,
569 Intra_FlightDataLink2 = 29,
570 ImprovedDataModem_IDM_ = 30,
571 AirForceApplicationProgramDevelopment_AFAPD_ = 31,
572 CooperativeEngagementCapability_CEC_ = 32,
573 ForwardAreaAirDefense_FAAD_DataLink_FDL_ = 33,
574 GroundBasedDataLink_GBDL_ = 34,
575 IntraVehicularInfoSystem_IVIS_ = 35,
576 MarineTacticalSystem_MTS_ = 36,
577 TacticalFireDirectionSystem_TACFIRE_ = 37,
578 IntegratedBroadcastService_IBS_ = 38,
579 AirborneInformationTransfer_ABIT_ = 39,
580 AdvancedTacticalAirborneReconnaissanceSystem_ATARS_DataLink = 40,
581 BattleGroupPassiveHorizonExtensionSystem_BGPHES_DataLink = 41,
582 CommonHighBandwidthDataLink_CHBDL_ = 42,
583 GuardrailInteroperableDataLink_IDL_ = 43,
584 GuardrailCommonSensorSystemOne_CSS1_DataLink = 44,
585 GuardrailCommonSensorSystemTwo_CSS2_DataLink = 45,
586 GuardrailCSS2Multi_RoleDataLink_MRDL_ = 46,
587 GuardrailCSS2DirectAirtoSatelliteRelay_DASR_DataLink = 47,
588 LineofSight_LOS_DataLinkImplementation_LOStether_ = 48,
589 LightweightCDL_LWCDL_ = 49,
590 L_52M_SR_71_ = 50,
591 RivetReach_RivetOwlDataLink = 51,
592 SeniorSpan = 52,
593 SeniorSpur = 53,
594 SeniorStretch_ = 54,
595 SeniorYearInteroperableDataLink_IDL_ = 55,
596 SpaceCDL = 56,
597 TR_1modeMISTAirborneDataLink = 57,
598 Ku_bandSATCOMDataLinkImplementation_UAV_ = 58,
599 MissionEquipmentControlDatalink_MECDL_ = 59,
600 RadarDataTransmittingSetDataLink = 60,
601 SurveillanceandControlDataLink_SCDL_ = 61,
602 TacticalUAVVideo = 62,
603 UHFSATCOMDataLinkImplementation_UAV_ = 63,
604 TacticalCommonDataLink_TCDL_ = 64,
605 LowLevelAirPictureInterface_LLAPI_ = 65,
606 WeaponsDataLink_AGM_130_ = 66,
607 #if DIS_VERSION > 6
608 Automatic_Identification_System_AIS = 67,
609 Weapons_Data_Link_AIM_120 = 68,
610 Weapons_Data_Link_AIM_9 = 69,
611 #endif
612 GC3 = 99,
613 Link16StandardizedFormat_JTIDS_MIDS_TADILJ_ = 100,
614 Link16EnhancedDataRate_EDRJTIDS_MIDS_TADIL_J_ = 101,
615 JTIDS_MIDSNetDataLoad_TIMS_TOMS_ = 102,
616 Link22 = 103,
617 AFIWCIADSCommunicationsLinks = 104,
618 #if DIS_VERSION > 6
619 F22_IntraFlight_Data_Link_IFDL = 105,
620 LBand_SATCOM = 106,
621 TSAF_Communications_Link = 107,
622 Enhanced_SINCGARS_7_3 = 108,
623 F35_Multifunction_Advanced_Data_Link_MADL = 109,
624 Cursor_on_Target = 110,
625 All_Purpose_Structured_Eurocontrol_Surveillance_Information_Exchange_ASTERIX = 111,
626 #endif
629 // Returns number of values in the EnumDescriptor for this enum.
630 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
631 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
632 KDIS_EXPORT KUINT32 GetEnumSizeTDLType();
634 // Returns the EnumDescriptor value for the specified index.
635 // Use GetEnumSize<enum> to get the array size.
636 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
637 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorTDLType( KUINT32 Index );
639 KDIS_EXPORT KString GetEnumAsStringTDLType( KINT32 Value );
641 // Returns true if a value was found.
642 KDIS_EXPORT KBOOL GetEnumFromStringTDLType( const KString & Value, KINT32 & ValueOut );
644 /************************************************************************/
645 /* Control Type */
646 /* Type of control requested */
647 /* Used In: */
648 /* Intercom_Control_PDU */
649 /************************************************************************/
651 enum ControlType
653 ControlTypeReserved = 0,
654 ControlTypeStatus = 1,
655 Request_Acknowledge_Required = 2,
656 Request_No_Acknowledge = 3,
657 Ack_Request_Granted = 4,
658 Nack_Request_Denied = 5
659 // 6-255 Reserved
662 // Returns number of values in the EnumDescriptor for this enum.
663 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
664 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
665 KDIS_EXPORT KUINT32 GetEnumSizeControlType();
667 // Returns the EnumDescriptor value for the specified index.
668 // Use GetEnumSize<enum> to get the array size.
669 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
670 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorControlType( KUINT32 Index );
672 KDIS_EXPORT KString GetEnumAsStringControlType( KINT32 Value );
674 // Returns true if a value was found.
675 KDIS_EXPORT KBOOL GetEnumFromStringControlType( const KString & Value, KINT32 & ValueOut );
677 /************************************************************************/
678 /* Communications Channel Type */
679 /* Communications Channel Type enumerations */
680 /* Used In: */
681 /* Intercom_Control_PDU */
682 /************************************************************************/
684 enum ChannelType
686 ChannelTypeReserved = 0,
687 Connection_FDX = 1,
688 Connection_HDX_Destination_Receive_Only = 2,
689 Connection_HDX_Destination_Transmit_Only = 3,
690 Connection_HDX = 4
691 // 5-255 Reserved
694 // Returns number of values in the EnumDescriptor for this enum.
695 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
696 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
697 KDIS_EXPORT KUINT32 GetEnumSizeChannelType();
699 // Returns the EnumDescriptor value for the specified index.
700 // Use GetEnumSize<enum> to get the array size.
701 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
702 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorChannelType( KUINT32 Index );
704 KDIS_EXPORT KString GetEnumAsStringChannelType( KINT32 Value );
706 // Returns true if a value was found.
707 KDIS_EXPORT KBOOL GetEnumFromStringChannelType( const KString & Value, KINT32 & ValueOut );
709 enum ChannelClass
711 Simulated_Comm_Channel = 0,
712 Simulation_Support_Comm_Channel = 1
715 // Returns number of values in the EnumDescriptor for this enum.
716 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
717 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
718 KDIS_EXPORT KUINT32 GetEnumSizeChannelClass();
720 // Returns the EnumDescriptor value for the specified index.
721 // Use GetEnumSize<enum> to get the array size.
722 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
723 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorChannelClass( KUINT32 Index );
725 KDIS_EXPORT KString GetEnumAsStringChannelClass( KINT32 Value );
727 // Returns true if a value was found.
728 KDIS_EXPORT KBOOL GetEnumFromStringChannelClass( const KString & Value, KINT32 & ValueOut );
730 /************************************************************************/
731 /* Transmit Line State */
732 /* Identifies the current transmit state of the line at the intercon */
733 /* source. */
734 /* Used In: */
735 /* Intercom_Control_PDU */
736 /************************************************************************/
738 enum TransmitLineState
740 TransmitLineStateNotApplicable = 0,
741 NotTransmitting = 1,
742 Transmitting = 2
743 // 3-255 Reserved
746 // Returns number of values in the EnumDescriptor for this enum.
747 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
748 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
749 KDIS_EXPORT KUINT32 GetEnumSizeTransmitLineState();
751 // Returns the EnumDescriptor value for the specified index.
752 // Use GetEnumSize<enum> to get the array size.
753 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
754 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorTransmitLineState( KUINT32 Index );
756 KDIS_EXPORT KString GetEnumAsStringTransmitLineState( KINT32 Value );
758 // Returns true if a value was found.
759 KDIS_EXPORT KBOOL GetEnumFromStringTransmitLineState( const KString & Value, KINT32 & ValueOut );
761 /************************************************************************/
762 /* Line State Command */
763 /* specifies the detailed type requested when the control type is */
764 /* request or acknowledge */
765 /* Used In: */
766 /* Intercom_Control_PDU */
767 /************************************************************************/
769 enum LineStateCommand
771 NoLineStateCommand = 0,
772 SetLineState_Transmitting = 1,
773 SetLineState_NotTransmitting = 2,
774 ReturnToLocalLineStateControl = 3
775 // 4-255 Reserved
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 GetEnumSizeLineStateCommand();
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 * GetEnumDescriptorLineStateCommand( KUINT32 Index );
788 KDIS_EXPORT KString GetEnumAsStringLineStateCommand( KINT32 Value );
790 // Returns true if a value was found.
791 KDIS_EXPORT KBOOL GetEnumFromStringLineStateCommand( const KString & Value, KINT32 & ValueOut );
793 /************************************************************************/
794 /* AdditionalIntrCommParamType */
795 /* specifies the type of additonal intercom parameter data included. */
796 /* Used In: */
797 /* Intercom_Control_PDU */
798 /************************************************************************/
800 enum AdditionalIntrCommParamType
802 EntityDestinationRecord_Type = 1,
803 GroupDestinationRecord_Type = 2,
804 GroupAssignmentRecord_Type = 3
807 // Returns number of values in the EnumDescriptor for this enum.
808 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
809 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
810 KDIS_EXPORT KUINT32 GetEnumSizeAdditionalIntrCommParamType();
812 // Returns the EnumDescriptor value for the specified index.
813 // Use GetEnumSize<enum> to get the array size.
814 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
815 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorAdditionalIntrCommParamType( KUINT32 Index );
817 KDIS_EXPORT KString GetEnumAsStringAdditionalIntrCommParamType( KINT32 Value );
819 // Returns true if a value was found.
820 KDIS_EXPORT KBOOL GetEnumFromStringAdditionalIntrCommParamType( const KString & Value, KINT32 & ValueOut );
822 #if DIS_VERSION > 6
823 /************************************************************************/
824 /* AttachedIndicator */
825 /* Used to indicate whether the object is attached to an entity or */
826 /* object. */
827 /* Used In: */
828 /* PDU Header 7 */
829 /************************************************************************/
831 enum AttachedIndicator
833 NoStatementAttachedIndicator = 0,
834 UnattachedAttachedIndicator = 1,
835 AttachedAttachedIndicator = 2
838 // Returns number of values in the EnumDescriptor for this enum.
839 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
840 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
841 KDIS_EXPORT KUINT32 GetEnumSizeAttachedIndicator();
843 // Returns the EnumDescriptor value for the specified index.
844 // Use GetEnumSize<enum> to get the array size.
845 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
846 KDIS_EXPORT const EnumDescriptor * GetEnumDescriptorAttachedIndicator( KUINT32 Index );
848 KDIS_EXPORT KString GetEnumAsStringAttachedIndicator( KINT32 Value );
850 // Returns true if a value was found.
851 KDIS_EXPORT KBOOL GetEnumFromStringAttachedIndicator( const KString & Value, KINT32 & ValueOut );
853 #endif
855 enum BeamAntennaPatternReferenceSystem
857 ReferenceSystemWorldCoordinates = 1,
858 ReferenceSystemEntityCoordinates = 2
861 KUINT32 GetEnumSizeBeamAntennaPatternReferenceSystem();
863 const EnumDescriptor * GetEnumDescriptorBeamAntennaPatternReferenceSystem( KUINT32 Index);
865 KString GetEnumAsStringBeamAntennaPatternReferenceSystem(KINT32 Value);
867 KBOOL GetEnumFromStringBeamAntennaPatternReferenceSystem( const KString& Value, KINT32 & ValueOut );
870 } // END namespace ENUMS
871 } // END namespace DATA_TYPES
872 } // END namespace KDIS