Remove old changelog
[KDIS.git] / include / KDIS / DataTypes / Enums / EnumRadio.hpp
blob6d9ece7a902f817713568db5ab8dc4645d844af2
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 "KDIS/DataTypes/Enums/EnumDescriptor.hpp"
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 { Off = 0, OnButNotTransmitting = 1, OnAndTransmitting = 2 };
55 // Returns number of values in the EnumDescriptor for this enum.
56 // This can be used to iterate through all possible enum values by using
57 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
58 // be returned.
59 KDIS_EXPORT KUINT32 GetEnumSizeTransmitState();
61 // Returns the EnumDescriptor value for the specified index.
62 // Use GetEnumSize<enum> to get the array size.
63 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
64 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorTransmitState(KUINT32 Index);
66 KDIS_EXPORT KString GetEnumAsStringTransmitState(KINT32 Value);
68 // Returns true if a value was found.
69 KDIS_EXPORT KBOOL GetEnumFromStringTransmitState(const KString& Value,
70 KINT32& ValueOut);
72 /************************************************************************/
73 /* Radio Input Source */
74 /* Radio in put source, represents the part of the entity that is */
75 /* transmitting. */
76 /* Used In: */
77 /* Tranmitter PDU */
78 /************************************************************************/
80 enum RadioInputSource {
81 OtherRadioInputSource = 0,
82 Pilot = 1,
83 Copilot = 2,
84 FirstOfficer = 3,
85 Driver = 4,
86 Loader = 5,
87 Gunner = 6,
88 Commander = 7,
89 DigitalDataDevice = 8,
90 Intercom = 9,
91 #if DIS_VERSION > 6
92 AudioJammer = 10,
93 DataJammer = 11,
94 GPSJammer = 12,
95 GPSMeaconer = 13,
96 #endif
99 // Returns number of values in the EnumDescriptor for this enum.
100 // This can be used to iterate through all possible enum values by using
101 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
102 // be returned.
103 KDIS_EXPORT KUINT32 GetEnumSizeRadioInputSource();
105 // Returns the EnumDescriptor value for the specified index.
106 // Use GetEnumSize<enum> to get the array size.
107 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
108 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorRadioInputSource(
109 KUINT32 Index);
111 KDIS_EXPORT KString GetEnumAsStringRadioInputSource(KINT32 Value);
113 // Returns true if a value was found.
114 KDIS_EXPORT KBOOL GetEnumFromStringRadioInputSource(const KString& Value,
115 KINT32& ValueOut);
117 /************************************************************************/
118 /* Antenna Pattern Type */
119 /* Type of representation used for radiation pattern from antenna */
120 /* transmitting. */
121 /* Used In: */
122 /* Tranmitter PDU */
123 /************************************************************************/
125 enum AntennaPatternType {
126 Omni_Directional = 0,
127 Beam = 1,
128 SphericalHarmonic = 2
131 // Returns number of values in the EnumDescriptor for this enum.
132 // This can be used to iterate through all possible enum values by using
133 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
134 // be returned.
135 KDIS_EXPORT KUINT32 GetEnumSizeAntennaPatternType();
137 // Returns the EnumDescriptor value for the specified index.
138 // Use GetEnumSize<enum> to get the array size.
139 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
140 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorAntennaPatternType(
141 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,
147 KINT32& ValueOut);
149 /************************************************************************/
150 /* Radio Major Modulation */
151 /* Major Modulation Field */
152 /* Used In: */
153 /* Modulation Type */
154 /************************************************************************/
156 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
169 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
170 // be returned.
171 KDIS_EXPORT KUINT32 GetEnumSizeRadioMajorModulation();
173 // Returns the EnumDescriptor value for the specified index.
174 // Use GetEnumSize<enum> to get the array size.
175 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
176 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorRadioMajorModulation(
177 KUINT32 Index);
179 KDIS_EXPORT KString GetEnumAsStringRadioMajorModulation(KINT32 Value);
181 // Returns true if a value was found.
182 KDIS_EXPORT KBOOL GetEnumFromStringRadioMajorModulation(const KString& Value,
183 KINT32& ValueOut);
185 /************************************************************************/
186 /* Modulation Detail */
187 /* Various Enums dependent on Radio Major Modulation */
188 /* Used In: */
189 /* Modulation Type */
190 /************************************************************************/
192 enum DetailAmplitude {
193 OtherDetailAmplitude = 0,
194 AFSK_AudioFrequencyShiftKeying = 1,
195 AM_AmplitudeModulation = 2,
196 CW_ContinuousWaveModulation = 3,
197 DSB_DoubleSideband = 4,
198 ISB_IndependentSideband = 5,
199 LSB_SingleBandSuppressedCarrier_LowerSidebandMode = 6,
200 SSB_Full_SingleSidebandFullCarrier = 7,
201 SSB_Reduc_SingleBandReducedCarrier = 8,
202 USB_SingleBandSuppressedCarrier_UpperSidebandMode = 9,
203 VSB_VestigialSideband = 10
206 // Returns number of values in the EnumDescriptor for this enum.
207 // This can be used to iterate through all possible enum values by using
208 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
209 // be returned.
210 KDIS_EXPORT KUINT32 GetEnumSizeDetailAmplitude();
212 // Returns the EnumDescriptor value for the specified index.
213 // Use GetEnumSize<enum> to get the array size.
214 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
215 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorDetailAmplitude(
216 KUINT32 Index);
218 KDIS_EXPORT KString GetEnumAsStringDetailAmplitude(KINT32 Value);
220 // Returns true if a value was found.
221 KDIS_EXPORT KBOOL GetEnumFromStringDetailAmplitude(const KString& Value,
222 KINT32& ValueOut);
224 enum DetailAmplitudeAndAngle {
225 OtherDetailAmplitudeAndAngleDetail = 0,
226 AmplitudeAndAngleDetail = 1
229 // Returns number of values in the EnumDescriptor for this enum.
230 // This can be used to iterate through all possible enum values by using
231 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
232 // be returned.
233 KDIS_EXPORT KUINT32 GetEnumSizeDetailAmplitudeAndAngle();
235 // Returns the EnumDescriptor value for the specified index.
236 // Use GetEnumSize<enum> to get the array size.
237 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
238 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorDetailAmplitudeAndAngle(
239 KUINT32 Index);
241 KDIS_EXPORT KString GetEnumAsStringDetailAmplitudeAndAngle(KINT32 Value);
243 // Returns true if a value was found.
244 KDIS_EXPORT KBOOL GetEnumFromStringDetailAmplitudeAndAngle(const KString& Value,
245 KINT32& ValueOut);
247 enum DetailAngle {
248 OtherDetailAngle = 0,
249 FM_FrequencyModulation = 1,
250 FSK_FrequencyShiftKeying = 2,
251 PM_PhaseModulation = 3
254 // Returns number of values in the EnumDescriptor for this enum.
255 // This can be used to iterate through all possible enum values by using
256 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
257 // be returned.
258 KDIS_EXPORT KUINT32 GetEnumSizeDetailAngle();
260 // Returns the EnumDescriptor value for the specified index.
261 // Use GetEnumSize<enum> to get the array size.
262 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
263 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorDetailAngle(KUINT32 Index);
265 KDIS_EXPORT KString GetEnumAsStringDetailAngle(KINT32 Value);
267 // Returns true if a value was found.
268 KDIS_EXPORT KBOOL GetEnumFromStringDetailAngle(const KString& Value,
269 KINT32& ValueOut);
271 enum DetailCombination { OtherDetailCombination = 0, AmplitudeAnglePulse = 1 };
273 // Returns number of values in the EnumDescriptor for this enum.
274 // This can be used to iterate through all possible enum values by using
275 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
276 // be returned.
277 KDIS_EXPORT KUINT32 GetEnumSizeDetailCombination();
279 // Returns the EnumDescriptor value for the specified index.
280 // Use GetEnumSize<enum> to get the array size.
281 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
282 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorDetailCombination(
283 KUINT32 Index);
285 KDIS_EXPORT KString GetEnumAsStringDetailCombination(KINT32 Value);
287 // Returns true if a value was found.
288 KDIS_EXPORT KBOOL GetEnumFromStringDetailCombination(const KString& Value,
289 KINT32& ValueOut);
291 enum DetailPulse {
292 OtherPulseDetail = 0,
293 PulseDetail = 1,
294 X_Band_TACAN_PulseDetail = 2,
295 Y_Band_TACAN_PulseDetail = 3
298 // Returns number of values in the EnumDescriptor for this enum.
299 // This can be used to iterate through all possible enum values by using
300 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
301 // be returned.
302 KDIS_EXPORT KUINT32 GetEnumSizeDetailPulse();
304 // Returns the EnumDescriptor value for the specified index.
305 // Use GetEnumSize<enum> to get the array size.
306 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
307 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorDetailPulse(KUINT32 Index);
309 KDIS_EXPORT KString GetEnumAsStringDetailPulse(KINT32 Value);
311 // Returns true if a value was found.
312 KDIS_EXPORT KBOOL GetEnumFromStringDetailPulse(const KString& Value,
313 KINT32& ValueOut);
315 enum DetailUnmodulated {
316 OtherDetailUnmodulted = 0,
317 ContinuousWaveEmissionOfAnUnmodulatedCarrier = 1
320 // Returns number of values in the EnumDescriptor for this enum.
321 // This can be used to iterate through all possible enum values by using
322 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
323 // be returned.
324 KDIS_EXPORT KUINT32 GetEnumSizeDetailUnmodulated();
326 // Returns the EnumDescriptor value for the specified index.
327 // Use GetEnumSize<enum> to get the array size.
328 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
329 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorDetailUnmodulated(
330 KUINT32 Index);
332 KDIS_EXPORT KString GetEnumAsStringDetailUnmodulated(KINT32 Value);
334 // Returns true if a value was found.
335 KDIS_EXPORT KBOOL GetEnumFromStringDetailUnmodulated(const KString& Value,
336 KINT32& ValueOut);
338 enum DetailCarrierPhaseShift { OtherDetailCarrierPhaseShift = 0 };
340 enum DetailNoStatement { DetailNoStatementNoStatement = 0 };
341 // Returns number of values in the EnumDescriptor for this enum.
342 // This can be used to iterate through all possible enum values by using
343 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
344 // be returned.
345 KDIS_EXPORT KUINT32 GetEnumSizeDetailCarrierPhaseShift();
347 // Returns the EnumDescriptor value for the specified index.
348 // Use GetEnumSize<enum> to get the array size.
349 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
350 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorDetailCarrierPhaseShift(
351 KUINT32 Index);
353 KDIS_EXPORT KString GetEnumAsStringDetailCarrierPhaseShift(KINT32 Value);
355 // Returns true if a value was found.
356 KDIS_EXPORT KBOOL GetEnumFromStringDetailCarrierPhaseShift(const KString& Value,
357 KINT32& ValueOut);
359 /************************************************************************/
360 /* Modulation System */
361 /* Specifies the interpretation of the modulation parameter field(s) */
362 /* Used In: */
363 /* Modulation Type */
364 /************************************************************************/
366 enum ModulationSystem {
367 OtherModulationSystem = 0,
368 GenericModulationSystem = 1,
369 HQ = 2,
370 HQII = 3,
371 HQIIA = 4,
372 SINCGARS = 5,
373 CCTT_SINCGARS = 6,
374 EPLRS_EnhancedPositionLocationReportingSystem = 7,
375 JTIDS_MIDS = 8,
376 #if DIS_VERSION > 6
377 LINK11 = 9,
378 LINK11b = 10,
379 LBAND_SATCOM = 11,
380 ENHANCED_SINCGARS_73 = 12,
381 NAVIGATION_AID = 13,
382 #endif
385 // Returns number of values in the EnumDescriptor for this enum.
386 // This can be used to iterate through all possible enum values by using
387 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
388 // be returned.
389 KDIS_EXPORT KUINT32 GetEnumSizeModulationSystem();
391 // Returns the EnumDescriptor value for the specified index.
392 // Use GetEnumSize<enum> to get the array size.
393 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
394 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorModulationSystem(
395 KUINT32 Index);
397 KDIS_EXPORT KString GetEnumAsStringModulationSystem(KINT32 Value);
399 // Returns true if a value was found.
400 KDIS_EXPORT KBOOL GetEnumFromStringModulationSystem(const KString& Value,
401 KINT32& ValueOut);
403 /************************************************************************/
404 /* Crypto System Type */
405 /* Identifies the crypto equipment used in a tranmission */
406 /* Used In: */
407 /* Transmitter PDU */
408 /************************************************************************/
410 enum CryptoSystemType {
411 OtherCryptoSystem = 0,
412 KY_28 = 1,
413 VINSON_KY_57_KY_58_SINCGARS_ICOM = 2,
414 NarrowSpectrumSecureVoice_NSVE = 3,
415 WideSpectrumSecureVoice_WSVE = 4,
416 #if DIS_VERSION > 6
417 SINCGARS_ICOM = 5,
418 KY_75 = 6,
419 KY_100 = 7,
420 KY_57 = 8,
421 KYV_5 = 9,
422 Link11_KG_40A_P_NTDS = 10,
423 Link11B_KG_40A_S = 11,
424 Link11_KG_40AR = 12,
425 #endif
428 // Returns number of values in the EnumDescriptor for this enum.
429 // This can be used to iterate through all possible enum values by using
430 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
431 // be returned.
432 KDIS_EXPORT KUINT32 GetEnumSizeCryptoSystemType();
434 // Returns the EnumDescriptor value for the specified index.
435 // Use GetEnumSize<enum> to get the array size.
436 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
437 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorCryptoSystemType(
438 KUINT32 Index);
440 KDIS_EXPORT KString GetEnumAsStringCryptoSystemType(KINT32 Value);
442 // Returns true if a value was found.
443 KDIS_EXPORT KBOOL GetEnumFromStringCryptoSystemType(const KString& Value,
444 KINT32& ValueOut);
446 /************************************************************************/
447 /* Encryption Mode */
448 /* Identifies the mode of encryption */
449 /* Used In: */
450 /* CryptoSystem */
451 /************************************************************************/
453 enum EncryptionMode { BaseBand = 0, Diphase = 1 };
455 // Returns number of values in the EnumDescriptor for this enum.
456 // This can be used to iterate through all possible enum values by using
457 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
458 // be returned.
459 KDIS_EXPORT KUINT32 GetEnumSizeEncryptionMode();
461 // Returns the EnumDescriptor value for the specified index.
462 // Use GetEnumSize<enum> to get the array size.
463 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
464 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorEncryptionMode(
465 KUINT32 Index);
467 KDIS_EXPORT KString GetEnumAsStringEncryptionMode(KINT32 Value);
469 // Returns true if a value was found.
470 KDIS_EXPORT KBOOL GetEnumFromStringEncryptionMode(const KString& Value,
471 KINT32& ValueOut);
473 /************************************************************************/
474 /* Encoding Class */
475 /* Encoding class for a signal PDU */
476 /* Used In: */
477 /* EncodingScheme */
478 /************************************************************************/
480 enum EncodingClass {
481 EncodedAudio = 0,
482 RawBinaryData = 1,
483 ApplicationSpecificData = 2,
484 DatabaseIndex = 3
487 // Returns number of values in the EnumDescriptor for this enum.
488 // This can be used to iterate through all possible enum values by using
489 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
490 // be returned.
491 KDIS_EXPORT KUINT32 GetEnumSizeEncodingClass();
493 // Returns the EnumDescriptor value for the specified index.
494 // Use GetEnumSize<enum> to get the array size.
495 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
496 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorEncodingClass(KUINT32 Index);
498 KDIS_EXPORT KString GetEnumAsStringEncodingClass(KINT32 Value);
500 // Returns true if a value was found.
501 KDIS_EXPORT KBOOL GetEnumFromStringEncodingClass(const KString& Value,
502 KINT32& ValueOut);
504 /************************************************************************/
505 /* Encoding Type */
506 /* Encoding type when EncodingClass is audio */
507 /* Used In: */
508 /* EncodingScheme */
509 /************************************************************************/
511 enum EncodingType {
512 _8_bit_mu_law = 1,
513 CVSD_per_MIL_STD_188_113 = 2,
514 ADPCM_per_CCITT_G_721 = 3,
515 _16_bit_linear_PCM2sComplementBigEndian = 4,
516 _8_bit_linear_PCM = 5,
517 VQ_VectorQuantization = 6,
518 GSM_FullRate = 8,
519 GSM_HalfRate = 9,
520 SpeexNarrowBand = 10,
521 _16_bit_linear_PCM2sComplementLittleEndian = 100
525 // Returns number of values in the EnumDescriptor for this enum.
526 // This can be used to iterate through all possible enum values by using
527 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
528 // be returned.
529 KDIS_EXPORT KUINT32 GetEnumSizeEncodingType();
531 // Returns the EnumDescriptor value for the specified index.
532 // Use GetEnumSize<enum> to get the array size.
533 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
534 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorEncodingType(KUINT32 Index);
536 KDIS_EXPORT KString GetEnumAsStringEncodingType(KINT32 Value);
538 // Returns true if a value was found.
539 KDIS_EXPORT KBOOL GetEnumFromStringEncodingType(const KString& Value,
540 KINT32& ValueOut);
542 /************************************************************************/
543 /* TDL Type */
544 /* Tactical Data Link Type */
545 /* Used In: */
546 /* EncodingScheme */
547 /************************************************************************/
549 enum TDLType {
550 OtherTDLType = 0,
551 PADIL = 1,
552 NATOLink_1 = 2,
553 ATDL_1 = 3,
554 Link11B_TADILB_ = 4,
555 SituationalAwarenessDataLink_SADL_ = 5,
556 Link16LegacyFormat_JTIDS_TADIL_J_ = 6,
557 Link16LegacyFormat_JTIDS_FDL_TADIL_J_ = 7,
558 Link11A_TADILA_ = 8,
559 IJMS = 9,
560 Link4A_TADILC_ = 10,
561 Link4C = 11,
562 TIBS = 12,
563 ATL = 13,
564 ConstantSource = 14,
565 AbbreviatedCommandandControl = 15,
566 MILSTAR = 16,
567 ATHS = 17,
568 OTHGOLD = 18,
569 TACELINT = 19,
570 WeaponsDataLink_AWW_13_ = 20,
571 AbbreviatedCommandandControl1 = 21,
572 EnhancedPositionLocationReportingSystem_EPLRS_ = 22,
573 PositionLocationReportingSystem_PLRS_ = 23,
574 SINCGARS_TDLType = 24,
575 HaveQuickI = 25,
576 HaveQuickII = 26,
577 HaveQuickIIA_Saturn_ = 27,
578 Intra_FlightDataLink1 = 28,
579 Intra_FlightDataLink2 = 29,
580 ImprovedDataModem_IDM_ = 30,
581 AirForceApplicationProgramDevelopment_AFAPD_ = 31,
582 CooperativeEngagementCapability_CEC_ = 32,
583 ForwardAreaAirDefense_FAAD_DataLink_FDL_ = 33,
584 GroundBasedDataLink_GBDL_ = 34,
585 IntraVehicularInfoSystem_IVIS_ = 35,
586 MarineTacticalSystem_MTS_ = 36,
587 TacticalFireDirectionSystem_TACFIRE_ = 37,
588 IntegratedBroadcastService_IBS_ = 38,
589 AirborneInformationTransfer_ABIT_ = 39,
590 AdvancedTacticalAirborneReconnaissanceSystem_ATARS_DataLink = 40,
591 BattleGroupPassiveHorizonExtensionSystem_BGPHES_DataLink = 41,
592 CommonHighBandwidthDataLink_CHBDL_ = 42,
593 GuardrailInteroperableDataLink_IDL_ = 43,
594 GuardrailCommonSensorSystemOne_CSS1_DataLink = 44,
595 GuardrailCommonSensorSystemTwo_CSS2_DataLink = 45,
596 GuardrailCSS2Multi_RoleDataLink_MRDL_ = 46,
597 GuardrailCSS2DirectAirtoSatelliteRelay_DASR_DataLink = 47,
598 LineofSight_LOS_DataLinkImplementation_LOStether_ = 48,
599 LightweightCDL_LWCDL_ = 49,
600 L_52M_SR_71_ = 50,
601 RivetReach_RivetOwlDataLink = 51,
602 SeniorSpan = 52,
603 SeniorSpur = 53,
604 SeniorStretch_ = 54,
605 SeniorYearInteroperableDataLink_IDL_ = 55,
606 SpaceCDL = 56,
607 TR_1modeMISTAirborneDataLink = 57,
608 Ku_bandSATCOMDataLinkImplementation_UAV_ = 58,
609 MissionEquipmentControlDatalink_MECDL_ = 59,
610 RadarDataTransmittingSetDataLink = 60,
611 SurveillanceandControlDataLink_SCDL_ = 61,
612 TacticalUAVVideo = 62,
613 UHFSATCOMDataLinkImplementation_UAV_ = 63,
614 TacticalCommonDataLink_TCDL_ = 64,
615 LowLevelAirPictureInterface_LLAPI_ = 65,
616 WeaponsDataLink_AGM_130_ = 66,
617 #if DIS_VERSION > 6
618 Automatic_Identification_System_AIS = 67,
619 Weapons_Data_Link_AIM_120 = 68,
620 Weapons_Data_Link_AIM_9 = 69,
621 #endif
622 GC3 = 99,
623 Link16StandardizedFormat_JTIDS_MIDS_TADILJ_ = 100,
624 Link16EnhancedDataRate_EDRJTIDS_MIDS_TADIL_J_ = 101,
625 JTIDS_MIDSNetDataLoad_TIMS_TOMS_ = 102,
626 Link22 = 103,
627 AFIWCIADSCommunicationsLinks = 104,
628 #if DIS_VERSION > 6
629 F22_IntraFlight_Data_Link_IFDL = 105,
630 LBand_SATCOM = 106,
631 TSAF_Communications_Link = 107,
632 Enhanced_SINCGARS_7_3 = 108,
633 F35_Multifunction_Advanced_Data_Link_MADL = 109,
634 Cursor_on_Target = 110,
635 All_Purpose_Structured_Eurocontrol_Surveillance_Information_Exchange_ASTERIX =
636 111,
637 #endif
640 // Returns number of values in the EnumDescriptor for this enum.
641 // This can be used to iterate through all possible enum values by using
642 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
643 // be returned.
644 KDIS_EXPORT KUINT32 GetEnumSizeTDLType();
646 // Returns the EnumDescriptor value for the specified index.
647 // Use GetEnumSize<enum> to get the array size.
648 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
649 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorTDLType(KUINT32 Index);
651 KDIS_EXPORT KString GetEnumAsStringTDLType(KINT32 Value);
653 // Returns true if a value was found.
654 KDIS_EXPORT KBOOL GetEnumFromStringTDLType(const KString& Value,
655 KINT32& ValueOut);
657 /************************************************************************/
658 /* Control Type */
659 /* Type of control requested */
660 /* Used In: */
661 /* Intercom_Control_PDU */
662 /************************************************************************/
664 enum ControlType {
665 ControlTypeReserved = 0,
666 ControlTypeStatus = 1,
667 Request_Acknowledge_Required = 2,
668 Request_No_Acknowledge = 3,
669 Ack_Request_Granted = 4,
670 Nack_Request_Denied = 5
671 // 6-255 Reserved
674 // Returns number of values in the EnumDescriptor for this enum.
675 // This can be used to iterate through all possible enum values by using
676 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
677 // be returned.
678 KDIS_EXPORT KUINT32 GetEnumSizeControlType();
680 // Returns the EnumDescriptor value for the specified index.
681 // Use GetEnumSize<enum> to get the array size.
682 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
683 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorControlType(KUINT32 Index);
685 KDIS_EXPORT KString GetEnumAsStringControlType(KINT32 Value);
687 // Returns true if a value was found.
688 KDIS_EXPORT KBOOL GetEnumFromStringControlType(const KString& Value,
689 KINT32& ValueOut);
691 /************************************************************************/
692 /* Communications Channel Type */
693 /* Communications Channel Type enumerations */
694 /* Used In: */
695 /* Intercom_Control_PDU */
696 /************************************************************************/
698 enum ChannelType {
699 ChannelTypeReserved = 0,
700 Connection_FDX = 1,
701 Connection_HDX_Destination_Receive_Only = 2,
702 Connection_HDX_Destination_Transmit_Only = 3,
703 Connection_HDX = 4
704 // 5-255 Reserved
707 // Returns number of values in the EnumDescriptor for this enum.
708 // This can be used to iterate through all possible enum values by using
709 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
710 // be returned.
711 KDIS_EXPORT KUINT32 GetEnumSizeChannelType();
713 // Returns the EnumDescriptor value for the specified index.
714 // Use GetEnumSize<enum> to get the array size.
715 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
716 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorChannelType(KUINT32 Index);
718 KDIS_EXPORT KString GetEnumAsStringChannelType(KINT32 Value);
720 // Returns true if a value was found.
721 KDIS_EXPORT KBOOL GetEnumFromStringChannelType(const KString& Value,
722 KINT32& ValueOut);
724 enum ChannelClass {
725 Simulated_Comm_Channel = 0,
726 Simulation_Support_Comm_Channel = 1
729 // Returns number of values in the EnumDescriptor for this enum.
730 // This can be used to iterate through all possible enum values by using
731 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
732 // be returned.
733 KDIS_EXPORT KUINT32 GetEnumSizeChannelClass();
735 // Returns the EnumDescriptor value for the specified index.
736 // Use GetEnumSize<enum> to get the array size.
737 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
738 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorChannelClass(KUINT32 Index);
740 KDIS_EXPORT KString GetEnumAsStringChannelClass(KINT32 Value);
742 // Returns true if a value was found.
743 KDIS_EXPORT KBOOL GetEnumFromStringChannelClass(const KString& Value,
744 KINT32& ValueOut);
746 /************************************************************************/
747 /* Transmit Line State */
748 /* Identifies the current transmit state of the line at the intercon */
749 /* source. */
750 /* Used In: */
751 /* Intercom_Control_PDU */
752 /************************************************************************/
754 enum TransmitLineState {
755 TransmitLineStateNotApplicable = 0,
756 NotTransmitting = 1,
757 Transmitting = 2
758 // 3-255 Reserved
761 // Returns number of values in the EnumDescriptor for this enum.
762 // This can be used to iterate through all possible enum values by using
763 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
764 // be returned.
765 KDIS_EXPORT KUINT32 GetEnumSizeTransmitLineState();
767 // Returns the EnumDescriptor value for the specified index.
768 // Use GetEnumSize<enum> to get the array size.
769 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
770 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorTransmitLineState(
771 KUINT32 Index);
773 KDIS_EXPORT KString GetEnumAsStringTransmitLineState(KINT32 Value);
775 // Returns true if a value was found.
776 KDIS_EXPORT KBOOL GetEnumFromStringTransmitLineState(const KString& Value,
777 KINT32& ValueOut);
779 /************************************************************************/
780 /* Line State Command */
781 /* specifies the detailed type requested when the control type is */
782 /* request or acknowledge */
783 /* Used In: */
784 /* Intercom_Control_PDU */
785 /************************************************************************/
787 enum LineStateCommand {
788 NoLineStateCommand = 0,
789 SetLineState_Transmitting = 1,
790 SetLineState_NotTransmitting = 2,
791 ReturnToLocalLineStateControl = 3
792 // 4-255 Reserved
795 // Returns number of values in the EnumDescriptor for this enum.
796 // This can be used to iterate through all possible enum values by using
797 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
798 // be returned.
799 KDIS_EXPORT KUINT32 GetEnumSizeLineStateCommand();
801 // Returns the EnumDescriptor value for the specified index.
802 // Use GetEnumSize<enum> to get the array size.
803 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
804 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorLineStateCommand(
805 KUINT32 Index);
807 KDIS_EXPORT KString GetEnumAsStringLineStateCommand(KINT32 Value);
809 // Returns true if a value was found.
810 KDIS_EXPORT KBOOL GetEnumFromStringLineStateCommand(const KString& Value,
811 KINT32& ValueOut);
813 /************************************************************************/
814 /* AdditionalIntrCommParamType */
815 /* specifies the type of additonal intercom parameter data included. */
816 /* Used In: */
817 /* Intercom_Control_PDU */
818 /************************************************************************/
820 enum AdditionalIntrCommParamType {
821 EntityDestinationRecord_Type = 1,
822 GroupDestinationRecord_Type = 2,
823 GroupAssignmentRecord_Type = 3
826 // Returns number of values in the EnumDescriptor for this enum.
827 // This can be used to iterate through all possible enum values by using
828 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
829 // be returned.
830 KDIS_EXPORT KUINT32 GetEnumSizeAdditionalIntrCommParamType();
832 // Returns the EnumDescriptor value for the specified index.
833 // Use GetEnumSize<enum> to get the array size.
834 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
835 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorAdditionalIntrCommParamType(
836 KUINT32 Index);
838 KDIS_EXPORT KString GetEnumAsStringAdditionalIntrCommParamType(KINT32 Value);
840 // Returns true if a value was found.
841 KDIS_EXPORT KBOOL GetEnumFromStringAdditionalIntrCommParamType(
842 const KString& Value, KINT32& ValueOut);
844 #if DIS_VERSION > 6
845 /************************************************************************/
846 /* AttachedIndicator */
847 /* Used to indicate whether the object is attached to an entity or */
848 /* object. */
849 /* Used In: */
850 /* PDU Header 7 */
851 /************************************************************************/
853 enum AttachedIndicator {
854 NoStatementAttachedIndicator = 0,
855 UnattachedAttachedIndicator = 1,
856 AttachedAttachedIndicator = 2
859 // Returns number of values in the EnumDescriptor for this enum.
860 // This can be used to iterate through all possible enum values by using
861 // GetEnumDescriptor<enum>. If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will
862 // be returned.
863 KDIS_EXPORT KUINT32 GetEnumSizeAttachedIndicator();
865 // Returns the EnumDescriptor value for the specified index.
866 // Use GetEnumSize<enum> to get the array size.
867 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
868 KDIS_EXPORT const EnumDescriptor* GetEnumDescriptorAttachedIndicator(
869 KUINT32 Index);
871 KDIS_EXPORT KString GetEnumAsStringAttachedIndicator(KINT32 Value);
873 // Returns true if a value was found.
874 KDIS_EXPORT KBOOL GetEnumFromStringAttachedIndicator(const KString& Value,
875 KINT32& ValueOut);
877 #endif
879 enum BeamAntennaPatternReferenceSystem {
880 ReferenceSystemWorldCoordinates = 1,
881 ReferenceSystemEntityCoordinates = 2
884 KUINT32 GetEnumSizeBeamAntennaPatternReferenceSystem();
886 const EnumDescriptor* GetEnumDescriptorBeamAntennaPatternReferenceSystem(
887 KUINT32 Index);
889 KString GetEnumAsStringBeamAntennaPatternReferenceSystem(KINT32 Value);
891 KBOOL GetEnumFromStringBeamAntennaPatternReferenceSystem(const KString& Value,
892 KINT32& ValueOut);
894 } // END namespace ENUMS
895 } // namespace DATA_TYPE
896 } // END namespace KDIS