Releases: szpajder/libacars
Releases · szpajder/libacars
Version 2.2.0
- Support for decoding OHMA messages. These are diagnostic data exchanged with
Boeing 737MAX aircraft. Decoding requires libacars to be built with ZLIB
support. The data is encoded in JSON which libacars might optionally
pretty-print, when serializing the message as text. Pretty-printing feature
requires Jansson library. - Support for compilation with MSVC (thx John Beniston).
Version 2.1.4
- Fix compile error under MS Visual C++ caused by
struct timeval
being defined inwinsock.h
rather thansys/time.h
(thx Jon Beniston) - Fix compile error under GCC >= 10 (multiple definitions of
asn_debug_indent
) - Fix for cmake >=3.17 not finding zlib1.dll when building with MinGW.
Version 2.1.3
- Fixed incorrect calculation of reporting interval in ADS-C Periodic
Contract Requests. Reported by Roman Tordia.
Version 2.1.2
- Fixed a build failure when compiling without libxml2 support.
Version 2.1.1
- Media Advisory: fixed a bug where a message with 10 or more available link
indicators could overflow the static buffer and produce garbled result (thx
mmiszewski). - Media Advisory: fixed a bug where a message with an exceptionally long text
field could cause buffer overrun and crash the program (thx mmiszewski). - Media Advisory: replaced message parsing routine with a simpler and more
robust one.
Version 2.1.0
- ADS-C: fixed incorrect computation of vertical speed threshold in contract
request messages. - JSON: fixed a bug where an ASN.1 string containing a \0 character caused
truncation of JSON output. NULLs in strings are now replaced with \u0000
sequence. - JSON: ASN.1 SEQUENCEs are now printed as JSON objects rather than arrays of
objects. It produces a simpler and more readable JSON structure. The change
applies to all ASN.1 types formatted with
la_asn1_format_SEQUENCE_cpdlc_as_json
function. Refer to
asn1-format-cpdlc-json.c
file for a full list. - JSON: added
json_append_octet_string_as_string
function which prints the
contents of the given byte buffer as a JSON string rather than as a list of
numeric values. - JSON: added a bunch of new functions for formatting basic ASN.1 types. Now we
have them all in libacars. Before that they were scattered between libacars
and dumpvdl2. - JSON: deprecate
la_json_append_long
function. A more portable version named
la_json_append_int64
shall be used instead. - Small bugfixes, code cleanups.
Version 2.0.1
- Fixed a bug causing FANS1/A ErrorInformation message elements to be decoded incorrectly.
Version 2.0.0
- New major release 2. API and ABI are not backwards compatible with version 1,
hence the new soname - libacars-2.so.2. Header files are now installed to
/usr/local/include/libacars-2. New pkg-config script libacars-2.pc provides
updated compiler and linker flags. Version 2 can be installed in parallel with
version 1. - New feature: generic engine for reassembly of fragmented messages. Supports
automatic tracking of fragments' sequence numbers (with possible wraparounds),
handles reassembly timeouts and fragment deduplication. Messages can be keyed
with arbitrary data (eg. custom header fields). - New feature: automatic reassembly of ACARS messages. New function
la_acars_parse_and_reassemble
performs both parsing and reassembly, while
existingla_acars_parse
function performs parsing only and works as before. - New feature: automatic reassembly of MIAM file transfers. New function
la_miam_parse_and_reassemble
performs both parsing and reassembly, while
existingla_miam_parse
function performs parsing only and works as before. - New feature: pretty-printing of XML text in ACARS and MIAM CORE payloads.
If the message text is identified as XML (ie. it parses without errors),
la_acars_format_text
andla_miam_core_format_text
routines will print
it with proper indentation for better readability. The feature is optional,
depends on libxml2 and must be turned on by settingprettify_xml
configuration variable totrue
. - New feature: simple hash table implementation. Mostly used for libacars internal
purposes, but it's exposed in the API and can be used for any purpose. - New feature: when compiled with debugging support, debug output to stderr is
now configurable withLA_DEBUG
environment variable. Set it to the desired
verbosity level - from 0 (none) to 3 (verbose). The default is 0 (debug output
suppressed). - Incompatible change: new library configuration API.
la_config
structure
with static fields has been removed. Configuration variables are now
stored in a hash table, read withla_config_get_*
and set with
la_config_set_*
functions. Refer todoc/API_REFERENCE.md
for details.
Refer tolibacars/config_defaults.h
for the most current list of
configuration options and their default values. - Incompatible change: ACARS parser now strips sublabel and MFI (Message
Function Identifier) fields from the message text, if present. Their values are
stored inla_acars_msg
structure insublabel
andmfi
fields. In text
and JSON output they are printed as separate fields. - Incompatible change: MIAM parser and ARINC-622 ATS message parser now expect
sublabel and MFI fields to be stripped by the caller, otherwise the parser
will ignore the message. This operation can be performed with minimal fuss
usingla_acars_extract_sublabel_and_mfi
function. - Incompatible change:
la_miam_parse
function prototype has changed. All
parameters excepttxt
(message text) have been removed. - Incompatible change:
no
field ofla_acars_msg
structure has been removed.
MSN is now stored in two fields:msg_num
(first three characters)
andmsg_num_seq
(last character, ie. sequence indicator). - Incompatible change: Media Advisory message timestamp and version are now
stored as numbers, not characters. Type ofhour
,minute
,second
and
version
fields inla_media_adv_msg
structure has been changed fromchar[]
touint8_t
. Relevant JSON keys have changed types as well. - Incompatible change:
state
andcurrent_link
fields inla_media_adv_msg
structure changed fromchar[2]
tochar
, hence their values are no longer
NULL-terminated. - examples: media_advisory app has been removed. Use decode_acars_apps instead.
- Bugfixes, code cleanups.
Version 1.3.1
- Binary releases for Windows were mistakenly built with AVX instruction set enabled which caused the lib to fail on older CPUs (#3). Thanks to G7GQW for reporting and to Jonti Olds for analysis.
- Downgraded optimization level for release builds from -O3 to -O2 to reduce chances of similar problems for cross-platform builds.
Version 1.3.0
- JSON output support for all message types. Any protocol tree can be serialized into a JSON string with
la_proto_tree_format_json()
function. Functions for serializing each individual message type into JSON are provided as well. Refer todoc/API_REFERENCE.md
for details. decode_acars_apps
application now supports both human readable and JSON output. To enable JSON output, setLA_JSON
environment variable to any value. IfLA_JSON
is not set, the program displays human readable output.- Small bugfixes in ACARS and MIAM decoders.