ASTERIX data item processing. More...

Collaboration diagram for Data Item:

Data Structures

struct  ast_dataitem_t
 Dataitem. More...
struct  ast_dataitem_ex_t
 Extracted dataitem. More...

Macros

#define AST_MAP_DATAITEM_TYPE_EX(category_name, category_value, dataitem_name, dataitem_value)
 Macro used to map data item type.
#define SPF   999
 Special data items SPF, REF and RFS are widely used in different categories by different manufacturers.
#define REF   998
#define RFS   997
#define A02   902
 AXX are old version of CAT021 ADS-B data items that are not compatible with its new version.
#define A03   903
#define A04   904
#define A05   905
#define A06   906
#define A07   907
#define A08   908
#define AST_MAX_DATAITEM_SIZE   1024
 Max data item bytes.
#define AST_DATAITEM_SUMMARY_PREFERED_CHARS   256
 Preferred number of chars of dataitem summary.
#define AST_DATAITEM_HEX_STR_PREFERED_CHARS   (AST_MAX_DATAITEM_SIZE * 3)
 Preferred number of chars of dataitem hexadecimal string.
#define AST_DATAITEM_HEX_HTML_PREFERED_CHARS   (AST_MAX_DATAITEM_SIZE * 12 + 128)
 Preferred number of chars of dataitem hexadecimal HTML snippet.
#define AST_DATAITEM_BIN_STR_PREFERED_CHARS   (AST_MAX_DATAITEM_SIZE * 9)
 Preferred number of chars of dataitem binary string.
#define AST_DATAITEM_BIN_HTML_PREFERED_CHARS   (AST_MAX_DATAITEM_SIZE * 128 + 64)
 Preferred number of chars of dataitem binary HTML snippet.
#define AST_DATAITEM_DETAIL_HTML_PREFERED_CHARS   (AST_DATAITEM_HEX_HTML_PREFERED_CHARS + AST_DATAITEM_BIN_HTML_PREFERED_CHARS + 20480)
 Preferred number of chars of data item detail description HTML snippet.

Enumerations

