Technical Information: What's in the Qt Automotive Suite?
The Qt Automotive Suite takes the regular Qt frameworks and tools and extends them to a package tailored to the needs of automotive HMI projects. The following provides an overview of the components included in the Qt Automotive Suite.
All of Qt
Qt Automotive Suite contains all of Qt, so you get all the good things Qt offers:
- GPU accelerated UI for smooth 60fps experience even on high resolution screens
- cross-platform development to not restrict your development team by the availability of target hardware, and to retain platform vendor independence
- seamless integration of 2D and 3D HMI content
- 2D CPU-only renderer for low-end product variants
- complete internationalization and localization infrastructure supporting dynamic language changes and RTL layouts
- Chromium-based web engine
- support for Bluetooth, GPS, multimedia, virtual keyboard, and much more
Further, the Qt Automotive Suite is based on Qt for Device Creation, which provides:
Additional Qt Modules
On top of the regular Qt, the Qt Automotive Suite provides a number of additional functionality specifically tailored to automotive needs.
QtIvi provides additional APIs commonly needed in automotive IVI or cluster systems. Since those APIs however differ slightly from project to project, a particular emphasis is put on easy extensibility/adaptability. QtIvi supports development by providing infrastructure for having multiple backends (e.g. simulation and the real hardware), as well as common diagnostic tooling.
The QtSCXML module allows you to leverage existing state charts or state chart tooling by supporting the SCXML standard. It is scalable to large state charts thanks to an optimized engine and its SCXML to C++ compiler. Like the existing QStateMachine framework, QtSCXML is supported by the visual state chart runtime diagnostic tools in GammaRay.
Qt Application Manager
The Qt Application Manager provides the infrastructure for modern multi-process IVI architectures using Wayland composition and input event handling, while at the same time having the option to scale down to single-process setups for mid-range product variants, or for convenient native development on host platforms without Wayland. The Qt Application Manager supports you with app lifecycle management and isolating and securing apps.
Qt 3D Add-ons
Qt comes with infrastructure to seamlessly integrate 2D and 3D content, as well as the Qt 3D module to easily define and interact with 3D content. Qt Automotive Suite extends Qt 3D by providing ready to use shaders for photo-realistic physics-based rendering (PBR). PBR uses material properties such as conductivity and roughness and models light behavior based on physical principals such as the conservation of energy and the Fresnel effect, achieving much more realistic looking results compared to simpler ad-hoc approaches while retaining real-time rendering performance.
Qt 3D and the PBR shaders are accompanied by the Qt 3D profiler, which helps you to identify hotspots in the heavily parallel rendering pipeline of Qt 3D.
Neptune Reference Implementation
The Qt Automotive Suite contains a reference implementation of an IVI system, called Neptune. This provides you with a complete system to start your own R&D work from, without having to deal with lots of infrastructures first, such as:
- Wayland composition and input handling
- single or multi-process architecture
- virtual keyboard integration
- 3D content integration using Qt 3D and physics-based rendering (PBR)
- Yocto recipes for easy integration with your BSP
The tooling for Qt Automotive Suite is built around Qt’s integrated development environment Qt Creator. Qt Creator provides:
- A cross-platform integrated development environment with graphical design tools and the ability to deploy/run directly on the target.
- Mixed C++/JS debugging, locally or on target.
- CPU and GPU profiling on host or on target.
- Static code analysis.
GammaRay is KDAB’s high-level runtime introspection tool for Qt applications. GammaRay allows you to inspect your running application locally or on target at the same level you design it, augmenting conventional instruction-level debugging tools. GammaRay includes a multitude of tools for various Qt frameworks:
- Qt Quick inspector for easy visual tweaking of the HMI all the way down to scene graph details to maximize rendering performance
- graphical state machine debugger for Qt state machines and QtSCXML
- Qt 3D scene graph and frame graph inspection
- inspection of QAbstractItemModel content and proxy model chains
- access to rich text layouting DOM trees
- tracking timer activity and signal emissions to identify performance issues
- runtime modification of translations
- browsing of compiled-in assets
Besides the built-in features, GammaRay is easily extensible to support custom frameworks, allowing you to create specialized tools to visualize application behavior for your specific needs.
QML Live provides you with an instant preview of the HMI code you are writing, locally or on the target. The moment you press the save button, it’ll update QML-based UI code and thus give you instant feedback on your changes, considerably reducing the usual compile/deploy cycle time, in particular, while fine-tuning visual aspects or interaction behavior on target.
Deploying a complex software development environment to a large team of engineers all over the world is a non-trivial task. The Qt Automotive Suite supports this by allowing to create custom SDKs specific to your project needs. This way you can distribute your entire development environment including Qt and other in-house or 3rdparty frameworks and your complete toolbox with a single installer. As your platform evolves, you can keep the entire team up-to-date with online updates.
Your custom SDK can be distributed to 2nd or 3rd-parties too, which helps you to avoid integration issues as the entire team including any external suppliers uses the same development environment.
Like Qt itself, the Qt Automotive Suite is developed in the open. This not only gives you complete transparency on where the Qt Automotive Suite is headed, but also the ability to influence the development with feedback and contributions yourself.