KDIS  2-8-x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
FundamentalOperationalData_MarkXInterrogator.h
Go to the documentation of this file.
1 /*********************************************************************
2 Copyright 2013 Karl Jones
3 All rights reserved.
4 
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions are met:
7 
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.
13 
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.
24 
25 For Further Information Please Contact me at
26 Karljj1@yahoo.com
27 http://p.sf.net/kdis/UserGuide
28 *********************************************************************/
29 
30 /********************************************************************
31  class: FundamentalOperationalData_MarkXInterrogator
32  created: 2008/12/07
33  author: Karl Jones
34 
35  purpose: Specifies Fundamental Operational Data for system 2 =
36  Mark_X_XII_ATCRBS_ModeS_Interrogator system.
37 
38  size: 128 bits / 16 octets
39 *********************************************************************/
40 
41 #pragma once
42 
43 #include "./../KDefines.h"
44 #include "./Enums/KDISEnums.h"
45 
46 namespace KDIS {
47 namespace DATA_TYPE {
48 
50 {
51 protected:
52 
53  union
54  {
55  struct
56  {
57  KUINT8 m_ui8SystemOnOff : 1;
58  KUINT8 m_ui8Param1 : 1;
59  KUINT8 m_ui8Param2 : 1;
60  KUINT8 m_ui8Param3 : 1;
61  KUINT8 m_ui8Param4 : 1;
62  KUINT8 m_ui8Param5 : 1;
63  KUINT8 m_ui8Param6 : 1;
64  KUINT8 m_ui8OpsStatus : 1;
65  };
66 
68  };
69 
71 
72  union
73  {
74  struct
75  {
76  KUINT8 m_ui8NotUsed1 : 1;
77  KUINT8 m_ui8Layer1 : 1;
78  KUINT8 m_ui8Layer2 : 1;
79  KUINT8 m_ui8NotUsed2 : 5;
80  };
81 
83  };
84 
86 
87  union
88  {
89  struct
90  {
91  KUINT16 m_ui16Mode1NotUsed1 : 13;
92  KUINT16 m_ui16Mode1Status : 1;
93  KUINT16 m_ui16Mode1Dmg : 1;
94  KUINT16 m_ui16Mode1Malfunction : 1;
95  };
96 
97  KUINT16 m_ui16Param1; // Mode 1 Interrogator Status
98  };
99 
100  union
101  {
102  struct
103  {
104  KUINT16 m_ui16Mode2NotUsed1 : 13;
105  KUINT16 m_ui16Mode2Status : 1;
106  KUINT16 m_ui16Mode2Dmg : 1;
107  KUINT16 m_ui16Mode2Malfunction : 1;
108  };
109 
110  KUINT16 m_ui16Param2; // Mode 2 Interrogator Status
111  };
112 
113  union
114  {
115  struct
116  {
117  KUINT16 m_ui16Mode3NotUsed1 : 13;
118  KUINT16 m_ui16Mode3Status : 1;
119  KUINT16 m_ui16Mode3Dmg : 1;
120  KUINT16 m_ui16Mode3Malfunction : 1;
121  };
122 
123  KUINT16 m_ui16Param3; // Mode 3 Interrogator Status
124  };
125 
126  union
127  {
128  struct
129  {
130  KUINT16 m_ui16Mode4CodeElement1 : 12;
131  KUINT16 m_ui16Mode4NotUsed1 : 1;
132  KUINT16 m_ui16Mode4Status : 1;
133  KUINT16 m_ui16Mode4Dmg : 1;
134  KUINT16 m_ui16Mode4Malfunction : 1;
135  };
136 
137  KUINT16 m_ui16Param4; // Mode 4 Interrogator Status
138  };
139 
140  union
141  {
142  struct
143  {
144  KUINT16 m_ui16ModeCNotUsed1 : 13;
145  KUINT16 m_ui16ModeCStatus : 1;
146  KUINT16 m_ui16ModeCDmg : 1;
147  KUINT16 m_ui16ModeCMalfunction : 1;
148  };
149 
150  KUINT16 m_ui16Param5; // Mode C Interrogator Status
151  };
152 
153  union
154  {
155  struct
156  {
157  KUINT16 m_ui16ModeSToBeDefined : 12;
158  KUINT16 m_ui16ModeSTCAS : 1;
159  KUINT16 m_ui16ModeSStatus : 1;
160  KUINT16 m_ui16ModeSDmg : 1;
161  KUINT16 m_ui16ModeSMalfunction : 1;
162  };
163 
164  KUINT16 m_ui16Param6; // Mode S Code/Status
165  };
166 
167 public:
168 
169  //************************************
170  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::SetSystemStatus
171  // KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::GetSystemStatus
172  //!Description: Specifies whether the entire system is operational
173  //! and which modes it is capable of.
174  // Parameter: KBOOL, void
175  //************************************
176  void SetSystemStatus( KBOOL IsSystemOn, KBOOL IsParam1Capable, KBOOL IsParam2Capable,
177  KBOOL IsParam3Capable, KBOOL IsParam4Capable, KBOOL IsParam5Capable,
178  KBOOL IsParam6Capable, KBOOL IsOperational );
179  void SetSystemStatusSystemOn( KBOOL IsSystemOn );
180  void SetSystemStatusParam1Capable( KBOOL IsParamCapable );
181  void SetSystemStatusParam2Capable( KBOOL IsParamCapable );
182  void SetSystemStatusParam3Capable( KBOOL IsParamCapable );
183  void SetSystemStatusParam4Capable( KBOOL IsParamCapable );
184  void SetSystemStatusParam5Capable( KBOOL IsParamCapable );
185  void SetSystemStatusParam6Capable( KBOOL IsParamCapable );
186  void SetSystemStatusIsOperational( KBOOL IsOperational );
187  KBOOL GetSystemStatusSystemOn() const;
188  KBOOL GetSystemStatusParam1Capable() const;
189  KBOOL GetSystemStatusParam2Capable() const;
190  KBOOL GetSystemStatusParam3Capable() const;
191  KBOOL GetSystemStatusParam4Capable() const;
192  KBOOL GetSystemStatusParam5Capable() const;
193  KBOOL GetSystemStatusParam6Capable() const;
194  KBOOL GetSystemStatusIsOperational() const;
195 
196  //************************************
197  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::SetAlternateParameter4
198  // KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::GetAlternateParameter4
199  //!Description: Used for an alternative representation of parameter 4
200  // Parameter: AlternateParameter4 AP4, void
201  //************************************
202  void SetAlternateParameter4( KDIS::DATA_TYPE::ENUMS::AlternateParameter4 AP4 );
203  KDIS::DATA_TYPE::ENUMS::AlternateParameter4 GetAlternateParameter4() const;
204 
205  //************************************
206  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::SetInfomationLayer
207  // KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::IsInfomationLayerPresent
208  //!Description: Used for an alternative representation of parameter 4
209  // Parameter: KBOOL, void
210  //************************************
211  void SetInfomationLayersPresence( KBOOL IsLayer1Present, KBOOL IsLayer2Present );
212  void SetInfomationLayer1( KBOOL IsPresent );
213  void SetInfomationLayer2( KBOOL IsPresent );
214  KBOOL IsInfomationLayer1Present() const;
215  KBOOL IsInfomationLayer2Present() const;
216 
217  //************************************
218  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::SetMode1
219  // KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::GetMode1
220  //!Description: Parameter 1 data - Mode 1 Interrogator Status
221  // Parameter: KBOOL, void
222  //************************************
223  void SetMode1InterrogatorStatus( KBOOL IsStatusOn, KBOOL IsDamaged, KBOOL IsMalfunctioning );
224  void SetMode1Status( KBOOL IsOn );
225  void SetMode1Damage( KBOOL IsDamaged );
226  void SetMode1Malfunction( KBOOL IsMalfunctioning );
227  KBOOL IsMode1StatusOn() const;
228  KBOOL IsMode1Damaged() const;
229  KBOOL IsMode1Malfunctioning() const;
230 
231  //************************************
232  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::SetMode2
233  // KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::GetMode2
234  //!Description: Parameter 2 data - Mode 2 Interrogator Status
235  // Parameter: KBOOL, void
236  //************************************
237  void SetMode2CodeStatus( KBOOL IsStatusOn, KBOOL IsDamaged, KBOOL IsMalfunctioning );
238  void SetMode2Status( KBOOL IsOn );
239  void SetMode2Damage( KBOOL IsDamaged );
240  void SetMode2Malfunction( KBOOL IsMalfunctioning );
241  KBOOL IsMode2StatusOn() const;
242  KBOOL IsMode2Damaged() const;
243  KBOOL IsMode2Malfunctioning() const;
244 
245  //************************************
246  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::SetMode3
247  // KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::GetMode3
248  //!Description: Parameter 3 data - Mode 3 Code/Status
249  // Parameter: KBOOL, void
250  //************************************
251  void SetMode3CodeStatus( KBOOL IsStatusOn, KBOOL IsDamaged, KBOOL IsMalfunctioning );
252  void SetMode3Status( KBOOL IsOn );
253  void SetMode3Damage( KBOOL IsDamaged );
254  void SetMode3Malfunction( KBOOL IsMalfunctioning );
255  KBOOL IsMode3StatusOn() const;
256  KBOOL IsMode3Damaged() const;
257  KBOOL IsMode3Malfunctioning() const;
258 
259  //************************************
260  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::SetMode4
261  // KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::GetMode4
262  //!Description: Parameter 4 data - Mode 4 Interrogator Status
263  //! Note: CodeElement1 value ranges = 0-4094 = "Pseudo-Crypto" value
264  //! 4095 = No Pseudo-Crypto value. Use Alternate Mode 4 value.
265  // Parameter: KBOOL, KUINT16, void
266  //************************************
267  void SetMode4CodeStatus( KUINT16 CodeElement1, KBOOL IsStatusOn, KBOOL IsDamaged,
268  KBOOL IsMalfunctioning );
269  void SetMode4CodeElement1( KUINT16 CE );
270  void SetMode4Status( KBOOL IsOn );
271  void SetMode4Damage( KBOOL IsDamaged );
272  void SetMode4Malfunction( KBOOL IsMalfunctioning );
273  KUINT16 GetMode4CodeElement1() const;
274  KBOOL IsMode4StatusOn() const;
275  KBOOL IsMode4Damaged() const;
276  KBOOL IsMode4Malfunctioning() const;
277 
278  //************************************
279  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::SetModeC
280  // KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::GetModeC
281  //!Description: Parameter 5 data - Mode C Interrogator Status
282  // Parameter: KBOOL, void
283  //************************************
284  void SetModeCCodeStatus( KBOOL IsStatusOn, KBOOL IsDamaged, KBOOL IsMalfunctioning );
285  void SetModeCStatus( KBOOL IsOn );
286  void SetModeCDamage( KBOOL IsDamaged );
287  void SetModeCMalfunction( KBOOL IsMalfunctioning );
288  KBOOL IsModeCStatusOn() const;
289  KBOOL IsModeCDamaged() const;
290  KBOOL IsModeCMalfunctioning() const;
291 
292  //************************************
293  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::SetModeS
294  // KDIS::DATA_TYPE::FundamentalOperationalData_MarkXInterrogator::GetModeS
295  //!Description: Parameter 6 data - Mode S Interrogator Status
296  // Parameter: KBOOL, void
297  //************************************
298  void SetModeSCodeStatus( KDIS::DATA_TYPE::ENUMS::TCAS TCASVersion, KBOOL IsStatusOn, KBOOL IsDamaged,
299  KBOOL IsMalfunctioning );
300  void SetTCASVersion( KDIS::DATA_TYPE::ENUMS::TCAS TCASVersion );
301  void SetModeSStatus( KBOOL IsOn );
302  void SetModeSDamage( KBOOL IsDamaged );
303  void SetModeSMalfunction( KBOOL IsMalfunctioning );
304  KDIS::DATA_TYPE::ENUMS::TCAS GetTCASVersion() const;
305  KBOOL IsModeSStatusOn() const;
306  KBOOL IsModeSDamaged() const;
307  KBOOL IsModeSMalfunctioning() const;
308 
309  KBOOL operator == ( const FundamentalOperationalData_MarkXInterrogator & Value ) const;
310  KBOOL operator != ( const FundamentalOperationalData_MarkXInterrogator & Value ) const;
311 };
312 
313 } // END namespace DATA_TYPES
314 } // END namespace KDIS
315 
Definition: FundamentalOperationalData_MarkXInterrogator.h:49
KUINT8 m_ui8AltParam4
Definition: FundamentalOperationalData_MarkXInterrogator.h:70
TCAS
Definition: EnumIFF.h:74
KUINT16 m_ui16Param3
Definition: FundamentalOperationalData_MarkXInterrogator.h:123
AlternateParameter4
Definition: EnumIFF.h:53
unsigned short int KUINT16
Definition: KDefines.h:101
KUINT8 m_ui8Modifier
Definition: FundamentalOperationalData_MarkXInterrogator.h:85
KUINT16 m_ui16Param5
Definition: FundamentalOperationalData_MarkXInterrogator.h:150
bool KBOOL
Definition: KDefines.h:119
KUINT8 m_ui8InfoLayers
Definition: FundamentalOperationalData_MarkXInterrogator.h:82
KUINT16 m_ui16Param6
Definition: FundamentalOperationalData_MarkXInterrogator.h:164
KUINT8 m_ui8SystemStatus
Definition: FundamentalOperationalData_MarkXInterrogator.h:67
KUINT16 m_ui16Param4
Definition: FundamentalOperationalData_MarkXInterrogator.h:137
unsigned char KUINT8
Definition: KDefines.h:99
KUINT16 m_ui16Param2
Definition: FundamentalOperationalData_MarkXInterrogator.h:110
#define KDIS_EXPORT
Definition: KDefines.h:82
KUINT16 m_ui16Param1
Definition: FundamentalOperationalData_MarkXInterrogator.h:97