enum  ast_dataitem_type_t {
  INULLITEM = 0 , I001_010 = 1010 , I001_020 = 1020 , I001_030 = 1030 ,
  I001_040 = 1040 , I001_042 = 1042 , I001_050 = 1050 , I001_060 = 1060 ,
  I001_070 = 1070 , I001_080 = 1080 , I001_090 = 1090 , I001_100 = 1100 ,
  I001_120 = 1120 , I001_130 = 1130 , I001_131 = 1131 , I001_141 = 1141 ,
  I001_150 = 1150 , I001_161 = 1161 , I001_170 = 1170 , I001_200 = 1200 ,
  I001_210 = 1210 , I001_901 = 1901 , I001_902 = 1902 , I001_903 = 1903 ,
  I001_904 = 1904 , I001_951 = 1951 , I001_RFS = 1997 , I001_SPF = 1999 ,
  I002_000 = 2000 , I002_010 = 2010 , I002_020 = 2020 , I002_030 = 2030 ,
  I002_041 = 2041 , I002_050 = 2050 , I002_060 = 2060 , I002_070 = 2070 ,
  I002_080 = 2080 , I002_090 = 2090 , I002_100 = 2100 , I002_901 = 2901 ,
  I002_902 = 2902 , I002_951 = 2951 , I002_RFS = 2997 , I002_SPF = 2999 ,
  I004_000 = 4000 , I004_010 = 4010 , I004_015 = 4015 , I004_020 = 4020 ,
  I004_030 = 4030 , I004_035 = 4035 , I004_040 = 4040 , I004_045 = 4045 ,
  I004_060 = 4060 , I004_070 = 4070 , I004_074 = 4074 , I004_075 = 4075 ,
  I004_076 = 4076 , I004_100 = 4100 , I004_110 = 4110 , I004_120 = 4120 ,
  I004_170 = 4170 , I004_171 = 4171 , I004_REF = 4998 , I004_SPF = 4999 ,
  I008_000 = 8000 , I008_010 = 8010 , I008_020 = 8020 , I008_034 = 8034 ,
  I008_036 = 8036 , I008_038 = 8038 , I008_040 = 8040 , I008_050 = 8050 ,
  I008_090 = 8090 , I008_100 = 8100 , I008_110 = 8110 , I008_120 = 8120 ,
  I008_RFS = 8997 , I008_SPF = 8999 , I010_000 = 10000 , I010_010 = 10010 ,
  I010_020 = 10020 , I010_040 = 10040 , I010_041 = 10041 , I010_042 = 10042 ,
  I010_060 = 10060 , I010_090 = 10090 , I010_091 = 10091 , I010_131 = 10131 ,
  I010_140 = 10140 , I010_161 = 10161 , I010_170 = 10170 , I010_200 = 10200 ,
  I010_202 = 10202 , I010_210 = 10210 , I010_220 = 10220 , I010_245 = 10245 ,
  I010_250 = 10250 , I010_270 = 10270 , I010_280 = 10280 , I010_300 = 10300 ,
  I010_310 = 10310 , I010_500 = 10500 , I010_550 = 10550 , I010_REF = 10998 ,
  I010_SPF = 10999 , I015_000 = 15000 , I015_010 = 15010 , I015_015 = 15015 ,
  I015_020 = 15020 , I015_030 = 15030 , I015_050 = 15050 , I015_145 = 15145 ,
  I015_161 = 15161 , I015_170 = 15170 , I015_270 = 15270 , I015_300 = 15300 ,
  I015_400 = 15400 , I015_480 = 15480 , I015_600 = 15600 , I015_601 = 15601 ,
  I015_602 = 15602 , I015_603 = 15603 , I015_604 = 15604 , I015_605 = 15605 ,
  I015_625 = 15625 , I015_626 = 15626 , I015_627 = 15627 , I015_628 = 15628 ,
  I015_630 = 15630 , I015_631 = 15631 , I016_000 = 16000 , I016_010 = 16010 ,
  I016_015 = 16015 , I016_140 = 16140 , I016_200 = 16200 , I016_300 = 16300 ,
  I016_400 = 16400 , I016_405 = 16405 , I016_410 = 16410 , I016_420 = 16420 ,
  I019_000 = 19000 , I019_010 = 19010 , I019_140 = 19140 , I019_550 = 19550 ,
  I019_551 = 19551 , I019_552 = 19552 , I019_553 = 19553 , I019_600 = 19600 ,
  I019_610 = 19610 , I019_620 = 19620 , I019_REF = 19998 , I019_SPF = 19999 ,
  I020_010 = 20010 , I020_020 = 20020 , I020_030 = 20030 , I020_041 = 20041 ,
  I020_042 = 20042 , I020_050 = 20050 , I020_055 = 20055 , I020_070 = 20070 ,
  I020_090 = 20090 , I020_100 = 20100 , I020_105 = 20105 , I020_110 = 20110 ,
  I020_140 = 20140 , I020_161 = 20161 , I020_170 = 20170 , I020_202 = 20202 ,
  I020_210 = 20210 , I020_220 = 20220 , I020_230 = 20230 , I020_245 = 20245 ,
  I020_250 = 20250 , I020_260 = 20260 , I020_300 = 20300 , I020_310 = 20310 ,
  I020_400 = 20400 , I020_500 = 20500 , I020_REF = 20998 , I020_SPF = 20999 ,
  I021_008 = 21008 , I021_010 = 21010 , I021_015 = 21015 , I021_016 = 21016 ,
  I021_020 = 21020 , I021_030 = 21030 , I021_032 = 21032 , I021_040 = 21040 ,
  I021_070 = 21070 , I021_071 = 21071 , I021_072 = 21072 , I021_073 = 21073 ,
  I021_074 = 21074 , I021_075 = 21075 , I021_076 = 21076 , I021_077 = 21077 ,
  I021_080 = 21080 , I021_090 = 21090 , I021_095 = 21095 , I021_110 = 21110 ,
  I021_130 = 21130 , I021_131 = 21131 , I021_132 = 21132 , I021_140 = 21140 ,
  I021_145 = 21145 , I021_146 = 21146 , I021_148 = 21148 , I021_150 = 21150 ,
  I021_151 = 21151 , I021_152 = 21152 , I021_155 = 21155 , I021_157 = 21157 ,
  I021_160 = 21160 , I021_161 = 21161 , I021_165 = 21165 , I021_170 = 21170 ,
  I021_200 = 21200 , I021_210 = 21210 , I021_220 = 21220 , I021_230 = 21230 ,
  I021_250 = 21250 , I021_260 = 21260 , I021_271 = 21271 , I021_295 = 21295 ,
  I021_400 = 21400 , I021_REF = 21998 , I021_SPF = 21999 , I021_A02 = 21902 ,
  I021_A03 = 21903 , I021_A04 = 21904 , I021_A05 = 21905 , I021_A06 = 21906 ,
  I021_A07 = 21907 , I021_A08 = 21908 , I023_000 = 23000 , I023_010 = 23010 ,
  I023_015 = 23015 , I023_070 = 23070 , I023_100 = 23100 , I023_101 = 23101 ,
  I023_110 = 23110 , I023_120 = 23120 , I023_200 = 23200 , I033_001 = 33001 ,
  I033_002 = 33002 , I033_003 = 33003 , I033_004 = 33004 , I033_005 = 33005 ,
  I033_006 = 33006 , I033_007 = 33007 , I033_008 = 33008 , I033_009 = 33009 ,
  I033_010 = 33010 , I033_011 = 33011 , I033_012 = 33012 , I033_013 = 33013 ,
  I033_014 = 33014 , I033_015 = 33015 , I033_017 = 33017 , I033_018 = 33018 ,
  I034_000 = 34000 , I034_010 = 34010 , I034_020 = 34020 , I034_030 = 34030 ,
  I034_041 = 34041 , I034_050 = 34050 , I034_060 = 34060 , I034_070 = 34070 ,
  I034_090 = 34090 , I034_100 = 34100 , I034_110 = 34110 , I034_120 = 34120 ,
  I034_REF = 34998 , I034_SPF = 34999 , I048_010 = 48010 , I048_020 = 48020 ,
  I048_030 = 48030 , I048_040 = 48040 , I048_050 = 48050 , I048_055 = 48055 ,
  I048_060 = 48060 , I048_065 = 48065 , I048_042 = 48042 , I048_070 = 48070 ,
  I048_080 = 48080 , I048_090 = 48090 , I048_100 = 48100 , I048_110 = 48110 ,
  I048_120 = 48120 , I048_130 = 48130 , I048_140 = 48140 , I048_161 = 48161 ,
  I048_170 = 48170 , I048_200 = 48200 , I048_210 = 48210 , I048_220 = 48220 ,
  I048_230 = 48230 , I048_240 = 48240 , I048_250 = 48250 , I048_260 = 48260 ,
  I048_REF = 48998 , I048_SPF = 48999 , I062_010 = 62010 , I062_015 = 62015 ,
  I062_040 = 62040 , I062_060 = 62060 , I062_070 = 62070 , I062_080 = 62080 ,
  I062_100 = 62100 , I062_105 = 62105 , I062_110 = 62110 , I062_120 = 62120 ,
  I062_130 = 62130 , I062_135 = 62135 , I062_136 = 62136 , I062_185 = 62185 ,
  I062_200 = 62200 , I062_210 = 62210 , I062_220 = 62220 , I062_245 = 62245 ,
  I062_270 = 62270 , I062_290 = 62290 , I062_295 = 62295 , I062_300 = 62300 ,
  I062_340 = 62340 , I062_380 = 62380 , I062_390 = 62390 , I062_500 = 62500 ,
  I062_510 = 62510 , I062_REF = 62998 , I062_SPF = 62999 , I063_010 = 63010 ,
  I063_015 = 63015 , I063_030 = 63030 , I063_050 = 63050 , I063_060 = 63060 ,
  I063_070 = 63070 , I063_080 = 63080 , I063_081 = 63081 , I063_090 = 63090 ,
  I063_091 = 63091 , I063_092 = 63092 , I063_REF = 63998 , I063_SPF = 63999 ,
  I065_000 = 65000 , I065_010 = 65010 , I065_015 = 65015 , I065_020 = 65020 ,
  I065_030 = 65030 , I065_040 = 65040 , I065_050 = 65050 , I065_REF = 65998 ,
  I065_SPF = 65999 , I240_000 = 240000 , I240_010 = 240010 , I240_020 = 240020 ,
  I240_030 = 240030 , I240_040 = 240040 , I240_041 = 240041 , I240_048 = 240048 ,
  I240_049 = 240049 , I240_050 = 240050 , I240_051 = 240051 , I240_052 = 240052 ,
  I240_140 = 240140 , I240_REF = 240998 , I240_SPF = 240999
}
 Definition of data item type in each category. More...

