Qt Automotive Suite Overview
Qt Automotive Suite comprises of several components built on Qt and Qt Creator. The following diagram illustrates the structure and environment of Qt Automotive Suite, particularly the Application Manager, Qt IVI, QmlLive, GammaRay, and QtIVI Emulation.
Qt and Qt for Device Creation
Qt Automotive Suite is built on top of the Qt for Device Creation offering, which includes Qt and an embedded development environment built around Qt Creator. This environment, called Boot to Qt, is a light-weight software stack that supports building your own highly-customized Linux image.
The Qt libraries provide high-level APIs for a large variety of both non-GUI and GUI related functionality. For UI creation, Qt provides three options: traditional C++, declarative UI design with Qt Quick, or HTML5/hybrid user interfaces with the Qt WebEngine module.
For an overview of Qt libraries, see the Qt Reference Documentation.
Qt modules that are useful for embedded and IVI application development include:
- Qt Virtual Keyboard - a complete virtual keyboard solution with support for predictive-text and multiple languages.
- Qt Quick Controls 2 - a set of controls for building complete user interfaces in Qt Quick.
- Qt Quick Compiler - enables compiling
.qml
source files into application binaries, improving load times and security for code assets. - Qt WebEngine - a web browser engine based on the Chromium project.
Development Environment
The development environment in Qt Automotive Suite is built with Qt Creator. The following topics provide more information about Qt Creator:
Qt Automotive Suite comes with additional functionality for diagnostics and debugging, as well as deployment:
GammaRay
GammaRay is a plugin for Qt Creator that provides software introspection for Qt applications. It allows visualization of application behavior and manipulating it at run-time, both locally and remotely on an embedded target.
QmlLive
QmlLive provides a live reloader environment for rapid development of Qt Quick applications, dramatically reducing the time it takes to deploy and test changes in the UI design.
Qt Safe Renderer
The Qt Safe Renderer module provides a UI rendering component that can be used to render safety-critical items, such as warning indicators, in functional safety systems. Qt Safe Renderer separates the safety-critical rendering from the other parts of the system. This ensures that Qt Safe Renderer is able to render the safety-critical UI elements even if there are failures in the main UI. With separation, Qt can be used in a system requiring certification without changing the Qt libraries.
Qt Design Studio
Qt Design Studio is a UI design and development environment for rapid prototyping of animated UIs. It provides you with tools for accomplishing your tasks throughout the whole application design process, from prototyping to production.
Qt 3D Studio
Qt 3D Studio is an artist-centric tool designed for designing and building rich interactive interfaces. Though there is a strong emphasis on 3D content - all objects are placed in three dimensional space - it is not a 3D content creation tool. It is also not a drawing program, though it uses 2D images and vectors heavily. Studio is a compositing tool.
You can create your 2D, 3D, and script assets in other programs and then use Qt 3D Studio to place them in your presentation.
Deployment
Device deployment can be done directly from the Qt Creator IDE to a device connected via USB or local area network, or to an emulator running the same, full software stack as the devices.
As with any Qt application, the same project can be deployed to desktop or target devices as well.
Automotive APIs
The Qt IVI module provides C++ and QML interfaces for accessing vehicle features, and also enables implementing new IVI features. Already defined interfaces from the GENIVI alliance are exposed in the Qt GENIVI Extras module.
Reference Applications
Qt Automotive Suite includes Neptune 3 UI that provides a UI implementation for Qt in IVI (In-Vehichle Infotainment) systems. It demonstrates best practices for developing an automotive UI with Qt Automotive Suite.
Qt Application Manager
Qt Application Manager provides a basis for a multi-application embedded system. It takes care of the application lifecycle management. Qt Application Manager provides an API for implementing a UI and its application logic separately.
Qt Creator contains a Qt Application Manager plugin that facilitates the development of 3rd party applications within a Qt Application Manager setup by automating the underlying processes.
Qt Automotive Suite Deployment Server is a lightweight HTTP server for installing application packages by a Qt Application Manager instance. The UI counterpart for the Deployment Server is the Downloads app in the Neptune 3 UI.
© 2020 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.