cat034.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 
25 #ifndef LIBASTERIX_CAT034_H
26 #define LIBASTERIX_CAT034_H
27 
28 #include "dataitem.h"
29 #include "datarecord.h"
30 #include "cat_generic.h"
31 #include "subfield.h"
32 
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36 
37 //Data Item
38 
41 
47 typedef enum _ast_modes_message_type_t
49 {
55 
58 
60 #define ast_dataitem_034_000_get_size ast_dataitem_message_type_get_size
61 
63 #define ast_dataitem_034_000_decode ast_dataitem_message_type_decode
64 
66 #define ast_dataitem_034_000_encode ast_dataitem_message_type_encode
67 
69 AST_API void ast_dataitem_034_000_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di);
70 
72 #define ast_dataitem_034_000_get_detail_html ast_dataitem_get_detail_html_dummy
73 
83 #define ast_dataitem_034_010_get_size ast_dataitem_data_source_identifier_get_size
84 #define ast_dataitem_034_010_decode ast_dataitem_data_source_identifier_decode
85 #define ast_dataitem_034_010_encode ast_dataitem_data_source_identifier_encode
86 #define ast_dataitem_034_010_get_summary ast_dataitem_data_source_identifier_get_summary
87 #define ast_dataitem_034_010_get_detail_html ast_dataitem_data_source_identifier_get_detail_html
88 
99 
101 #define ast_dataitem_034_020_get_size ast_dataitem_sector_number_get_size
102 
104 #define ast_dataitem_034_020_decode ast_dataitem_sector_number_decode
105 
107 #define ast_dataitem_034_020_encode ast_dataitem_sector_number_encode
108 
110 #define ast_dataitem_034_020_get_summary ast_dataitem_sector_number_get_summary
111 
113 #define ast_dataitem_034_020_get_detail_html ast_dataitem_sector_number_get_detail_html
114 
124 #define ast_dataitem_034_030_get_size ast_dataitem_time_of_day_get_size
125 #define ast_dataitem_034_030_decode ast_dataitem_time_of_day_decode
126 #define ast_dataitem_034_030_encode ast_dataitem_time_of_day_encode
127 #define ast_dataitem_034_030_get_summary ast_dataitem_time_of_day_get_summary
128 #define ast_dataitem_034_030_get_detail_html ast_dataitem_time_of_day_get_detail_html
129 
138 typedef struct _ast_dataitem_034_041_t
140 {
141  bool valid;
142 
143  unsigned int raw_period;
144  double period;
145 
147 
149 #define ast_dataitem_034_041_get_size ast_dataitem_get_size_fixed_2_byte
150 
153 
155 AST_API void ast_dataitem_034_041_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di);
156 
158 #define ast_dataitem_034_041_get_detail_html ast_dataitem_get_detail_html_dummy;
159 
168 typedef enum _ast_ssr_channel_selection_t
169 {
175 
177 typedef struct _ast_dataitem_034_050_t
178 {
179  bool valid;
180 
182  size_t n_subfields;
183 
184  //subfield #1
186  bool com_nogo;
193 
194  //subfield #2
195  //spare
196 
197  //subfield #3
198  //spare
199 
200  //subfield #4
202 
203  //subfield #5
209 
210  //subfield #6
212 
213  //subfield #7
214  //spare
216 
218 AST_API size_t ast_dataitem_034_050_get_size(const unsigned char *buffer, const size_t bufsize);
219 
222 
224 #define ast_dataitem_034_050_get_summary ast_dataitem_subfields_get_summary
225 
227 #define ast_dataitem_034_050_get_detail_html ast_dataitem_subfields_get_detail_html
228 
230 AST_API size_t ast_subfield_034_050_get_size(const unsigned char* buffer, const size_t bufsize, const ast_subfield_type_t type);
231 
234 
237 
239 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);
240 
242 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);
243 
252 typedef enum _ast_psr_polarization_t
253 {
257 
258 typedef enum _ast_reduction_step_t
259 {
269 
271 typedef struct _ast_dataitem_034_060_t
272 {
273  bool valid;
274 
276  size_t n_subfields;
277 
278  //subfield #1
282 
283  //subfield #2
284  //spare
285 
286  //subfield #3
287  //spare
288 
289  //subfield #4
294 
295  //subfield #5
298 
299  //subfield #6
303 
304  //subfield #7
305  //spare
307 
309 AST_API size_t ast_dataitem_034_060_get_size(const unsigned char *buffer, const size_t bufsize);
310 
313 
315 #define ast_dataitem_034_060_get_summary ast_dataitem_subfields_get_summary
316 
318 #define ast_dataitem_034_060_get_detail_html ast_dataitem_subfields_get_detail_html
319 
321 AST_API size_t ast_subfield_034_060_get_size(const unsigned char* buffer, const size_t bufsize, const ast_subfield_type_t type);
322 
325 
328 
330 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);
331 
333 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);
334 
343 typedef enum _ast_counter_type_t
344 {
363 
364 typedef struct _ast_counter_t
365 {
367  unsigned int value;
368 } ast_counter_t;
369 
370 #define AST_MAX_COUNTERS 16
371 
373 typedef struct _ast_dataitem_034_070_t
374 {
375  bool valid;
376 
377  unsigned int n_counters;
380 
382 #define ast_dataitem_034_070_get_size ast_dataitem_get_size_rep_2_byte
383 
386 
388 AST_API void ast_dataitem_034_070_get_summary(char* summary, const size_t summary_size, const ast_dataitem_t di);
389 
391 AST_API void ast_dataitem_034_070_get_detail_html(char* detail, const size_t detail_size, const ast_dataitem_t di);
392 
401 #define ast_dataitem_034_090_get_size ast_dataitem_get_size_fixed_2_byte
402 
411 #define ast_dataitem_034_110_get_size ast_dataitem_get_size_fixed_1_byte
412 
421 #define ast_dataitem_034_120_get_size ast_dataitem_get_size_fixed_8_byte
422 
432 #define ast_dataitem_034_SPF_get_size ast_dataitem_special_purpose_field_get_size
434 
436 //ast_dataitem_048_998_t ast_dataitem_048_998_decode(const ast_dataitem_t di);
437 
439 #define ast_dataitem_034_SPF_get_summary ast_dataitem_special_purpose_field_get_summary
440 
442 #define ast_dataitem_034_SPF_get_detail_html ast_dataitem_get_detail_html_dummy
443 
446 //Data Record
447 
453 typedef struct _ast_datarecord_034_t
455 {
456  bool valid;
457 
467 
470 
472 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);
473 
474 
477 #ifdef __cplusplus
478  }
479 #endif // extern "C"
480 
481 #endif //LIBASTERIX_CAT034_H
482 
483 // 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:52
ast_ssr_channel_selection_t
Definition: cat034.h:168
Data Item - Message Type.
Definition: cat_generic.h:52
Definition: cat034.h:349
unsigned int n_counters
Number of counters.
Definition: cat034.h:377
Definition: cat034.h:347
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:360
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:170
ast_subfield_type_t
Definition of subfield id in each dataitem.
Definition: subfield.h:53
bool com_time_source
Definition: cat034.h:192
bool psr_existing
Definition: cat034.h:201
Implementation of Datarecord concept defined by ASTERIX.
bool valid
Definition: cat034.h:179
Definition: uap.h:37
ast_dataitem_034_070_t dataitem_034_070
Definition: cat034.h:465
Definition: cat034.h:255
bool mds_existing
Definition: cat034.h:211
Definition: cat034.h:261
ast_reduction_step_t ssr_reduction
Definition: cat034.h:297
bool ssr_monitoring
Definition: cat034.h:208
ast_counter_type_t type
Definition: cat034.h:366
#define AST_API
Definition: platform.h:63
Data Item - Data Source Identifier.
Definition: cat_generic.h:94
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:279
ast_dataitem_data_source_identifier_t ast_dataitem_034_010_t
Definition: cat034.h:82
bool com_rdp_overload
Definition: cat034.h:189
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:359
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:217
ast_dataitem_time_of_day_t ast_dataitem_034_030_t
Definition: cat034.h:123
Data Item - Message Count Values.
Definition: cat034.h:373
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:187
Data Item - Antenna Rotation Speed.
Definition: cat034.h:139
Definition: cat034.h:364
bool com_existing
Definition: cat034.h:185
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:463
unsigned int value
Definition: cat034.h:367
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:458
size_t n_subfields
Definition: cat034.h:182
Definition: cat034.h:355
ast_reduction_step_t com_xmp_reduction
Definition: cat034.h:281
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:460
bool ssr_overload
Definition: cat034.h:207
ast_datarecord_034_t ast_datarecord_034_disassemble(const ast_datarecord_t dr)
Disassemble function.
Definition: cat034.h:354
const char * ast_subfield_034_050_get_name(const ast_subfield_type_t type)
Get name of subfield.
bool valid
Definition: cat034.h:375
bool mds_auto_cluster_state
Definition: cat034.h:302
unsigned int raw_period
Definition: cat034.h:143
Subfield struct.
Definition: subfield.h:293
ast_psr_polarization_t psr_polarization
Definition: cat034.h:291
Data Item I034/050 - Station Configuration & Status.
Definition: cat034.h:177
Definition: cat034.h:357
Definition: cat034.h:51
Definition: cat034.h:356
ast_dataitem_034_070_t ast_dataitem_034_070_decode(const ast_dataitem_t di)
Decode function.
#define AST_MAX_COUNTERS
Definition: cat034.h:370
Definition: cat034.h:353
double period
Raw format as defined in doc, resolution 1/128s.
Definition: cat034.h:144
Definition: cat034.h:172
Data Item - Sector Number.
Definition: cat_generic.h:169
ast_dataitem_sector_number_t ast_dataitem_034_020_t
Data Item I034/020 - Sector Number.
Definition: cat034.h:98
ast_dataitem_message_type_t ast_dataitem_034_000_t
Data Item I034/000 - Message Type.
Definition: cat034.h:57
Implementation of Dataitem concept defined by ASTERIX.
Definition: cat034.h:262
Definition: cat034.h:361
Data Record I034 - Transmission of Monoradar Service Messages.
Definition: cat034.h:454
ast_modes_message_type_t
Mode-S message type.
Definition: cat034.h:48
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:188
ast_dataitem_034_030_t dataitem_034_030
Definition: cat034.h:461
Definition: cat034.h:50
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:358
int ssr_antenna
Definition: cat034.h:205
Definition: cat034.h:351
Definition: cat034.h:260
Dataitem.
Definition: dataitem.h:421
Definition: cat034.h:267
bool com_monitoring
Definition: cat034.h:191
bool valid
Definition: cat034.h:456
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:464
bool mds_existing
Definition: cat034.h:300
ast_reduction_step_t
Definition: cat034.h:258
Definition: cat034.h:350
int psr_sensitive_time_control_map
Definition: cat034.h:293
Definition: cat034.h:263
ast_dataitem_type_t
Definition of data item id in each category.
Definition: dataitem.h:67
Definition: cat034.h:348
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:301
size_t n_subfields
Definition: cat034.h:276
ast_dataitem_034_060_t ast_dataitem_034_060_decode(const ast_dataitem_t di)
Decode function of dataitem.
Definition: cat034.h:346
#define AST_MAX_SUBFIELDS
Definition: subfield.h:363
bool valid
Definition: cat034.h:273
Definition: cat034.h:171
ast_reduction_step_t com_rdp_reduction
Definition: cat034.h:280
bool ssr_existing
Definition: cat034.h:296
Definition: cat034.h:345
bool com_xmt_overload
Definition: cat034.h:190
size_t ast_dataitem_034_050_get_size(const unsigned char *buffer, const size_t bufsize)
Get size of dataitem.
Definition: cat034.h:352
ast_counter_type_t
Definition: cat034.h:343
ast_dataitem_034_010_t dataitem_034_010
Definition: cat034.h:459
Definition: cat034.h:173
Datarecord.
Definition: datarecord.h:41
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:271
Definition: cat034.h:266
bool psr_existing
Definition: cat034.h:290
bool com_nogo
Definition: cat034.h:186
ast_psr_polarization_t
Definition: cat034.h:252
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:206
Definition: cat034.h:254
Definition: cat034.h:265
Definition: cat034.h:53
ast_reduction_step_t psr_reduction
Definition: cat034.h:292
bool ssr_existing
Definition: cat034.h:204
Definition: cat034.h:264
ast_dataitem_034_041_t ast_dataitem_034_041_decode(const ast_dataitem_t di)
Decode function.
bool valid
Definition: cat034.h:141
Implementation of Subfield concept defined by ASTERIX.
ast_dataitem_034_041_t dataitem_034_041
Definition: cat034.h:462