Functions

const char * ast_dataitem_type_to_str (const ast_dataitem_type_t type)
 Convert from ast_dataitem_type_t to C string.
ast_dataitem_t ast_dataitem_decode (const unsigned char *buffer, const size_t bufsize, const ast_dataitem_type_t type)
 Decode data item from binary data.
ast_dataitem_t ast_dataitem_encode (unsigned char *const buffer, const size_t bufsize, const ast_dataitem_ex_t xdi)
 Encode data item from extracted data.
ast_dataitem_t ast_dataitem_copy (unsigned char *const buffer, const size_t bufsize, const ast_dataitem_t src)
 Copy data item to binary buffer.
size_t ast_dataitem_get_size (const unsigned char *buffer, const size_t bufsize, const ast_dataitem_type_t type)
 Function to get size of one dataitem.
size_t ast_dataitem_get_size_fixed (const unsigned char *buffer, const size_t bufsize, const size_t fix_size)
 Utility function to get fixed data item size.
size_t ast_dataitem_get_size_fixed_1_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_fixed_2_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_fixed_3_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_fixed_4_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_fixed_5_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_fixed_6_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_fixed_7_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_fixed_8_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_fixed_9_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_fixed_12_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_variable (const unsigned char *buffer, const size_t bufsize, const size_t max_size)
 Utility function to get FX extendable data item size.
size_t ast_dataitem_get_size_var_1_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_var_2_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_var_3_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_var_4_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_var_5_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_var_6_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_var_11_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_var_12_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_var_16_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_var_23_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_var_unlimited (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_repeat (const unsigned char *buffer, const size_t bufsize, const size_t unit_size)
 Utility function to get repeated dataitem size.
size_t ast_dataitem_get_size_rep_1_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_rep_2_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_rep_3_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_rep_4_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_rep_5_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_rep_6_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_rep_8_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_rep_12_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_rep_15_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_rep_21_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_rep_64_byte (const unsigned char *buffer, const size_t bufsize)
size_t ast_dataitem_get_size_rep_256_byte (const unsigned char *buffer, const size_t bufsize)
const char * ast_dataitem_get_name (const ast_dataitem_type_t type)
 Function to get name of one data item.
void ast_dataitem_get_summary (char *summary, const size_t summary_size, const ast_dataitem_t di)
 Function to get summary of one dataitem.
void ast_dataitem_get_hex_str (char *string, const size_t string_size, ast_dataitem_t di)
 Function to get raw data item data in hexadecimal format.
void ast_dataitem_get_hex_html (char *html, const size_t html_size, const ast_dataitem_t di)
 Function to get a html snippet of the raw data item data in hexadecimal format.
void ast_dataitem_get_bin_str (char *string, const size_t string_size, const ast_dataitem_t di)
 Function to get raw data item data in binary format.
void ast_dataitem_get_bin_html (char *html, const size_t html_size, const ast_dataitem_t di)
 Function to get a html snippet of the raw data item data in binary format.
void ast_dataitem_get_detail_html (char *detail, const size_t detail_size, const ast_dataitem_t di)
 Function to get a html snippet of detailed description of dataitem.
void ast_dataitem_get_detail_html_dummy (char *detail, const size_t detail_size, const ast_dataitem_t di)
 Dummy get detail function.

Detailed Description

ASTERIX data item processing.

Description:
A data item is the elementary unit of information in a data record. The data items present in a record are indicated by the Field Specification (FSPEC) according to the User Application Profile (UAP) of the Category.

Macro Definition Documentation

◆ A02

#define A02   902

AXX are old version of CAT021 ADS-B data items that are not compatible with its new version.

Data item I021/130 version 0.24 ~ 0.26

◆ A03

#define A03   903

Data item I021/040 prior version 0.26

◆ A04

#define A04   904

Data item I021/131 prior version 0.26

◆ A05

#define A05   905

Data item I021/090 prior version 0.26

◆ A06

#define A06   906

Data item I021/210 prior version 0.26

◆ A07

#define A07   907

Data item I021/271 version 1.0 ~ 2.1

◆ A08

#define A08   908

Data item I021/200 prior version 0.26

◆ AST_DATAITEM_BIN_HTML_PREFERED_CHARS

#define AST_DATAITEM_BIN_HTML_PREFERED_CHARS   (AST_MAX_DATAITEM_SIZE * 128 + 64)

Preferred number of chars of dataitem binary HTML snippet.

◆ AST_DATAITEM_BIN_STR_PREFERED_CHARS

#define AST_DATAITEM_BIN_STR_PREFERED_CHARS   (AST_MAX_DATAITEM_SIZE * 9)

Preferred number of chars of dataitem binary string.

◆ AST_DATAITEM_DETAIL_HTML_PREFERED_CHARS

#define AST_DATAITEM_DETAIL_HTML_PREFERED_CHARS   (AST_DATAITEM_HEX_HTML_PREFERED_CHARS + AST_DATAITEM_BIN_HTML_PREFERED_CHARS + 20480)

Preferred number of chars of data item detail description HTML snippet.

◆ AST_DATAITEM_HEX_HTML_PREFERED_CHARS

#define AST_DATAITEM_HEX_HTML_PREFERED_CHARS   (AST_MAX_DATAITEM_SIZE * 12 + 128)

Preferred number of chars of dataitem hexadecimal HTML snippet.

◆ AST_DATAITEM_HEX_STR_PREFERED_CHARS

#define AST_DATAITEM_HEX_STR_PREFERED_CHARS   (AST_MAX_DATAITEM_SIZE * 3)

Preferred number of chars of dataitem hexadecimal string.

Examples
example.c.

◆ AST_DATAITEM_SUMMARY_PREFERED_CHARS

#define AST_DATAITEM_SUMMARY_PREFERED_CHARS   256

Preferred number of chars of dataitem summary.

Examples
example.c.

◆ AST_MAP_DATAITEM_TYPE_EX

#define AST_MAP_DATAITEM_TYPE_EX ( category_name,
category_value,
dataitem_name,
dataitem_value )
Value:
I ## category_name ## _ ## dataitem_name = category_value ## dataitem_value,

