Eclipse Automotive API Framework
Welcome to the Git repository of theThis space is where the implementation of our Vehicle Application Framework (VAF) is versioned and maintained.
Repository contents
-
📂 .devcontainer
VS Code development container configuration file for contributors of this project. -
📂 .vscode
Tasks, scripts, and settings for easier development in VS Code. -
📂 Container
Dockerfile recipe for the container image that is supposed to be provided to users of the framework. -
📂 Demo
Several demo projects with sample files that demonstrate the usage of the VAF. -
📂 Documentation
The VAF technical documentation. -
📂 SwLibraries
Libraries in C++ (the current main target programming language of this project). -
📂 Tools
Project-related tools. -
📂 VAF
The actual implementation of the framework. Includes model, Configuration as Code, importers, CLI tooling, and code generators.
Getting started
Please check, which role applies to you and follow the provided instructions to get started...
Application Framework user
- Make sure Docker is installed on your machine. Otherwise, please follow the instructions in: Install Docker using the apt repository.
- Optional step if you are working in a corporate environment with a SSL proxy server. Modify the eclipse.Dockerfile in lines 35 ff. and insert your SSL proxy settings.
- Start the
build.sh
script in the Container folder to create the image. - Check out the different example projects that are provided in Demo. Each demo comes with a detailed step-by-step tutorial.
- Start own projects based on the VAF.
In case of feedback do not hesitate to get back to us. Or, even better, become a contributor yourself and join us on the development of the Vehicle Application Framework!
Project contributor
To make development easier, a devcontainer is also provided for project contributors. It contains all the necessary dependencies and development tools to contribute to this project. It includes also all runtime dependencies to use VAF itself in this container. The dockerfile and the corresponding devcontainer configuration are located in the .devcontainer directory.
At the bottom of the configuration file are some commented templates to mount your ssh config and root CA certificates from your host into the container. The latter might be necessary if you are working in a corporate environment with a SSL proxy server. The Dockerfile itself must also be adapted if an SSL proxy server is available. To do this, adapt lines 42 ff. according to your requirements.
The project uses Conan
to manage C++ dependencies. Since there are no prebuilt packages available
in the public Conan center for the used compiler settings, the packages are built as the last step
of the dockerfile. This avoids a long wait when (re-)creating a new container.
ℹ️ Note
On first start of the devcontainer it will take a few minutes, depending on your machine, to build all the Conan dependencies.
Building vaf-cli
The VAF CLI program uses pdm
as build tool. To install VAF in your container, go to the ./VAF
directory and run:
pdm install
This will install the Python packages as symlinks to the repository so you don't have to re-install
them every time you make a change. This step creates a virtual environment that should be selected
as the Python environment in VS Code to enable IntelliSense. When working in a terminal window, the
virtual environment must be activated. To do this, execute the following command in the ./VAF
directory:
source .venv/bin/activate
The VAF supports bash completion. To enable it, activate the virtual environment as described above. Then execute the following commands:
mkdir -p ~/.local/share/bash-completion/completions
_VAF_COMPLETE=bash_source vaf > ~/.local/share/bash-completion/completions/vaf.sh
source ~/.local/share/bash-completion/completions/vaf.sh
Building vafcpp
The C++ library vafcpp
uses Conan
as its build tool. To build an updated package, you can use
the included Rakefile. Run rake prod:install:vafcpp
in the project root directory. By default, the
version number stored in the version.txt file is used for the Conan package. This can
be overridden with the following syntax: rake prod:install:vafcpp[0.6.0]
.
Note that each VAF project lists its dependencies in the conanfile.py
, which also includes a
reference to a specific version of this package. If you want to test changes with a different
version number, you need to update it accordingly. To update the version number in the template for
new projects, use the rake task rake prod:patch:project_vafcpp_version[version]
in the project
root directory.
ℹ️ Hint
To list all available rake tasks, runrake --tasks
in the project root directory.
Related projects
This project makes use of the following open-source projects:
- expected by TartanLlama available under CC0 1.0 Universal License
- Vector SIL Kit available under MIT License
Other dependencies via Conan include: