chore(include): changed include files from .h to .hpp
[KDIS.git] / include / KDIS / DataTypes / Enums / EnumSystemIdentifier.hpp
blob4f1b62801ec91e80f31504215ea9e60a7500f1b0
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 EnumSystemIdentifier
32 created: 05/12/2008
33 author: Karl Jones
35 purpose: Enums for System Identifier.
36 *********************************************************************/
38 #pragma once
40 #include "./EnumDescriptor.h"
42 namespace KDIS {
43 namespace DATA_TYPE {
44 namespace ENUMS {
46 /************************************************************************/
47 /* System Type */
48 /* System Type field in the System Identifier record of the */
49 /* IFF/ATC/NAVAIDS PDU. General type of emitting system */
50 /* Used In: */
51 /* System Identifier */
52 /************************************************************************/
54 enum SystemType
56 OtherSystemType = 0,
57 Mark_X_XII_ATCRBS_ModeS_Transponder = 1,
58 Mark_X_XII_ATCRBS_ModeS_Interrogator = 2,
59 Soviet_Transponder = 3,
60 Soviet_Interrogator = 4,
61 RRB_Transponder = 5,
62 #if DIS_VERSION > 6
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,
76 #endif
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 /************************************************************************/
95 /* System Name */
96 /* System name field in the System Identifier record of the */
97 /* IFF/ATC/NAVAIDS PDU. Pariticular named type system */
98 /* Used In: */
99 /* System Identifier */
100 /************************************************************************/
102 enum SystemName
104 OtherSystemName = 0,
105 Mark_X = 1,
106 Mark_XII = 2,
107 ATCRBS = 3,
108 Soviet = 4,
109 Mode_S = 5,
110 Mark_X_XII_ATCRBS = 6,
111 Mark_X_XII_ATCRBS_Mode_S = 7,
112 ARI_5954 = 8,
113 ARI_5983 = 9,
114 #if DIS_VERSION > 6
115 Generic_RRB = 10,
116 Generic_Mark_XIIA = 11,
117 Generic_Mode_5 = 12,
118 #endif
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 /************************************************************************/
137 /* System Mode */
138 /* System mode field in the System Identifier record of the */
139 /* IFF/ATC/NAVAIDS PDU. Mode of operation for the named system */
140 /* Used In: */
141 /* System Identifier */
142 /************************************************************************/
144 enum SystemMode
146 #if DIS_VERSION < 7
147 OtherSystemMode = 0,
148 #elif DIS_VERSION > 6
149 No_Statement = 0,
150 OffSystemMode = 1,
151 Standby = 2,
152 Normal = 3,
153 Emergency = 4,
154 Low_or_Low_Sensitivity = 5,
155 #endif
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