Macro used to map data item type.

A data item type is an enum value like I062_380, and its value will be 62 * 1000 + 380 = 62380.

Warning
As in C, a value starting with 0 will be treated as octal, the category number shall not contain the preceding 0.

◆ AST_MAX_DATAITEM_SIZE

#define AST_MAX_DATAITEM_SIZE   1024

Max data item bytes.

◆ REF

#define REF   998

Reserved expansion field (REF) maps to 998

◆ RFS

#define RFS   997

Random field sequencing (RFS) maps to 997

◆ SPF

#define SPF   999

Special data items SPF, REF and RFS are widely used in different categories by different manufacturers.

Special purpose field (SPF) maps to 999

Enumeration Type Documentation

◆ ast_dataitem_type_t

Definition of data item type in each category.

Enumerator
INULLITEM 

Null (Empty) dataitem.

I001_010 
I001_020 
I001_030 
I001_040 
I001_042 
I001_050 
I001_060 
I001_070 
I001_080 
I001_090 
I001_100 
I001_120 
I001_130 
I001_131 
I001_141 
I001_150 
I001_161 
I001_170 
I001_200 
I001_210 
I001_901 
I001_902 
I001_903 
I001_904 
I001_951 
I001_RFS 
I001_SPF 
I002_000 
I002_010 
I002_020 
I002_030 
I002_041 
I002_050 
I002_060 
I002_070 
I002_080 
I002_090 
I002_100 
I002_901 
I002_902 
I002_951 
I002_RFS 
I002_SPF 
I004_000 
I004_010 
I004_015 
I004_020 
I004_030 
I004_035 
I004_040 
I004_045 
I004_060 
I004_070 
I004_074 
I004_075 
I004_076 
I004_100 
I004_110 
I004_120 
I004_170 
I004_171 
I004_REF 
I004_SPF 
I008_000 
I008_010 
I008_020 
I008_034 
I008_036 
I008_038 
I008_040 
I008_050 
I008_090 
I008_100 
I008_110 
I008_120 
I008_RFS 
I008_SPF 
I010_000 
I010_010 
I010_020 
I010_040 
I010_041 
I010_042 
I010_060 
I010_090 
I010_091 
I010_131 
I010_140 
I010_161 
I010_170 
I010_200 
I010_202 
I010_210 
I010_220 
I010_245 
I010_250 
I010_270 
I010_280 
I010_300 
I010_310 
I010_500 
I010_550 
I010_REF 
I010_SPF 
I015_000 
I015_010 
I015_015 
I015_020 
I015_030 
I015_050 
I015_145 
I015_161 
I015_170 
I015_270 
I015_300 
I015_400 
I015_480 
I015_600 
I015_601 
I015_602 
I015_603 
I015_604 
I015_605 
I015_625 
I015_626 
I015_627 
I015_628 
I015_630 
I015_631 
I016_000 
I016_010 
I016_015 
I016_140 
I016_200 
I016_300 
I016_400 
I016_405 
I016_410 
I016_420 
I019_000 
I019_010 
I019_140 
I019_550 
I019_551 
I019_552 
I019_553 
I019_600 
I019_610 
I019_620 
I019_REF 
I019_SPF 
I020_010 
I020_020 
I020_030 
I020_041 
I020_042 
I020_050 
I020_055 
I020_070 
I020_090 
I020_100 
I020_105 
I020_110 
I020_140 
I020_161 
I020_170 
I020_202 
I020_210 
I020_220 
I020_230 
I020_245 
I020_250 
I020_260 
I020_300 
I020_310 
I020_400 
I020_500 
I020_REF 
I020_SPF 
I021_008 
I021_010 
I021_015 
I021_016 
I021_020 
I021_030 
I021_032 
I021_040 
I021_070 
I021_071 
I021_072 
I021_073 
I021_074 
I021_075 
I021_076 
I021_077 
I021_080 
I021_090 
I021_095 
I021_110 
I021_130 
I021_131 
I021_132 
I021_140 
I021_145 
I021_146 
I021_148 
I021_150 
I021_151 
I021_152 
I021_155 
I021_157 
I021_160 
I021_161 
I021_165 
I021_170 
I021_200 
I021_210 
I021_220 
I021_230 
I021_250 
I021_260 
I021_271 
I021_295 
I021_400 
I021_REF 
I021_SPF 
I021_A02 

