Adaptive-AUTOSAR
Adaptive AUTOSAR is a simulated Adaptive Platform enviroment over Linux defined by AUTOSAR. The goal of this project is to implement the interfaces defined by the standard for educational purposes. For more information, please refer to the project Wiki.
Dependecies
It will be tried to use minimum number of dependencies as much as possible. The current dependencies are as follows:
- Cpp Standard: 14
- Cmake mimimum version: 3.14
- Compiler:
- GCC C/C++ Compiler (x86-64 Linux GNU): 11.2.0; or
- Clang C/C++ Compiler (x86-64 PC Linux GNU): 14.0.0
- Google Test: v1.12.1
- pugixml 1.13 (3rd party C++ libary)
- libcurl 7.88.0 (3rd party C libary)
- JsonCpp 1.9.5 (3rd party C++ library)
- Async BSD Socket Lib (in-house C++ libary)
- OBD-II Emulator (in-house C++ emulator)
- DoIP Lib (in-house C++ libary)
Build
Compiler debug configuration
- GCC:
cmake -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/x86_64-linux-gnu-gcc-11 -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/x86_64-linux-gnu-g++-11 -S . -B build
- Clang:
cmake -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/clang-14 -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/clang++-14 -S . -B build
Compiling
cmake --build build
Unit tests running
cd build && ctest
Run
To run the Adaptive AUTOSAR simulation, launch the following executable by passing the execution manifest file path as the argument:
./build/adaptive_autosar ./configuration/execution_manifest.arxml ./configuration/extended_vehicle_manifest.arxml ./configuration/diagnostic_manager_manifest.arxml ./configuration/health_monitoring_manifest.arxml
Then the executable will ask for:
- First, the VCC API key;
- And then the test access OAuth 2.0 token;
in order to connect to the Volvo Extended Vehicle RESTful API. To create the API key and the access token, you can follow this tutorial.
⚠️ Due to security reasons, the terminal echo is temporarily disabled while typing the key and the token.
Documentation
Please refer to the project GitHub pages powered by Doxygen.
Contribution
Please refer to the contributing page.