libasterix is a library for decoding and encoding data in Eurocontrol ASTERIX format.

libasterix support the following categories:

  • CAT001
  • CAT002
  • CAT008
  • CAT019
  • CAT020
  • CAT021
  • CAT023
  • CAT034
  • CAT048
  • CAT062
  • CAT240

libasterix is implemented by pure C99 code, and relies only on standard C library.

libasterix is tested with the following compiler and platform:

  • MSVC 2015 on Windows 7/8.1/10 on x86/x86_64
  • CLANG 3.2 on Mac OS X 10.8 on x86_64
  • GCC 4.8.2 on CentOS 7.0 on x86_64
  • GCC 4.6.3 on Debian 7.0 on Raspberry Pi


The ASTERIX format defines different category for different type of surveilliance.

libasterix supports all commonly used ASTERIX categories, and differnt versions of some category. It will continue expand its capablity to support more categories in future.

The supported categories and versions are:

Category Title Version Decoding Encoding
CAT001 Monoradar Target Reports 1.0 YES YES
CAT002 Monoradar Service Messages 1.0 YES YES
CAT008 Transmission of Monoradar Derived Weather Information 1.0 YES NO
CAT019 Multilateration System Status Messages 1.2 YES NO
CAT020 MLT Messages 1.7, 1.8 YES NO
CAT021 ADS-B Messages 0.23, 0.26, 2.1 YES YES
CAT023 CNS/ATM Ground Station and Service Status Reports 1.2 YES NO
CAT034 Transmission of Monoradar Service Messages 1.27 YES YES
CAT048 Transmission of Monoradar Target Reports 1.15 YES YES
CAT062 SDPS Track Messages 1.7 YES NO
CAT240 Radar Video Transmission 1.3 YES NO
Note 1
Most categories are backward compatible, which means if the version of your data is lower or equal to the version listed in the table above, it can be correctlly decoded. CAT021 is one exception of this backward compatibility.
Note 2
Encoding support for other all categories is under active development.

User Application Profile

The ASTERIX standard defines all possible data items, but the existence and order of these data items are defined by User Application Profile (UAP).

libasterix supports all starndard UAP, and some widely used property UAPs defined by major ATC vendors.

The supported UAPs are:

  • Standard UAP
  • Property UAP of Raytheon radar
  • Property UAP of Thales ADS-B

Further more, libasterix has a feature to automatically detect and select proper UAP.

Comm-B Data Selector

libasterix is capable to decode Comm-B Data Selector (BDS) data embeded in some data items. It is useful as some important data (e.g. FMS selected altitude) is not defined by ASTERIX and the only way to retrieve it is from BDS.

The supported BDS are:

  • BDS 1,0 - Data Link Capability Report
  • BDS 2,0 - Aircraft Identification
  • BDS 3,0 - TCAS/ACAS Active Resolution Advisory
  • BDS 4,0 - Selected Vertical Intention
  • BDS 5,0 - Track and Turn Report
  • BDS 6,0 - Heading and Speed Report