cat034.h
Go to the documentation of this file.
1 /*
2  * libasterix
3  * Copyright [2013-2021] SinoATC <http://www.sinoatc.com>.
4  * All Rights Reserved.
5  *
6  * NOTICE: All information contained herein is, and remains
7  * the property of SinoATC and its suppliers, if any.
8  * The intellectual and technical concepts contained herein
9  * are proprietary to Aerosys Corporation and its suppliers and may be
10  * covered by U.S. and Foreign Patents, patents in process,
11  * and are protected by trade secret or copyright law.
12  * Dissemination of this information or reproduction of this material
13  * is strictly forbidden unless prior written permission is obtained
14  * from SinoATC.
15  */
16 
24 #ifndef LIBASTERIX_CAT034_H
25 #define LIBASTERIX_CAT034_H
26 
27 #include "dataitem.h"
28 #include "datarecord.h"
29 #include "cat_generic.h"
30 #include "subfield.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 //Data Item
37 
40 
46 typedef enum _ast_modes_message_type_t
48 {
54 
57 
59 #define ast_dataitem_034_000_get_size ast_dataitem_message_type_get_size
60 
62 #define ast_dataitem_034_000_decode ast_dataitem_message_type_decode
63 
65 #define ast_dataitem_034_000_encode ast_dataitem_message_type_encode
66 
68 AST_API void ast_dataitem_034_000_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di);
69 
71 #define ast_dataitem_034_000_get_detail_html ast_dataitem_get_detail_html_dummy
72 
82 #define ast_dataitem_034_010_get_size ast_dataitem_data_source_identifier_get_size
83 #define ast_dataitem_034_010_decode ast_dataitem_data_source_identifier_decode
84 #define ast_dataitem_034_010_encode ast_dataitem_data_source_identifier_encode
85 #define ast_dataitem_034_010_get_summary ast_dataitem_data_source_identifier_get_summary
86 #define ast_dataitem_034_010_get_detail_html ast_dataitem_data_source_identifier_get_detail_html
87 
98 
100 #define ast_dataitem_034_020_get_size ast_dataitem_sector_number_get_size
101 
103 #define ast_dataitem_034_020_decode ast_dataitem_sector_number_decode
104 
106 #define ast_dataitem_034_020_encode ast_dataitem_sector_number_encode
107 
109 #define ast_dataitem_034_020_get_summary ast_dataitem_sector_number_get_summary
110 
112 #define ast_dataitem_034_020_get_detail_html ast_dataitem_sector_number_get_detail_html
113 
123 #define ast_dataitem_034_030_get_size ast_dataitem_time_of_day_get_size
124 #define ast_dataitem_034_030_decode ast_dataitem_time_of_day_decode
125 #define ast_dataitem_034_030_encode ast_dataitem_time_of_day_encode
126 #define ast_dataitem_034_030_get_summary ast_dataitem_time_of_day_get_summary
127 #define ast_dataitem_034_030_get_detail_html ast_dataitem_time_of_day_get_detail_html
128 
137 typedef struct _ast_dataitem_034_041_t
139 {
140  bool valid;
141 
142  unsigned int raw_period;
143  double period;
144 
146 
148 #define ast_dataitem_034_041_get_size ast_dataitem_get_size_fixed_2_byte
149 
152 
154 AST_API void ast_dataitem_034_041_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di);
155 
157 #define ast_dataitem_034_041_get_detail_html ast_dataitem_get_detail_html_dummy;
158 
167 typedef enum _ast_ssr_channel_selection_t
168 {
174 
176 typedef struct _ast_dataitem_034_050_t
177 {
178  bool valid;
179 
181  size_t n_subfields;
182 
183  //subfield #1
185  bool com_nogo;
192 
193  //subfield #2
194  //spare
195 
196  //subfield #3
197  //spare
198 
199  //subfield #4
201 
202  //subfield #5
208 
209  //subfield #6
211 
212  //subfield #7
213  //spare
215 
217 AST_API size_t ast_dataitem_034_050_get_size(const unsigned char *buffer, const size_t bufsize);
218 
221 
223 #define ast_dataitem_034_050_get_summary ast_dataitem_subfields_get_summary
224 
226 #define ast_dataitem_034_050_get_detail_html ast_dataitem_subfields_get_detail_html
227 
229 AST_API size_t ast_subfield_034_050_get_size(const unsigned char* buffer, const size_t bufsize, const ast_subfield_type_t type);
230 
233 
236 
238 AST_API void ast_subfield_034_050_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di, const ast_subfield_type_t type);
239 
241 AST_API void ast_subfield_034_050_get_detail_html(char* detail, const size_t detail_size, const ast_dataitem_t di, const ast_subfield_type_t type);
242 
251 typedef enum _ast_psr_polarization_t
252 {
256 
257 typedef enum _ast_reduction_step_t
258 {
268 
270 typedef struct _ast_dataitem_034_060_t
271 {
272  bool valid;
273 
275  size_t n_subfields;
276 
277  //subfield #1
281 
282  //subfield #2
283  //spare
284 
285  //subfield #3
286  //spare
287 
288  //subfield #4
293 
294  //subfield #5
297 
298  //subfield #6
302 
303  //subfield #7
304  //spare
306 
308 AST_API size_t ast_dataitem_034_060_get_size(const unsigned char *buffer, const size_t bufsize);
309 
312 
314 #define ast_dataitem_034_060_get_summary ast_dataitem_subfields_get_summary
315 
317 #define ast_dataitem_034_060_get_detail_html ast_dataitem_subfields_get_detail_html
318 
320 AST_API size_t ast_subfield_034_060_get_size(const unsigned char* buffer, const size_t bufsize, const ast_subfield_type_t type);
321 
324 
327 
329 AST_API void ast_subfield_034_060_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di, const ast_subfield_type_t type);
330 
332 AST_API void ast_subfield_034_060_get_detail_html(char* detail, const size_t detail_size, const ast_dataitem_t di, const ast_subfield_type_t type);
333 
342 typedef enum _ast_counter_type_t
343 {
362 
363 typedef struct _ast_counter_t
364 {
366  unsigned int value;
367 } ast_counter_t;
368 
369 #define AST_MAX_COUNTERS 16
370 
372 typedef struct _ast_dataitem_034_070_t
373 {
374  bool valid;
375 
376  unsigned int n_counters;
379 
381 #define ast_dataitem_034_070_get_size ast_dataitem_get_size_rep_2_byte
382 
385 
387 AST_API void ast_dataitem_034_070_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di);
388 
390 AST_API void ast_dataitem_034_070_get_detail_html(char* detail, const size_t detail_size, const ast_dataitem_t di);
391 
400 #define ast_dataitem_034_090_get_size ast_dataitem_get_size_fixed_2_byte
401 
410 #define ast_dataitem_034_110_get_size ast_dataitem_get_size_fixed_1_byte
411 
420 #define ast_dataitem_034_120_get_size ast_dataitem_get_size_fixed_8_byte
421 
431 #define ast_dataitem_034_SPF_get_size ast_dataitem_special_purpose_field_get_size
433 
435 //ast_dataitem_048_998_t ast_dataitem_048_998_decode(const ast_dataitem_t di);
436 
438 #define ast_dataitem_034_SPF_get_summary ast_dataitem_special_purpose_field_get_summary
439 
441 #define ast_dataitem_034_SPF_get_detail_html ast_dataitem_get_detail_html_dummy
442 
445 //Data Record
446 
452 typedef struct _ast_datarecord_034_t
454 {
455  bool valid;
456 
466 
469 
471 AST_API ast_datarecord_t ast_datarecord_034_assemble(unsigned char* const buffer, const size_t bufsize, const ast_datarecord_034_t dr, const ast_uap_t uap);
472 
473 
476 #ifdef __cplusplus
477  }
478 #endif // extern "C"
479 
480 #endif //LIBASTERIX_CAT034_H
481 
482 // vim:set ft=c.doxygen sw=2 sts=2 fenc=utf8:
ast_dataitem_034_050_t ast_dataitem_034_050_decode(const ast_dataitem_t di)
Decode function of dataitem.
Definition: cat034.h:51
ast_ssr_channel_selection_t
Definition: cat034.h:167
Data Item - Message Type.
Definition: cat_generic.h:51
Definition: cat034.h:348
unsigned int n_counters
Number of counters.
Definition: cat034.h:376
Definition: cat034.h:346
void ast_subfield_034_060_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di, const ast_subfield_type_t type)
Get summary of subfield.
Definition: cat034.h:359
void ast_subfield_034_050_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di, const ast_subfield_type_t type)
Get summary of subfield.
Definition: cat034.h:169
ast_subfield_type_t
Definition of subfield id in each dataitem.
Definition: subfield.h:52
bool com_time_source
Definition: cat034.h:191
bool psr_existing
Definition: cat034.h:200
Implementation of Datarecord concept defined by ASTERIX.
bool valid
Definition: cat034.h:178
Definition: uap.h:36
ast_dataitem_034_070_t dataitem_034_070
Definition: cat034.h:464
Definition: cat034.h:254
bool mds_existing
Definition: cat034.h:210
Definition: cat034.h:260
ast_reduction_step_t ssr_reduction
Definition: cat034.h:296
bool ssr_monitoring
Definition: cat034.h:207
ast_counter_type_t type
Definition: cat034.h:365
#define AST_API
Definition: platform.h:63
Data Item - Data Source Identifier.
Definition: cat_generic.h:93
void ast_dataitem_034_070_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di)
Get summary funciton.
bool com_existing
Definition: cat034.h:278
ast_dataitem_data_source_identifier_t ast_dataitem_034_010_t
Definition: cat034.h:81
bool com_rdp_overload
Definition: cat034.h:188
void ast_subfield_034_060_get_detail_html(char *detail, const size_t detail_size, const ast_dataitem_t di, const ast_subfield_type_t type)
Get detail HTML snippet of subfield.
Definition: cat034.h:358
void ast_subfield_034_050_get_detail_html(char *detail, const size_t detail_size, const ast_dataitem_t di, const ast_subfield_type_t type)
Get detail HTML snippet of subfield.
Data Item - Time of Day.
Definition: cat_generic.h:219
ast_dataitem_time_of_day_t ast_dataitem_034_030_t
Definition: cat034.h:122
Data Item I034/070 - Message Count Values.
Definition: cat034.h:372
size_t ast_subfield_034_050_get_size(const unsigned char *buffer, const size_t bufsize, const ast_subfield_type_t type)
Get size of subfield.
int com_rdp_chain
Definition: cat034.h:186
Data Item - Antenna Rotation Speed.
Definition: cat034.h:138
Definition: cat034.h:363
bool com_existing
Definition: cat034.h:184
void ast_dataitem_034_000_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di)
Get summary function.
ast_dataitem_034_050_t dataitem_034_050
Definition: cat034.h:462
unsigned int value
Definition: cat034.h:366
const char * ast_subfield_034_060_get_id(const ast_subfield_type_t type)
Get id string of subfield.
ast_dataitem_034_000_t dataitem_034_000
Definition: cat034.h:457
size_t n_subfields
Definition: cat034.h:181
Definition: cat034.h:354
ast_reduction_step_t com_xmp_reduction
Definition: cat034.h:280
This file includes the common used data items shares by different categories.
const char * ast_dataitem_034_get_name(const ast_dataitem_type_t type)
Get name function.
ast_dataitem_034_020_t dataitem_034_020
Definition: cat034.h:459
bool ssr_overload
Definition: cat034.h:206
ast_datarecord_034_t ast_datarecord_034_disassemble(const ast_datarecord_t dr)
Disassemble function.
Definition: cat034.h:353
const char * ast_subfield_034_050_get_name(const ast_subfield_type_t type)
Get name of subfield.
bool valid
Definition: cat034.h:374
bool mds_auto_cluster_state
Definition: cat034.h:301
unsigned int raw_period
Definition: cat034.h:142
Subfield struct.
Definition: subfield.h:292
ast_psr_polarization_t psr_polarization
Definition: cat034.h:290
Data Item I034/050 - Station Configuration & Status.
Definition: cat034.h:176
Definition: cat034.h:356
Definition: cat034.h:50
Definition: cat034.h:355
ast_dataitem_034_070_t ast_dataitem_034_070_decode(const ast_dataitem_t di)
Decode function.
#define AST_MAX_COUNTERS
Definition: cat034.h:369
Definition: cat034.h:352
double period
Raw format as defined in doc, resolution 1/128s.
Definition: cat034.h:143
Definition: cat034.h:171
Data Item - Sector Number.
Definition: cat_generic.h:171
ast_dataitem_sector_number_t ast_dataitem_034_020_t
Data Item I034/020 - Sector Number.
Definition: cat034.h:97
ast_dataitem_message_type_t ast_dataitem_034_000_t
Data Item I034/000 - Message Type.
Definition: cat034.h:56
Implementation of Dataitem concept defined by ASTERIX.
Definition: cat034.h:261
Definition: cat034.h:360
Data Record I034 - Transmission of Monoradar Service Messages.
Definition: cat034.h:453
ast_modes_message_type_t
Mode-S message type.
Definition: cat034.h:47
ast_datarecord_t ast_datarecord_034_assemble(unsigned char *const buffer, const size_t bufsize, const ast_datarecord_034_t dr, const ast_uap_t uap)
Assemble function.
bool com_rdp_chain_restart
Definition: cat034.h:187
ast_dataitem_034_030_t dataitem_034_030
Definition: cat034.h:460
Definition: cat034.h:49
void ast_dataitem_034_070_get_detail_html(char *detail, const size_t detail_size, const ast_dataitem_t di)
Get detail function.
Definition: cat034.h:357
int ssr_antenna
Definition: cat034.h:204
Definition: cat034.h:350
Definition: cat034.h:259
Dataitem.
Definition: dataitem.h:422
Definition: cat034.h:266
bool com_monitoring
Definition: cat034.h:190
bool valid
Definition: cat034.h:455
const char * ast_subfield_034_050_get_id(const ast_subfield_type_t type)
Get id string of subfield.
ast_dataitem_034_060_t dataitem_034_060
Definition: cat034.h:463
bool mds_existing
Definition: cat034.h:299
ast_reduction_step_t
Definition: cat034.h:257
Definition: cat034.h:349
int psr_sensitive_time_control_map
Definition: cat034.h:292
Definition: cat034.h:262
ast_dataitem_type_t
Definition of data item id in each category.
Definition: dataitem.h:67
Definition: cat034.h:347
size_t ast_dataitem_034_060_get_size(const unsigned char *buffer, const size_t bufsize)
Get size of dataitem.
ast_reduction_step_t mds_reduction
Definition: cat034.h:300
size_t n_subfields
Definition: cat034.h:275
ast_dataitem_034_060_t ast_dataitem_034_060_decode(const ast_dataitem_t di)
Decode function of dataitem.
Definition: cat034.h:345
#define AST_MAX_SUBFIELDS
Definition: subfield.h:362
bool valid
Definition: cat034.h:272
Definition: cat034.h:170
ast_reduction_step_t com_rdp_reduction
Definition: cat034.h:279
bool ssr_existing
Definition: cat034.h:295
Definition: cat034.h:344
bool com_xmt_overload
Definition: cat034.h:189
size_t ast_dataitem_034_050_get_size(const unsigned char *buffer, const size_t bufsize)
Get size of dataitem.
Definition: cat034.h:351
ast_counter_type_t
Definition: cat034.h:342
ast_dataitem_034_010_t dataitem_034_010
Definition: cat034.h:458
Definition: cat034.h:172
Datarecord.
Definition: datarecord.h:40
void ast_dataitem_034_041_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di)
Get summary funciton.
Data Item I034/060 - System Processing Mode.
Definition: cat034.h:270
Definition: cat034.h:265
bool psr_existing
Definition: cat034.h:289
bool com_nogo
Definition: cat034.h:185
ast_psr_polarization_t
Definition: cat034.h:251
const char * ast_subfield_034_060_get_name(const ast_subfield_type_t type)
Get name of subfield.
size_t ast_subfield_034_060_get_size(const unsigned char *buffer, const size_t bufsize, const ast_subfield_type_t type)
Get size of subfield.
ast_ssr_channel_selection_t ssr_channel_selection
Definition: cat034.h:205
Definition: cat034.h:253
Definition: cat034.h:264
Definition: cat034.h:52
ast_reduction_step_t psr_reduction
Definition: cat034.h:291
bool ssr_existing
Definition: cat034.h:203
Definition: cat034.h:263
ast_dataitem_034_041_t ast_dataitem_034_041_decode(const ast_dataitem_t di)
Decode function.
bool valid
Definition: cat034.h:140
Implementation of Subfield concept defined by ASTERIX.
ast_dataitem_034_041_t dataitem_034_041
Definition: cat034.h:461