Table of contents
The API is divided into
capabilities that group together APIs with similar semantics.
.yml spec files define each capability (API).
A capability could have:
- state - transmitted from the vehicle to a connected device
- getters - requesting information from the vehicle
- setters - sending commands to the vehicle
Every capability defines a set of
properties that are grouped together to create the API components (commands) above.
Properties are used as the basic building blocks to transmit data and can additionally consist of failure and/or timestamp components.
Each property defines itself with:
- identifier - property ID that's unique in a capability (also used to request specific data from the vehicle)
- size - size of the components
- components... - like data and timestamp
Please find more info about the properties in the spec.
Generatable: From version L11, the spec is written to encourage automatic generation of platform native libs (by creating a parser for that).
Dynamic: The definitions can be easily updated and dependent libs regenerated. When only adding capabilities and properties - older libs-parsers work as before.
Modular: The data flow is designed to be modular, while still trying to keep the package size small for the benefit of low-bandwith connections.
Documentation at high-mobility.com is also generated based on this spec and combines all the information into a more readable form.
When not implementing this spec directly, the site above is recommended as the main reference point to the API.
See more in CONTRIBUTING.md
This repository is using MIT license. See more in LICENSE