AsterixCodec
This software is an API in C++ to decode and encode ASTERIX data
Install / Use
/learn @albatross-aero/AsterixCodecREADME
AsterixCodec
This C++ project is made of a library to decode and encode ASTERIX messages and a client application, which uses the above-mentioned library.
Getting started
Prerequisites
-
GCC 7.2.0
-
CMake 3.2
-
- program_options
- serialization
Be careful that, even if the most part of Boost is a header-only library, these two are NOT and they need to be compiled on the development machine you are working with. To get a general idea about how to use them, please follow the instruction on Boost Getting Started guide.
In the next paragraph, you will find the exact command to run.
Installing
Boost v1.65.1
After you have successfully downloaded Boost v1.65.1, please follow the next steps, to successfully compile the program-options and serialization modules on your machine. Be aware that the '$' symbol represents the shell prompt and shall not be written.
-
$ cd path/to/boost_1_65_1
-
$ ./bootstrap.sh --help
The option you are going to be most interested in will be:
- --prefix=path/to/installation/prefix
- --with-libraries=program_options,serialization
-
$ ./b2 install
Boost binaries will be placed in the /lib subdirectory of your installation prefix. Moreover, in the /include subdirectory of your installation prefix a copy of Boost headers will be copied, so that you may use that directory as #include path, in place of the Boost root directory.
nlohmann_json
It is a header-only library, already included in the project, in the following path: /src/asterix_codec_lib/lib/nlohmann_json. It is used during the loading of the ASTERIX Category description JSON files.
thread_pool
It is a header-only library, already included in the project, in the following path: /src/asterix_codec_lib/lib/thread_pool. It is used to handle the multi-threading processing of the data stream.
Compiling the project
Please follow the next steps, to successfully compile AsterixCodec project on your machine (both the library and the client application). Be aware that the '$' symbol represents the shell prompt and shall not be written.
- $ cd path/to/AsterixCodec
- $ cmake .
- $ make all
Running the client application
Once you have compiled the sources, you will find in the build path the binary called AsterixCodecClient. To give it a try, please run the following command, which uses a preloaded CAT021 ASTERIX Record:
$ ./AsterixCodecClient
Be aware that the content of that Record is totally random (e.g. you will find un-acceptable coordinates values), so that you would be able to get a failure_report.log file, where all problem faced during the decoding phase are logged.
Running the tests
"Explain how to run the automated tests for this system"
Contributing
Authors
- Federico Orta (active maintainer)
- Giulia Rivella
- Nadia Berloffa
License
This project is licensed under the GNU General Public License v3.0 - see the LICENSE.md file for details
