libasterix SDK
ASTERIX decoding and encoding library
Introduction
libasterix is a library for decoding and encoding data in Eurocontrol ASTERIX format.
libasterix support the following categories:
- CAT001
- CAT002
- CAT004
- CAT008
- CAT010
- CAT019
- CAT020
- CAT021
- CAT023
- CAT034
- CAT048
- CAT062
- CAT065
- CAT240
libasterix is implemented by pure C99 code, and relies only on standard C library, which means it can be easily ported to almost any platform.
libasterix is tested with the following compiler and platform:
- MSVC 2017 on Windows 10 on x86_64
- 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
Categories
The ASTERIX format defines different category for different type of surveillance.
libasterix supports all commonly used ASTERIX categories, and different versions of some category. It will continue expand its capability 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 |
CAT004 | Safety Net Messages | 1.10 | YES | NO |
CAT008 | Transmission of Monoradar Derived Weather Information | 1.0 | YES | NO |
CAT010 | Transmission of Monosensor Surface Movement Data | 1.1 | 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, 2.4 | 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.16 | YES | NO |
CAT065 | SDPS Service Status Messages | 1.2 | 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 correctly 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 standard UAP, and some widely used proprietary UAPs defined by major ATC vendors.
The supported UAPs are:
- Standard UAP
- Proprietary UAP of Raytheon radar
- Proprietary UAP of Leonardo (former Selex or Alenia) radar
- proprietary UAP of Thales ADS-B
Further more, libasterix has a feature to automatically detect and select proper UAP.
User can also implement his own UAP, to extend decoding and encoding capability of libasterix.
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