Dataitem I021/130 version 0.24 ~ 0.26.

I021_A03 

Dataitem I021/040 prior version 0.26.

I021_A04 

Dataitem I021/131 prior version 0.26.

I021_A05 

Dataitem I021/090 prior version 0.26.

I021_A06 

Dataitem I021/210 prior version 0.26.

I021_A07 

Dataitem I021/210 version 1.0 ~ 2.2.

I021_A08 

Dataitem I021/200 prior version 0.26.

I023_000 
I023_010 
I023_015 
I023_070 
I023_100 
I023_101 
I023_110 
I023_120 
I023_200 
I033_001 
I033_002 
I033_003 
I033_004 
I033_005 
I033_006 
I033_007 
I033_008 
I033_009 
I033_010 
I033_011 
I033_012 
I033_013 
I033_014 
I033_015 
I033_017 
I033_018 
I034_000 
I034_010 
I034_020 
I034_030 
I034_041 
I034_050 
I034_060 
I034_070 
I034_090 
I034_100 
I034_110 
I034_120 
I034_REF 
I034_SPF 
I048_010 
I048_020 
I048_030 
I048_040 
I048_050 
I048_055 
I048_060 
I048_065 
I048_042 
I048_070 
I048_080 
I048_090 
I048_100 
I048_110 
I048_120 
I048_130 
I048_140 
I048_161 
I048_170 
I048_200 
I048_210 
I048_220 
I048_230 
I048_240 
I048_250 
I048_260 
I048_REF 
I048_SPF 
I062_010 
I062_015 
I062_040 
I062_060 
I062_070 
I062_080 
I062_100 
I062_105 
I062_110 
I062_120 
I062_130 
I062_135 
I062_136 
I062_185 
I062_200 
I062_210 
I062_220 
I062_245 
I062_270 
I062_290 
I062_295 
I062_300 
I062_340 
I062_380 
I062_390 
I062_500 
I062_510 
I062_REF 
I062_SPF 
I063_010 
I063_015 
I063_030 
I063_050 
I063_060 
I063_070 
I063_080 
I063_081 
I063_090 
I063_091 
I063_092 
I063_REF 
I063_SPF 
I065_000 
I065_010 
I065_015 
I065_020 
I065_030 
I065_040 
I065_050 
I065_REF 
I065_SPF 
I240_000 
I240_010 
I240_020 
I240_030 
I240_040 
I240_041 
I240_048 
I240_049 
I240_050 
I240_051 
I240_052 
I240_140 
I240_REF 
I240_SPF 

