This is the multi-page printable view of this section. Click here to print.
Prototyping
1 - digital.auto
The open and web based digital.auto offers a rapid prototyping environment to explore and validate ideas of a Vehicle App. digital.auto interacts with different vehicle sensors and actuators via standardized APIs specified by the COVESA Vehicle Signal Specification (VSS) without custom setup requirements. Within the platform you can:
- browse, navigate and enhance vehicle signals (sensors, actuators and branches) in the Vehicle API Catalogue mapped to a 3D model of the vehicle.
- build Vehicle App prototypes in the browser using Python and the Vehicle API Catalogue.
- test the Vehicle App prototype in a dashboard with 3D animation for API calls.
- create new plugins, which usually represent UX widgets or remote server communication to enhance the vehicle mockup experience in the playground.
- collect and evaluate user feedback to prioritize your development portfolio.
Start the journey of a Vehicle App
As first step open digital.auto , select Get Started in the prototyping section of the landing page and use the Vehicle Model of your choice.
You now have the possibility to browse existing vehicle signals for the selected vehicle model which you can use for prototyping your Vehicle App by clicking on Vehicle APIs.
Add additional Vehicle APIs
If the ideation of your Vehicle App prototype comes with any new Vehicle API which is not part of the standard VSS you also have the option to include it into your pre-selected model by clicking the + New Wishlist API button. After filling out all required fields, simply click the create button - this will commit the new API to the existing model.
Note
For this feature, a digital.auto account is required. Get in touch with us or the digital.auto team in case you want to explore this feature.Prototype an idea of a Vehicle App
The next step would be to prototype your idea. To do so:
- Click on Prototype Library of your selected model.
- Create a new prototype, by clicking on New Prototype and filling out the information or select one from the list.
- Click on the Open button.
- Go to the Code section and start your prototype right away.
Test the prototype of a Vehicle App
Testing of your prototype starts in the Run section. You will find a dashboard consisting all vehicle and application components similar to mockups. The control center on the right side has an integrated terminal showing all of your prototyped outputs as well as a list of all called VSS API’s. The Run button executes all your prototype code from top to bottom. The Debug button allows you to step through your prototype line by line.
To get started quickly, the digital.auto team has added a number of widgets to simulate related elements of the vehicle – like doors, seats, light, etc. – and made them available in the playground.
Feel free to add your own Plugins with widgets for additional car features (maybe an antenna waving a warm “welcome”…?).
Transfer your prototype into a Velocitas Vehicle App
In the previous steps you started with envisioning and prototyping your Vehicle App idea and tested it against mocked vehicle components in digital.auto. The Velocitas team provides a project generator to transfer the prototype from digital.auto into your own development environment where you are able to test it with real Vehicle Services . The generator creates a Vehicle App GitHub repository using your prototype code based on our vehicle-app-python-template . In the ‘Code’ section of your prototype in digital.auto you have the button ‘Create Eclipse Velocitas Project’.
After pressing the button you will be forwarded to GitHub . Login with your GitHub Account and authorize velocitas-project-generator to create the repository for you. You will be redirected to digital.auto and asked for a repository name (equals to the name of the Vehicle App). By clicking on “Create repository”:
- the project generator takes over your prototype code.
- the code is adapted to the structure in the vehicle-app-python-template .
- a new private repository under your specified GitHub User will be created.
A successful generation of the repository is followed by a pop-up dialogue with the URL of your repository.
Among other things the newly created repository will contain:
Files | Description |
---|---|
/app/src/main.py | Main class of the Vehicle App, containing your modified prototype code |
/app/AppManifest.json | Settings file defining required services |
/app/requirements.txt | Requirements file defining all Python dependencies |
/.devcontainer/ | Required scripts and settings to setup the devcontainer in Microsoft Visual Studio Code |
/.github/workflows/ | All required CI/CD pipelines to build, test and deploy the Vehicle App as container image to the GitHub container registry |
/gen/vehicle_model/ | The generated model classes. If your prototype includes any exceptional API you added beforehand our automated vehicle model lifecycle takes care of handling the custom VSS vspec file coming from digital.auto and generates a vehicle_model when starting the devContainer |
Your prototype Vehicle App transferred into a GitHub repository is now ready to be extended. Clone your newly created repository and open the Vehicle App in Microsoft Visual Studio Code and start to extend it.
You can proceed with the following topics:
2 - Service Integration
Services can make sure, that when you write a VSS data point, something is actually happening. Eclipse Velocitas has an example seat or hvac service. If your Vehicle App makes use of e.g. Vehicle.Cabin.Seat.Row1.Pos1.Position
or other seat/hvac specific data points you are in for some real action. To learn more, visit
Vehicle Services
.
Our maintained
devenv-runtimes
package (
Velocitas Lifecycle Management
) comes with the support of adding further Vehicle Services to the runtime.json
of a package. More information
here
.
Modify existing services
For more advanced usage you can also try to modify existing services. Check out the seat service for example, modify it and integrate it into your Vehicle App repository.
Create your own services
If you want to create your own service the KUKSA Incubation repository contains examples illustrating how such kind of vehicle services can be built. You need to write an application that talks to KUKSA listening to changes of a target value of some VSS data point and then do whatever you want. You can achieve this by using the KUKSA gRPC API with any programming language of your choice (learn more about gRPC ).
Mock Provider and Mock Provider Integration
The Vehicle Mock Provider is a dummy service allowing to control all specified actuator- and sensor-signals via a configuration file. These configuration files are expressed in a Python-based domain-specific language (DSL). The default behavior is predefined in mock.py
The Mock Provider is already integrated in all our
Vehicle Runtimes
. To be able to configure it, you need to add a custom mock.py
in the root of your Vehicle App Project. The Mock Provider Container will pick it up automatically.