aboutsummaryrefslogtreecommitdiffstats
path: root/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc
blob: db2d788fd2199fb5eb2f638df38ea55cf5a549e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
/****************************************************************************
**
** Copyright (C) 2018 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Automotive Suite.
**
** $QT_BEGIN_LICENSE:FDL-QTAS$
** Commercial License Usage
** Licensees holding valid commercial Qt Automotive Suite licenses may use
** this file in accordance with the commercial license agreement provided
** with the Software or, alternatively, in accordance with the terms
** contained in a written agreement between you and The Qt Company.  For
** licensing terms and conditions see https://www.qt.io/terms-conditions.
** For further information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
    \page qtautomotive-index.html
    \title Qt Automotive Suite
    \nextpage {Qt Automotive Suite Overview}{Overview}

    \e {\QAS} is a collection of software components and tools to enable
    development of \e In-Vehicle-Infotainment (IVI) systems. Built on top
    of the \l {Qt for Device Creation} offering and compliant with the
    \l GENIVI automotive platform architecture, \QAS includes an embedded
    development environment with additional tools for rapid UI development,
    as well as application introspection and debugging.

    \QAS comes with libraries and ready-made components, as well as hardware
    adaptation APIs for creating full-featured IVI solutions. In addition,
    it includes a reference UI for embedded platforms, and reference
    IVI applications and application store implementations.

    \section1 Contents

    \include qtas-common.qdocinc qtas contents

    \section1 Components

    \list
        \li \l {Qt for Device Creation}
        \li \l {Qt GENIVI Extras}{Qt GENIVI Extras Module Reference Documentation}
        \li \l {Qt IVI}{Qt IVI Module Reference Documentation}
        \li \l {Qt Application Manager}
        \li \l {Qt Automotive Suite Deployment Server}
        \li \l {Qt QmlLive}
        \li \l {Qt Safe Renderer}
        \li \l {Qt Design Studio}
        \li \l {Qt 3D Studio}
        \li \l {Qt Creator Application Manager Plugin}
        \li \l {Neptune 3 UI}{Reference UI (Neptune 3 UI)}
        \li \l {GammaRay}
    \endlist
*/

/*!
    \page qtas-overview.html
    \title Qt Automotive Suite Overview
    \previouspage {Qt Automotive Suite}
    \nextpage {Install Qt Automotive Suite}

    \QAS comprises of several components built on Qt and \l {Qt Creator}. The
    following diagram illustrates the structure and environment of \QAS,
    particularly the \e {Application Manager}, \e{Qt IVI}, \e{QmlLive},
    \e{GammaRay}, and \e{QtIVI Emulation}.

    \image qtas-architecture.png

    \section1 Qt and Qt for Device Creation

    \QAS is built on top of the \l {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 \l {Qt Quick}, or
    HTML5/hybrid user interfaces with the \l {Qt WebEngine} module.

    For an overview of Qt libraries, see the \l {Qt Reference Documentation}.

    Qt modules that are useful for embedded and IVI application development
    include:

    \list
        \li \l {Qt Virtual Keyboard} - a complete virtual keyboard solution with
            support for predictive-text and multiple languages.
        \li \l {Qt Quick Controls 2} - a set of controls for building
            complete user interfaces in Qt Quick.
        \li \l {Qt Quick Compiler} - enables compiling \c{.qml} source files into
            application binaries, improving load times and security for code
            assets.
        \li \l {Qt WebEngine} - a web browser engine based on the
            \l {https://www.chromium.org}{Chromium} project.
    \endlist

    \section1 Development Environment

    The development environment in \QAS is built with \l {Qt Creator}.
    The following topics provide more information about Qt Creator:

    \list
      \li \l {Qt Creator: Developing Qt Quick Applications}
      \li \l {Qt Creator: Analyzing Code}
      \li \l {Qt Creator: Debugging}
    \endlist

    \QAS comes with additional functionality for diagnostics and debugging,
    as well as deployment:

    \section1 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.

    \section1 QmlLive

    \l{Qt 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.

    \section1 Qt Safe Renderer

    The \l{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.

    \section1 Qt Design Studio

    \l {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.

    \section1 Qt 3D Studio

    \l{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.

    \section1 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 \l{Emulator}{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.

    \section1 Automotive APIs

    The \l {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
    \l {Qt GENIVI Extras} module.

    \section1 Reference Applications

    \QAS includes \l{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 \QAS.

    \section1 Qt Application Manager

    \l {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
    \l{Qt Creator Application Manager Plugin}{Qt Application Manager} plugin
    that facilitates the development of 3rd party applications within
    a Qt Application Manager setup by automating the underlying processes.

    \l {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 \e Downloads app in
    the Neptune 3 UI.
*/

/*!
    \page qtas-install.html
    \title Install Qt Automotive Suite
    \previouspage {Qt Automotive Suite Overview}{Overview}
    \nextpage qtautomotive-tutorial-deploying.html

    \QAS is a commercial product and requires a license to install and
    explore its possibilities. Use the guide on the
    \l{Download Qt} page to find the license that suits your need. The license you
    buy is associated with a Qt Account, which is required to install the product.

    \section1 Supported Target Devices and Development Hosts

    \l {Supported Target Devices} lists the target devices supported by \QAS.

    \l {Supported Development Hosts} lists the development hosts supported by \QAS.

    \section1 Prerequisites

    \QAS is based on the \l {Qt for Device Creation} offering so the
    prerequisites are identical. For more information about how to install and
    configure these prerequisites on your development host, see
    \l {Requirements for Linux/X11} and \l {Requirements for Windows}.

    \section1 Install \QAS

    When you install \QAS, you can select which \QAS components, SD-card
    images, and toolchains to install. To use the \QAS components on your host system, you also
    need to have a proper Qt version installed. Consequently, when you install any of the
    \QAS components, the suitable Qt version is automatically installed.

    You can install \QAS as follows:

    \list 1
     \li Download the \l{Qt Online Installer Download}{Qt online installer}.

     \note On Linux, the installer needs executable permissions before you
     can run it.

     \li Run the installer and select \uicontrol Next to get to the Qt account
     section.

     \li Enter your Qt account credentials and select \uicontrol Next to run
     a license check against the Qt account.

     \li Select \uicontrol Next again to choose an install path.

     \li Select \uicontrol Next to see the packages available to install from.

     \li Under \uicontrol{Qt Automotive Suite}, you can see the Qt for Automotive Suite
     software stacks available. Under the stack, select the components and your hardware.

     \li Select \uicontrol Next and follow the instructions to complete
     the installation.

     \borderedimage qtinstaller-qas.png
    \endlist

    \note On macOS, currently only local development is supported.

    \section1 Install \B2Q on Target Devices

    Before you can test \QAS applications on the target device, you must
    flash the target device with an image containing the \B2Q stack. Follow the
    steps in the target device guide:

    \list
        \li \l{Intel NUC}
        \li \l{NVIDIA Jetson TX2}
        \li \l{Toradex Apalis iMX6}
    \endlist

    Once the installation is complete, start Qt Creator and try running one of the
    examples against an automotive target. With \l{Neptune 3 UI} you can test
    the reference UI for Qt in IVI. For more information,
    see \l{Neptune 3 UI Insights}.
*/