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 for System Identifier.
36 *********************************************************************/
40 #include "./EnumDescriptor.h"
46 /************************************************************************/
48 /* System Type field in the System Identifier record of the */
49 /* IFF/ATC/NAVAIDS PDU. General type of emitting system */
51 /* System Identifier */
52 /************************************************************************/
57 Mark_X_XII_ATCRBS_ModeS_Transponder
= 1,
58 Mark_X_XII_ATCRBS_ModeS_Interrogator
= 2,
59 Soviet_Transponder
= 3,
60 Soviet_Interrogator
= 4,
63 Mark_XIIA_Interrogator
= 6,
64 Mode_5_Interrogator
= 7,
65 Mode_S_Interrogator
= 8,
66 Mark_XIIA_Transponder
= 9,
67 Mode_5_Transponder
= 10,
68 Mode_S_Transponder
= 11,
69 Mark_XIIA_Combined_Interrogator_Transponder_CIT
= 12,
70 Mark_XII_Combined_Interrogator_Transponder_CIT
= 13,
71 TCAS_ACAS_Transceiver
= 14,
72 Generic_TCAS_I_ACAS_I_Transceiver
= 15,
73 Generic_TCAS_II_ACAS_II_Transceiver
= 16,
74 Generic_Mark_X_A
= 17,
75 Generic_Mark_X_SIF
= 18,
79 // Returns number of values in the EnumDescriptor for this enum.
80 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
81 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
82 KDIS_EXPORT KUINT32
GetEnumSizeSystemType();
84 // Returns the EnumDescriptor value for the specified index.
85 // Use GetEnumSize<enum> to get the array size.
86 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
87 KDIS_EXPORT
const EnumDescriptor
* GetEnumDescriptorSystemType( KUINT32 Index
);
89 KDIS_EXPORT KString
GetEnumAsStringSystemType( KINT32 Value
);
91 // Returns true if a value was found.
92 KDIS_EXPORT KBOOL
GetEnumFromStringSystemType( const KString
& Value
, KINT32
& ValueOut
);
94 /************************************************************************/
96 /* System name field in the System Identifier record of the */
97 /* IFF/ATC/NAVAIDS PDU. Pariticular named type system */
99 /* System Identifier */
100 /************************************************************************/
110 Mark_X_XII_ATCRBS
= 6,
111 Mark_X_XII_ATCRBS_Mode_S
= 7,
116 Generic_Mark_XIIA
= 11,
121 // Returns number of values in the EnumDescriptor for this enum.
122 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
123 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
124 KDIS_EXPORT KUINT32
GetEnumSizeSystemName();
126 // Returns the EnumDescriptor value for the specified index.
127 // Use GetEnumSize<enum> to get the array size.
128 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
129 KDIS_EXPORT
const EnumDescriptor
* GetEnumDescriptorSystemName( KUINT32 Index
);
131 KDIS_EXPORT KString
GetEnumAsStringSystemName( KINT32 Value
);
133 // Returns true if a value was found.
134 KDIS_EXPORT KBOOL
GetEnumFromStringSystemName( const KString
& Value
, KINT32
& ValueOut
);
136 /************************************************************************/
138 /* System mode field in the System Identifier record of the */
139 /* IFF/ATC/NAVAIDS PDU. Mode of operation for the named system */
141 /* System Identifier */
142 /************************************************************************/
148 #elif DIS_VERSION > 6
154 Low_or_Low_Sensitivity
= 5,
158 // Returns number of values in the EnumDescriptor for this enum.
159 // This can be used to iterate through all possible enum values by using GetEnumDescriptor<enum>.
160 // If KDIS_USE_ENUM_DESCRIPTORS is not set then 0 will be returned.
161 KDIS_EXPORT KUINT32
GetEnumSizeSystemMode();
163 // Returns the EnumDescriptor value for the specified index.
164 // Use GetEnumSize<enum> to get the array size.
165 // If KDIS_USE_ENUM_DESCRIPTORS is not set then NULL will be returned.
166 KDIS_EXPORT
const EnumDescriptor
* GetEnumDescriptorSystemMode( KUINT32 Index
);
168 KDIS_EXPORT KString
GetEnumAsStringSystemMode( KINT32 Value
);
170 // Returns true if a value was found.
171 KDIS_EXPORT KBOOL
GetEnumFromStringSystemMode( const KString
& Value
, KINT32
& ValueOut
);
173 } // END namespace ENUMS
174 } // END namespace DATA_TYPES
175 } // END namespace KDIS