Function Documentation

◆ ast_dataitem_copy()

ast_dataitem_t ast_dataitem_copy ( unsigned char *const buffer,
const size_t bufsize,
const ast_dataitem_t src )

Copy data item to binary buffer.

◆ ast_dataitem_decode()

ast_dataitem_t ast_dataitem_decode ( const unsigned char * buffer,
const size_t bufsize,
const ast_dataitem_type_t type )

Decode data item from binary data.

◆ ast_dataitem_encode()

ast_dataitem_t ast_dataitem_encode ( unsigned char *const buffer,
const size_t bufsize,
const ast_dataitem_ex_t xdi )

Encode data item from extracted data.

◆ ast_dataitem_get_bin_html()

void ast_dataitem_get_bin_html ( char * html,
const size_t html_size,
const ast_dataitem_t di )

Function to get a html snippet of the raw data item data in binary format.

The return text will be an html table with data in the cells.

◆ ast_dataitem_get_bin_str()

void ast_dataitem_get_bin_str ( char * string,
const size_t string_size,
const ast_dataitem_t di )

Function to get raw data item data in binary format.

There will be a space between each byte. E.g. "10011111 10100110 10001111"

◆ ast_dataitem_get_detail_html()

void ast_dataitem_get_detail_html ( char * detail,
const size_t detail_size,
const ast_dataitem_t di )

Function to get a html snippet of detailed description of dataitem.

Parameters
detailBuffer to save the html snippet
detail_sizeBuffer size
diDataitem

The returned html fragment contains only basic elements used in html body, such as <br/> <h> <table>....

This function will return only semantics markups, some elements will contain class name, and it is recommended for the library user to use CSS to format the html style.

◆ ast_dataitem_get_detail_html_dummy()

void ast_dataitem_get_detail_html_dummy ( char * detail,
const size_t detail_size,
const ast_dataitem_t di )

Dummy get detail function.

For some data items, it is not necessary to implement a get_detail_html function. In this case, the data item's get_detail_html_func can be registered to this dummy function. It will only set detail as a NULL string and do nothing else.

◆ ast_dataitem_get_hex_html()

void ast_dataitem_get_hex_html ( char * html,
const size_t html_size,
const ast_dataitem_t di )

Function to get a html snippet of the raw data item data in hexadecimal format.

The return text will be an html table with data in the cells.

◆ ast_dataitem_get_hex_str()

void ast_dataitem_get_hex_str ( char * string,
const size_t string_size,
ast_dataitem_t di )

Function to get raw data item data in hexadecimal format.

There will be a space between each byte. E.g. "0f 37 4a 5e"

Examples
example.c.

◆ ast_dataitem_get_name()

const char * ast_dataitem_get_name ( const ast_dataitem_type_t type)

Function to get name of one data item.

Name is the title of each data item defined in EUROCONTROL ASTERIX documentation

Examples
example.c.

