cat020.h
Go to the documentation of this file.
1 /*
2  * libasterix
3  * Copyright [2020] SinoATC (http://www.sinoatc.com/).
4  * Copyright [2013-2020] Aerosys Corporation (http://www.aerosys.cn/).
5  * All Rights Reserved.
6  *
7  * NOTICE: All information contained herein is, and remains
8  * the property of SinoATC and its suppliers, if any.
9  * The intellectual and technical concepts contained herein
10  * are proprietary to Aerosys Corporation and its suppliers and may be
11  * covered by U.S. and Foreign Patents, patents in process,
12  * and are protected by trade secret or copyright law.
13  * Dissemination of this information or reproduction of this material
14  * is strictly forbidden unless prior written permission is obtained
15  * from SinoATC.
16  */
17 
30 #ifndef LIBASTERIX_CAT020_H
31 #define LIBASTERIX_CAT020_H
32 
33 #include "datarecord.h"
34 #include "dataitem.h"
35 #include "cat_generic.h"
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 // Data Item
42 
45 
52 #define ast_dataitem_020_010_get_size ast_dataitem_data_source_identifier_get_size
53 #define ast_dataitem_020_010_decode ast_dataitem_data_source_identifier_decode
54 #define ast_dataitem_020_010_encode ast_dataitem_data_source_identifier_encode
55 #define ast_dataitem_020_010_get_summary ast_dataitem_data_source_identifier_get_summary
56 #define ast_dataitem_020_010_get_detail_html ast_dataitem_data_source_identifier_get_detail_html
57 
66 typedef struct _ast_dataitem_020_020_t
68 {
69  bool valid;
70 
72  bool type_modes;
73  bool type_hf;
74  bool type_vdl4;
75  bool type_uat;
76  bool type_dme;
77  bool type_other;
78 
80  bool spi;
81  int chain;
82  bool ground;
84  bool simulated;
85  bool test;
87 
89 #define ast_dataitem_020_020_get_size ast_dataitem_get_size_var_2_byte
90 
93 
95 AST_API void ast_dataitem_020_020_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di);
96 
98 AST_API void ast_dataitem_020_020_get_detail_html(char *detail, const size_t detail_size, const ast_dataitem_t di);
99 
107 #define ast_dataitem_020_030_get_size ast_dataitem_get_size_var_2_byte
108 
118 #define ast_dataitem_020_041_get_size ast_dataitem_position_wgs84_get_size
119 #define ast_dataitem_020_041_decode ast_dataitem_position_wgs84_decode
120 #define ast_dataitem_020_041_get_summary ast_dataitem_position_wgs84_get_summary
121 #define ast_dataitem_020_041_get_detail_html ast_dataitem_position_wgs84_get_detail_html
122 
132 #define ast_dataitem_020_042_get_size ast_dataitem_position_cartesian_get_size
133 #define ast_dataitem_020_042_decode ast_dataitem_position_cartesian_decode
134 #define ast_dataitem_020_042_get_summary ast_dataitem_position_cartesian_get_summary
135 #define ast_dataitem_020_042_get_detail_html ast_dataitem_position_cartesian_get_detail_html
136 
145 #define ast_dataitem_020_050_get_size ast_dataitem_mode_2_code_get_size
146 
154 AST_API size_t ast_dataitem_020_055_get_size(const unsigned char* buffer, const size_t bufsize);
155 
164 #define ast_dataitem_020_070_get_size ast_dataitem_mode_3a_code_get_size
165 #define ast_dataitem_020_070_decode ast_dataitem_mode_3a_code_decode
166 #define ast_dataitem_020_070_encode ast_dataitem_mode_3a_code_encode
167 #define ast_dataitem_020_070_get_summary ast_dataitem_mode_3a_code_get_summary
168 #define ast_dataitem_020_070_get_detail_html ast_dataitem_mode_3a_code_get_detail_html
169 
179 #define ast_dataitem_020_090_get_size ast_dataitem_mode_c_code_get_size
180 #define ast_dataitem_020_090_decode ast_dataitem_mode_c_code_decode
181 #define ast_dataitem_020_090_encode ast_dataitem_mode_c_code_encode
182 #define ast_dataitem_020_090_get_summary ast_dataitem_mode_c_code_get_summary
183 #define ast_dataitem_020_090_get_detail_html ast_dataitem_mode_c_code_get_detail_html
184 
193 AST_API size_t ast_dataitem_020_100_get_size(const unsigned char* buffer, const size_t bufsize);
194 
204 #define ast_dataitem_020_105_get_size ast_dataitem_height_get_size
205 #define ast_dataitem_020_105_decode ast_dataitem_height_decode
206 #define ast_dataitem_020_105_get_summary ast_dataitem_height_get_summary
207 #define ast_dataitem_020_105_get_detail_html ast_dataitem_height_get_detail_html
208 
217 #define ast_dataitem_020_110_get_size ast_dataitem_height_get_size
218 #define ast_dataitem_020_110_decode ast_dataitem_height_decode
219 #define ast_dataitem_020_110_get_summary ast_dataitem_height_get_summary
220 #define ast_dataitem_020_110_get_detail_html ast_dataitem_height_get_detail_html
221 
231 #define ast_dataitem_020_140_get_size ast_dataitem_time_of_day_get_size
232 #define ast_dataitem_020_140_decode ast_dataitem_time_of_day_decode
233 #define ast_dataitem_020_140_encode ast_dataitem_time_of_day_encode
234 #define ast_dataitem_020_140_get_summary ast_dataitem_time_of_day_get_summary
235 #define ast_dataitem_020_140_get_detail_html ast_dataitem_time_of_day_get_detail_html
236 
246 #define ast_dataitem_020_161_get_size ast_dataitem_track_number_get_size
247 #define ast_dataitem_020_161_decode ast_dataitem_track_number_decode
248 
250 #define ast_dataitem_020_161_encode ast_dataitem_track_number_encode
251 
252 #define ast_dataitem_020_161_get_summary ast_dataitem_track_number_get_summary
253 #define ast_dataitem_020_161_get_detail_html ast_dataitem_track_number_get_detail_html
254 
263 typedef enum _ast_mlat_track_vertical_maneuver_t
265 {
271 
273 typedef struct _ast_dataitem_020_170_t
274 {
275  bool valid;
276 
279  bool coast;
282  bool smoothed;
283  bool ghost;
285 
287 #define ast_dataitem_020_170_get_size ast_dataitem_get_size_var_2_byte
288 
291 
293 AST_API void ast_dataitem_020_170_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di);
294 
296 AST_API void ast_dataitem_020_170_get_detail_html(char* detail, const size_t detail_size, const ast_dataitem_t di);
297 
307 #define ast_dataitem_020_202_get_size ast_dataitem_velocity_cartesian_get_size
308 #define ast_dataitem_020_202_decode ast_dataitem_velocity_cartesian_decode
309 #define ast_dataitem_020_202_get_summary ast_dataitem_velocity_cartesian_get_summary
310 #define ast_dataitem_020_202_get_detail_html ast_dataitem_get_detail_html_dummy
311 
315 #define ast_dataitem_020_210_get_size ast_dataitem_get_size_fixed_2_byte
317 
318 
325 #define ast_dataitem_020_220_get_size ast_dataitem_target_address_get_size
326 #define ast_dataitem_020_220_decode ast_dataitem_target_address_decode
327 #define ast_dataitem_020_220_encode ast_dataitem_target_address_encode
328 #define ast_dataitem_020_220_get_summary ast_dataitem_target_address_get_summary
329 #define ast_dataitem_020_220_get_detail_html ast_dataitem_target_address_get_detail_html
330 
339 typedef enum _ast_mlat_comm_capbility_t
341 {
349 
351 typedef enum _ast_mlat_flight_status_t
352 {
362 
364 typedef struct _ast_dataitem_020_230_t
365 {
366  bool valid;
367 
370 
374 
375  char b1a;
376  char b1b;
378 
380 #define ast_dataitem_020_230_get_size ast_dataitem_get_size_fixed_2_byte
381 
384 
386 AST_API void ast_dataitem_020_230_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di);
387 
389 AST_API void ast_dataitem_020_230_get_detail_html(char* detail, const size_t detail_size, const ast_dataitem_t di);
390 
400 #define ast_dataitem_020_245_get_size ast_dataitem_target_id_get_size
401 #define ast_dataitem_020_245_decode ast_dataitem_target_id_decode
402 #define ast_dataitem_020_245_get_summary ast_dataitem_target_id_get_summary
403 #define ast_dataitem_020_245_get_detail_html ast_dataitem_target_id_get_detail_html
404 
414 #define ast_dataitem_020_250_get_size ast_dataitem_modes_mb_get_size
415 #define ast_dataitem_020_250_decode ast_dataitem_modes_mb_decode
416 #define ast_dataitem_020_250_get_summary ast_dataitem_modes_mb_get_summary
417 #define ast_dataitem_020_250_get_detail_html ast_dataitem_modes_mb_get_detail_html
418 
422 #define ast_dataitem_020_260_get_size ast_dataitem_get_size_fixed_7_byte
424 
425 
427 #define ast_dataitem_020_300_get_size ast_dataitem_get_size_fixed_1_byte
428 
429 
431 #define ast_dataitem_020_310_get_size ast_dataitem_get_size_fixed_1_byte
432 
433 
439 #define AST_MAX_MLAT_RECEIVERS 256
440 
442 typedef struct _ast_dataitem_020_400_t
443 {
444  bool valid;
445 
446  int n_total;
448 
449  bool receivers[AST_MAX_MLAT_RECEIVERS];
451 
453 #define ast_dataitem_020_400_get_size ast_dataitem_get_size_rep_1_byte
454 
457 
459 AST_API void ast_dataitem_020_400_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di);
460 
462 AST_API void ast_dataitem_020_400_get_detail_html(char* detail, const size_t detail_size, const ast_dataitem_t di);
463 
472 typedef struct _ast_dataitem_020_500_t
474 {
475  bool valid;
476 
480 
481  int dop_x;
482  int dop_y;
483  int dop_xy;
484 
485  int sdp_x;
486  int sdp_y;
487  int sdp_xy;
488 
489  int sdh;
491 
493 AST_API size_t ast_dataitem_020_500_get_size(const unsigned char* buffer, const size_t bufsize);
494 
497 
499 AST_API void ast_dataitem_020_500_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di);
500 
502 AST_API void ast_dataitem_020_500_get_detail_html(char* detail, const size_t detail_size, const ast_dataitem_t di);
503 
511 #define ast_dataitem_020_REF_get_size ast_dataitem_reserved_expansion_field_get_size
513 
515 //ast_dataitem_020_REF_t ast_dataitem_020_REF_decode(const ast_dataitem_t di);
516 
518 #define ast_dataitem_020_REF_get_summary ast_dataitem_reserved_expansion_field_get_summary;
519 
521 #define ast_dataitem_020_REF_get_detail_html ast_dataitem_reserved_expansion_field_get_detail_html;
522 
525 // Data Record
526 
529 
532 
535 
538 
541 
544 
547 
550 
553 
555 #define ast_datarecord_020_get_polarcoord 0
556 
558 #define ast_datarecord_020_get_heading 0
559 
561 #define ast_datarecord_020_get_speed 0
562 
568 typedef struct _ast_datarecord_020_t
570 {
571  bool valid;
572 
591 
593 
596 
599 #ifdef __cplusplus
600  }
601 #endif // extern "C"
602 
603 #endif //LIBASTERIX_CAT020_H
604 
605 // vim:set ft=c.doxygen sw=2 sts=2 fenc=utf8:
ast_dataitem_020_230_t ast_dataitem_020_230_decode(const ast_dataitem_t di)
Decode function.
bool test
Definition: cat020.h:85
Definition: cat020.h:355
ast_dataitem_020_400_t ast_dataitem_020_400_decode(const ast_dataitem_t di)
Decode function.
Altitude.
Definition: type.h:111
ast_dataitem_020_170_t ast_dataitem_020_170_decode(const ast_dataitem_t di)
Decode function.
int dop_x
Definition: cat020.h:481
bool coast
Definition: cat020.h:279
ast_dataitem_020_500_t dataitem_020_500
Definition: cat020.h:590
ast_dataitem_020_020_t ast_dataitem_020_020_decode(const ast_dataitem_t di)
Decode function.
bool valid
Definition: cat020.h:366
bool ground
Definition: cat020.h:82
ast_sacsic_t ast_datarecord_020_get_sacsic(const ast_datarecord_t dr)
Get SAC/SIC function.
void ast_dataitem_020_170_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di)
Get summary function.
bool h_maneuvre
Definition: cat020.h:281
bool valid
Definition: cat020.h:275
Implementation of Datarecord concept defined by ASTERIX.
Data Source Identifier (aka SAC/SIC)
Definition: type.h:35
size_t ast_dataitem_020_500_get_size(const unsigned char *buffer, const size_t bufsize)
Get size funciton.
ast_dataitem_020_230_t dataitem_020_230
Definition: cat020.h:586
ast_dataitem_020_245_t dataitem_020_245
Definition: cat020.h:587
Data Item Itrack_number - Track Number.
Definition: cat_generic.h:719
void ast_dataitem_020_500_get_detail_html(char *detail, const size_t detail_size, const ast_dataitem_t di)
Get detail function.
ast_dataitem_track_number_t ast_dataitem_020_161_t
Definition: cat020.h:245
Data Item I020/400 - Contributing Receivers.
Definition: cat020.h:442
ast_dataitem_mode_c_code_t ast_dataitem_020_090_t
Definition: cat020.h:178
bool corrupted_reply
Definition: cat020.h:83
ast_tracknum_t ast_datarecord_020_get_tracknum(const ast_datarecord_t dr)
Get track number function.
ast_mlat_track_vertical_maneuver_t v_maneuvre
Definition: cat020.h:280
bool simulated
Definition: cat020.h:84
Definition: cat020.h:268
int sdp_y
Definition: cat020.h:486
Definition: cat020.h:347
Data Item - Position in Cartesian Coordinates.
Definition: cat_generic.h:381
ast_mlat_flight_status_t
MLAT flight status.
Definition: cat020.h:351
#define AST_API
Definition: platform.h:63
int dop_xy
Definition: cat020.h:483
Data Item - Data Source Identifier.
Definition: cat_generic.h:94
bool ghost
Definition: cat020.h:283
ast_dataitem_020_042_t dataitem_020_042
Definition: cat020.h:576
void ast_dataitem_020_230_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di)
Get summary funciton.
ast_dataitem_data_source_identifier_t ast_dataitem_020_010_t
Definition: cat020.h:51
bool altitude_cap
Definition: cat020.h:372
Data Item - Time of Day.
Definition: cat_generic.h:217
ast_mlat_comm_capbility_t
MLAT communication capbility.
Definition: cat020.h:340
ast_dataitem_height_t ast_dataitem_020_110_t
Definition: cat020.h:216
void ast_dataitem_020_500_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di)
Get summary function.
Definition: cat020.h:266
Definition: cat020.h:345
This file includes the common used data items shares by different categories.
Data Record I020 - MLT Messages.
Definition: cat020.h:569
Data Item - Mode S MB Data.
Definition: cat_generic.h:957
Definition: cat020.h:269
Definition: cat020.h:344
#define AST_MAX_MLAT_RECEIVERS
Definition: cat020.h:439
Definition: type.h:66
int dop_y
Definition: cat020.h:482
bool type_non_modes
Definition: cat020.h:71
ast_mlat_comm_capbility_t comm_cap
Definition: cat020.h:368
void ast_dataitem_020_400_get_detail_html(char *detail, const size_t detail_size, const ast_dataitem_t di)
Get detail function.
ast_squawk_t ast_datarecord_020_get_squawk(const ast_datarecord_t dr)
Get Mode-3/A code function.
Data Item - Target Identification.
Definition: cat_generic.h:885
ast_dataitem_020_105_t dataitem_020_105
Definition: cat020.h:579
Definition: cat020.h:360
ast_dataitem_time_of_day_t ast_dataitem_020_140_t
Definition: cat020.h:230
int chain
Definition: cat020.h:81
Definition: cat020.h:267
void ast_dataitem_020_170_get_detail_html(char *detail, const size_t detail_size, const ast_dataitem_t di)
Get detail function.
Data Item - Mode-C Code.
Definition: cat_generic.h:559
bool initiation
Definition: cat020.h:277
bool type_vdl4
Definition: cat020.h:74
int n_total
Definition: cat020.h:446
bool last_report
Definition: cat020.h:278
void ast_dataitem_020_020_get_detail_html(char *detail, const size_t detail_size, const ast_dataitem_t di)
Get detail function.
ast_coordinate_t ast_datarecord_020_get_coordinate(const ast_datarecord_t dr)
Get coordinate function.
ast_dataitem_target_address_t ast_dataitem_020_220_t
Definition: cat020.h:324
Data Item I020/020 - Target Report Descriptor.
Definition: cat020.h:67
ast_dataitem_020_110_t dataitem_020_110
Definition: cat020.h:580
ast_dataitem_modes_mb_t ast_dataitem_020_250_t
Definition: cat020.h:413
bool dop_existing
Definition: cat020.h:477
Data Item - Position in WGS84 Coordinates.
Definition: cat_generic.h:340
void ast_dataitem_020_400_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di)
Get summary function.
ast_dataitem_020_070_t dataitem_020_070
Definition: cat020.h:577
ast_mlat_track_vertical_maneuver_t
MLAT track vertical maneuver status.
Definition: cat020.h:264
char b1b
Definition: cat020.h:376
Squawk (aka Mode-3/A Code)
Definition: type.h:80
ast_mlat_flight_status_t flight_status
Definition: cat020.h:369
Data Item - Calculated Track Velocity in Cartesian Coordinates.
Definition: cat_generic.h:420
Implementation of Dataitem concept defined by ASTERIX.
ast_dataitem_020_500_t ast_dataitem_020_500_decode(const ast_dataitem_t di)
Decode function.
ast_dataitem_velocity_cartesian_t ast_dataitem_020_202_t
Definition: cat020.h:306
bool valid
Definition: cat020.h:444
bool type_other
Definition: cat020.h:77
Data Item - Target Address.
Definition: cat_generic.h:799
Definition: cat020.h:343
ast_dataitem_020_161_t dataitem_020_161
Definition: cat020.h:582
char b1a
Definition: cat020.h:375
ast_dataitem_020_220_t dataitem_020_220
Definition: cat020.h:585
bool spi
Definition: cat020.h:80
Definition: cat020.h:357
void ast_dataitem_020_020_get_summary(char *summary, const size_t summary_size, const ast_dataitem_t di)
Get Summary function.
Definition: cat020.h:354
Dataitem.
Definition: dataitem.h:421
ast_dataitem_020_090_t dataitem_020_090
Definition: cat020.h:578
ast_dataitem_height_t ast_dataitem_020_105_t
Definition: cat020.h:203
ast_msgtype_t ast_datarecord_020_get_msgtype(const ast_datarecord_t dr)
Get message type function.
Definition: cat020.h:359
Definition: cat020.h:342
Data Item - Mode-3/A Code in Octal Representation.
Definition: cat_generic.h:475
bool type_dme
Definition: cat020.h:76
ast_datarecord_020_t ast_datarecord_020_disassemble(const ast_datarecord_t dr)
Disassemble function.
bool type_uat
Definition: cat020.h:75
ast_callsign_t ast_datarecord_020_get_callsign(const ast_datarecord_t dr)
Get callsign function.
bool sdp_existing
Definition: cat020.h:478
Callsign.
Definition: type.h:89
ast_dataitem_type_t
Definition of data item id in each category.
Definition: dataitem.h:67
size_t ast_dataitem_020_055_get_size(const unsigned char *buffer, const size_t bufsize)
bool valid
Definition: cat020.h:69
bool type_modes
Definition: cat020.h:72
ast_dataitem_position_cartesian_t ast_dataitem_020_042_t
Definition: cat020.h:131
Data Item I020/500 - Position Accuracy.
Definition: cat020.h:473
WGS-84 2D Coordinate.
Definition: type.h:103
Time of day.
Definition: type.h:43
int sdp_x
Definition: cat020.h:485
ast_dataitem_020_170_t dataitem_020_170
Definition: cat020.h:583
ast_dataitem_target_id_t ast_dataitem_020_245_t
Definition: cat020.h:399
bool sdh_existing
Definition: cat020.h:479
Definition: cat020.h:358
Datarecord.
Definition: datarecord.h:41
ast_dataitem_020_400_t dataitem_020_400
Definition: cat020.h:589
ast_dataitem_020_250_t dataitem_020_250
Definition: cat020.h:588
bool valid
Definition: cat020.h:475
ast_timeofday_t ast_datarecord_020_get_timeofday(const ast_datarecord_t dr)
Get time of day function.
Definition: cat020.h:356
ast_dataitem_020_020_t dataitem_020_020
Definition: cat020.h:574
ast_dataitem_position_wgs84_t ast_dataitem_020_041_t
Definition: cat020.h:117
Data Item I020/170 - Track Status.
Definition: cat020.h:273
Definition: cat020.h:346
int n_contributing
Definition: cat020.h:447
bool type_hf
Definition: cat020.h:73
ast_dataitem_mode_3a_code_t ast_dataitem_020_070_t
Definition: cat020.h:163
ast_dataitem_020_140_t dataitem_020_140
Definition: cat020.h:581
int sdh
Definition: cat020.h:489
int sdp_xy
Definition: cat020.h:487
ast_dataitem_020_202_t dataitem_020_202
Definition: cat020.h:584
bool mode_s_cap
Definition: cat020.h:371
ast_altitude_t ast_datarecord_020_get_flightlevel(const ast_datarecord_t dr)
Get flight level function.
ast_dataitem_020_010_t dataitem_020_010
Definition: cat020.h:573
Definition: cat020.h:353
Data Item - Height.
Definition: cat_generic.h:641
bool identification_cap
Definition: cat020.h:373
bool smoothed
Definition: cat020.h:282
ICAO 24-bit Address.
Definition: type.h:96
Data Item I020/230 - Communications/ACAS Capability and Flight Status.
Definition: cat020.h:364
const char * ast_dataitem_020_get_name(const ast_dataitem_type_t type)
Get name function.
ast_icaoaddr_t ast_datarecord_020_get_icaoaddr(const ast_datarecord_t dr)
Get ICAO 24-bit address function.
bool fixed_transponder
Definition: cat020.h:79
ast_dataitem_020_041_t dataitem_020_041
Definition: cat020.h:575
Track Number.
Definition: type.h:73
void ast_dataitem_020_230_get_detail_html(char *detail, const size_t detail_size, const ast_dataitem_t di)
Get detail function.
size_t ast_dataitem_020_100_get_size(const unsigned char *buffer, const size_t bufsize)
bool valid
Definition: cat020.h:571