KDIS  2-8-x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
FundamentalOperationalData_Soviet.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_Soviet
32  created: 2008/12/07
33  author: Karl Jones
34 
35  purpose: Specifies Fundamental Operational Data for system 3 & 4 =
36  Soviet Transponder
37  Soviet Interrogator
38 
39  size: 128 bits / 16 octets
40 *********************************************************************/
41 
42 #pragma once
43 
44 #include "./../KDefines.h"
45 #include "./Enums/KDISEnums.h"
46 
47 namespace KDIS {
48 namespace DATA_TYPE {
49 
51 {
52 protected:
53 
54  union
55  {
56  struct
57  {
58  KUINT8 m_ui8SystemOnOff : 1;
59  KUINT8 m_ui8Param1 : 1;
60  KUINT8 m_ui8Param2 : 1;
61  KUINT8 m_ui8Param3 : 1;
62  KUINT8 m_ui8Param4 : 1;
63  KUINT8 m_ui8Param5 : 1;
64  KUINT8 m_ui8Param6 : 1;
65  KUINT8 m_ui8OpsStatus : 1;
66  };
67 
69  };
70 
71  KUINT8 m_ui8AltParam4; // Not used
72 
73  union
74  {
75  struct
76  {
77  KUINT8 m_ui8NotUsed1 : 1;
78  KUINT8 m_ui8Layer1 : 1;
79  KUINT8 m_ui8Layer2 : 1;
80  KUINT8 m_ui8NotUsed2 : 5;
81  };
82 
84  };
85 
86  KUINT8 m_ui8Modifier; // Not used
87 
88  union
89  {
90  struct
91  {
92  KUINT16 m_ui16Param1NotUsed1 : 13;
93  KUINT16 m_ui16Param1Status : 1;
94  KUINT16 m_ui16Param1Dmg : 1;
95  KUINT16 m_ui16Param1Malfunction : 1;
96  };
97 
98  KUINT16 m_ui16Param1; // Parameter 1
99  };
100 
101  union
102  {
103  struct
104  {
105  KUINT16 m_ui16Param2NotUsed1 : 13;
106  KUINT16 m_ui16Param2Status : 1;
107  KUINT16 m_ui16Param2Dmg : 1;
108  KUINT16 m_ui16Param2Malfunction : 1;
109  };
110 
111  KUINT16 m_ui16Param2; // Parameter 2
112  };
113 
114  union
115  {
116  struct
117  {
118  KUINT16 m_ui16Param3NotUsed1 : 13;
119  KUINT16 m_ui16Param3Status : 1;
120  KUINT16 m_ui16Param3Dmg : 1;
121  KUINT16 m_ui16Param3Malfunction : 1;
122  };
123 
124  KUINT16 m_ui16Param3; // Parameter 3
125  };
126 
127  union
128  {
129  struct
130  {
131  KUINT16 m_ui16Param4NotUsed1 : 13;
132  KUINT16 m_ui16Param4Status : 1;
133  KUINT16 m_ui16Param4Dmg : 1;
134  KUINT16 m_ui16Param4Malfunction : 1;
135  };
136 
137  KUINT16 m_ui16Param4; // Parameter 4
138  };
139 
140  union
141  {
142  struct
143  {
144  KUINT16 m_ui16Param5NotUsed1 : 13;
145  KUINT16 m_ui16Param5Status : 1;
146  KUINT16 m_ui16Param5Dmg : 1;
147  KUINT16 m_ui16Param5Malfunction : 1;
148  };
149 
150  KUINT16 m_ui16Param5; // Parameter 5
151  };
152 
153  union
154  {
155  struct
156  {
157  KUINT16 m_ui16Param6NotUsed1 : 13;
158  KUINT16 m_ui16Param6Status : 1;
159  KUINT16 m_ui16Param6Dmg : 1;
160  KUINT16 m_ui16Param6Malfunction : 1;
161  };
162 
163  KUINT16 m_ui16Param6; // Parameter 6
164  };
165 
166 public:
167 
168  //************************************
169  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::SetSystemStatus
170  // KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::GetSystemStatus
171  //!Description: Specifies whether the entire system is operational
172  //! and which modes it is capable of.
173  // Parameter: KBOOL, void
174  //************************************
175  void SetSystemStatus( KBOOL IsSystemOn, KBOOL IsParam1Capable, KBOOL IsParam2Capable,
176  KBOOL IsParam3Capable, KBOOL IsParam4Capable, KBOOL IsParam5Capable,
177  KBOOL IsParam6Capable, KBOOL IsOperational );
178  void SetSystemStatusSystemOn( KBOOL IsSystemOn );
179  void SetSystemStatusParam1Capable( KBOOL IsParamCapable );
180  void SetSystemStatusParam2Capable( KBOOL IsParamCapable );
181  void SetSystemStatusParam3Capable( KBOOL IsParamCapable );
182  void SetSystemStatusParam4Capable( KBOOL IsParamCapable );
183  void SetSystemStatusParam5Capable( KBOOL IsParamCapable );
184  void SetSystemStatusParam6Capable( KBOOL IsParamCapable );
185  void SetSystemStatusIsOperational( KBOOL IsOperational );
186  KBOOL GetSystemStatusSystemOn() const;
187  KBOOL GetSystemStatusParam1Capable() const;
188  KBOOL GetSystemStatusParam2Capable() const;
189  KBOOL GetSystemStatusParam3Capable() const;
190  KBOOL GetSystemStatusParam4Capable() const;
191  KBOOL GetSystemStatusParam5Capable() const;
192  KBOOL GetSystemStatusParam6Capable() const;
193  KBOOL GetSystemStatusIsOperational() const;
194 
195  //************************************
196  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::SetInfomationLayer
197  // KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::IsInfomationLayerPresent
198  //!Description: Used for an alternative representation of parameter 4
199  // Parameter: KBOOL, void
200  //************************************
201  void SetInfomationLayersPresence( KBOOL IsLayer1Present, KBOOL IsLayer2Present );
202  void SetInfomationLayer1( KBOOL IsPresent );
203  void SetInfomationLayer2( KBOOL IsPresent );
204  KBOOL IsInfomationLayer1Present() const;
205  KBOOL IsInfomationLayer2Present() const;
206 
207  //************************************
208  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::SetParameter1
209  // KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::GetParameter1
210  //!Description: Parameter 1 data - Mode 1 Interrogator Status
211  // Parameter: KBOOL, void
212  //************************************
213  void SetParameter1( KBOOL IsStatusOn, KBOOL IsDamaged, KBOOL IsMalfunctioning );
214  void SetParameter1Status( KBOOL IsOn );
215  void SetParameter1Damage( KBOOL IsDamaged );
216  void SetParameter1Malfunction( KBOOL IsMalfunctioning );
217  KBOOL IsParameter1StatusOn() const;
218  KBOOL IsParameter1Damaged() const;
219  KBOOL IsParameter1Malfunctioning() const;
220 
221  //************************************
222  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::SetParameter2
223  // KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::GetParameter2
224  //!Description: Parameter 2 data - Mode 2 Interrogator Status
225  // Parameter: KBOOL, void
226  //************************************
227  void SetParameter2( KBOOL IsStatusOn, KBOOL IsDamaged, KBOOL IsMalfunctioning );
228  void SetParameter2Status( KBOOL IsOn );
229  void SetParameter2Damage( KBOOL IsDamaged );
230  void SetParameter2Malfunction( KBOOL IsMalfunctioning );
231  KBOOL IsParameter2StatusOn() const;
232  KBOOL IsParameter2Damaged() const;
233  KBOOL IsParameter2Malfunctioning() const;
234 
235  //************************************
236  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::SetParameter3
237  // KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::GetParameter3
238  //!Description: Parameter 3 data - Mode 3 Code/Status
239  // Parameter: KBOOL, void
240  //************************************
241  void SetParameter3( KBOOL IsStatusOn, KBOOL IsDamaged, KBOOL IsMalfunctioning );
242  void SetParameter3Status( KBOOL IsOn );
243  void SetParameter3Damage( KBOOL IsDamaged );
244  void SetParameter3Malfunction( KBOOL IsMalfunctioning );
245  KBOOL IsParameter3StatusOn() const;
246  KBOOL IsParameter3Damaged() const;
247  KBOOL IsParameter3Malfunctioning() const;
248 
249  //************************************
250  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::SetParameter4
251  // KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::GetParameter4
252  //!Description: Parameter 4 data
253  // Parameter: KBOOL, KUINT16, void
254  //************************************
255  void SetParameter4( KBOOL IsStatusOn, KBOOL IsDamaged, KBOOL IsMalfunctioning );
256  void SetParameter4Status( KBOOL IsOn );
257  void SetParameter4Damage( KBOOL IsDamaged );
258  void SetParameter4Malfunction( KBOOL IsMalfunctioning );
259  KBOOL IsParameter4StatusOn() const;
260  KBOOL IsParameter4Damaged() const;
261  KBOOL IsParameter4Malfunctioning() const;
262 
263  //************************************
264  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::SetParameter5
265  // KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::GetParameter5
266  //!Description: Parameter 5 data
267  // Parameter: KBOOL, void
268  //************************************
269  void SetParameter5( KBOOL IsStatusOn, KBOOL IsDamaged, KBOOL IsMalfunctioning );
270  void SetParameter5Status( KBOOL IsOn );
271  void SetParameter5Damage( KBOOL IsDamaged );
272  void SetParameter5Malfunction( KBOOL IsMalfunctioning );
273  KBOOL IsParameter5StatusOn() const;
274  KBOOL IsParameter5Damaged() const;
275  KBOOL IsParameter5Malfunctioning() const;
276 
277  //************************************
278  // FullName: KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::SetParameter6
279  // KDIS::DATA_TYPE::FundamentalOperationalData_Soviet::GetParameter6
280  //!Description: Parameter 6 data
281  // Parameter: KBOOL, void
282  //************************************
283  void SetParameter6( KBOOL IsStatusOn, KBOOL IsDamaged, KBOOL IsMalfunctioning );
284  void SetParameter6Status( KBOOL IsOn );
285  void SetParameter6Damage( KBOOL IsDamaged );
286  void SetParameter6Malfunction( KBOOL IsMalfunctioning );
287  KBOOL IsParameter6StatusOn() const;
288  KBOOL IsParameter6Damaged() const;
289  KBOOL IsParameter6Malfunctioning() const;
290 
291  KBOOL operator == ( const FundamentalOperationalData_Soviet & Value ) const;
292  KBOOL operator != ( const FundamentalOperationalData_Soviet & Value ) const;
293 };
294 
295 } // END namespace DATA_TYPES
296 } // END namespace KDIS
297 
KUINT8 m_ui8InfoLayers
Definition: FundamentalOperationalData_Soviet.h:83
unsigned short int KUINT16
Definition: KDefines.h:101
KUINT8 m_ui8SystemStatus
Definition: FundamentalOperationalData_Soviet.h:68
KUINT16 m_ui16Param5
Definition: FundamentalOperationalData_Soviet.h:150
KUINT8 m_ui8Modifier
Definition: FundamentalOperationalData_Soviet.h:86
KUINT16 m_ui16Param2
Definition: FundamentalOperationalData_Soviet.h:111
KUINT16 m_ui16Param6
Definition: FundamentalOperationalData_Soviet.h:163
bool KBOOL
Definition: KDefines.h:119
Definition: FundamentalOperationalData_Soviet.h:50
KUINT16 m_ui16Param1
Definition: FundamentalOperationalData_Soviet.h:98
unsigned char KUINT8
Definition: KDefines.h:99
KUINT16 m_ui16Param4
Definition: FundamentalOperationalData_Soviet.h:137
#define KDIS_EXPORT
Definition: KDefines.h:82
KUINT8 m_ui8AltParam4
Definition: FundamentalOperationalData_Soviet.h:71
KUINT16 m_ui16Param3
Definition: FundamentalOperationalData_Soviet.h:124