◆ ast_dataitem_get_size()

size_t ast_dataitem_get_size ( const unsigned char * buffer,
const size_t bufsize,
const ast_dataitem_type_t type )

Function to get size of one dataitem.

◆ ast_dataitem_get_size_fixed()

size_t ast_dataitem_get_size_fixed ( const unsigned char * buffer,
const size_t bufsize,
const size_t fix_size )

Utility function to get fixed data item size.

◆ ast_dataitem_get_size_fixed_12_byte()

size_t ast_dataitem_get_size_fixed_12_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_fixed_1_byte()

size_t ast_dataitem_get_size_fixed_1_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_fixed_2_byte()

size_t ast_dataitem_get_size_fixed_2_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_fixed_3_byte()

size_t ast_dataitem_get_size_fixed_3_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_fixed_4_byte()

size_t ast_dataitem_get_size_fixed_4_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_fixed_5_byte()

size_t ast_dataitem_get_size_fixed_5_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_fixed_6_byte()

size_t ast_dataitem_get_size_fixed_6_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_fixed_7_byte()

size_t ast_dataitem_get_size_fixed_7_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_fixed_8_byte()

size_t ast_dataitem_get_size_fixed_8_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_fixed_9_byte()

size_t ast_dataitem_get_size_fixed_9_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_12_byte()

size_t ast_dataitem_get_size_rep_12_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_15_byte()

size_t ast_dataitem_get_size_rep_15_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_1_byte()

size_t ast_dataitem_get_size_rep_1_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_21_byte()

size_t ast_dataitem_get_size_rep_21_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_256_byte()

size_t ast_dataitem_get_size_rep_256_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_2_byte()

size_t ast_dataitem_get_size_rep_2_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_3_byte()

size_t ast_dataitem_get_size_rep_3_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_4_byte()

size_t ast_dataitem_get_size_rep_4_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_5_byte()

size_t ast_dataitem_get_size_rep_5_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_64_byte()

size_t ast_dataitem_get_size_rep_64_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_6_byte()

size_t ast_dataitem_get_size_rep_6_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_rep_8_byte()

size_t ast_dataitem_get_size_rep_8_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_repeat()

size_t ast_dataitem_get_size_repeat ( const unsigned char * buffer,
const size_t bufsize,
const size_t unit_size )

Utility function to get repeated dataitem size.

◆ ast_dataitem_get_size_var_11_byte()

size_t ast_dataitem_get_size_var_11_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_var_12_byte()

size_t ast_dataitem_get_size_var_12_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_var_16_byte()

size_t ast_dataitem_get_size_var_16_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_var_1_byte()

size_t ast_dataitem_get_size_var_1_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_var_23_byte()

size_t ast_dataitem_get_size_var_23_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_var_2_byte()

size_t ast_dataitem_get_size_var_2_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_var_3_byte()

size_t ast_dataitem_get_size_var_3_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_var_4_byte()

size_t ast_dataitem_get_size_var_4_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_var_5_byte()

size_t ast_dataitem_get_size_var_5_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_var_6_byte()

size_t ast_dataitem_get_size_var_6_byte ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_var_unlimited()

size_t ast_dataitem_get_size_var_unlimited ( const unsigned char * buffer,
const size_t bufsize )

◆ ast_dataitem_get_size_variable()

size_t ast_dataitem_get_size_variable ( const unsigned char * buffer,
const size_t bufsize,
const size_t max_size )

Utility function to get FX extendable data item size.

◆ ast_dataitem_get_summary()

void ast_dataitem_get_summary ( char * summary,
const size_t summary_size,
const ast_dataitem_t di )

Function to get summary of one dataitem.

Parameters
summaryBuffer to save the summary string
summary_sizeBuffer size
diDataitem

Summary is a human readable string including the main data of dataitem

Examples
example.c.

◆ ast_dataitem_type_to_str()

const char * ast_dataitem_type_to_str ( const ast_dataitem_type_t type)

Convert from ast_dataitem_type_t to C string.

Parameters
typeData item type
Returns
string like "I001/010";
Examples
example.c.
Here is the call graph for this function:
Here is the caller graph for this function: