summaryrefslogtreecommitdiff
path: root/src/ivicore/doc/src/qtivi.qdoc
blob: 697594e0eed8899b782e8fa1a66f206366d6eada (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
/****************************************************************************
**
** Copyright (C) 2019 Luxoft Sweden AB
** Copyright (C) 2018 Pelagicore AG
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the QtIvi module of the Qt Toolkit.
**
** $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 qtivi-index.html
    \title Qt IVI
    \brief Overview of the Qt IVI Module

    The Qt In-Vehicle Infotainment (IVI) module provides both, the tools and the core APIs, for you
    to implement Middleware APIs, Middleware Backends, and Middlware Services. The
    \l{Qt IVI Generator} provides a flexible way to define new APIs via an Interface Definition
    Language (IDL) and generate classes for use, from C++ and QML.

    Qt IVI is built around a pattern that separates the API exposed to the application developer,
    the so called \e {feature}, and the code that implements it, the \e {backend}. There can be
    multiple backends per feature; the Core module provides support for finding the corresponding
    backend in an easy-to-use way.

    The following diagram illustrates the generic architecture in Qt IVI: Middleware API,
    Middleware Backend, and Middleware Service.

    \image qtivi-overview.png "Qt IVI Architecture"

    This pattern of separation is necessary to drive the following use cases:

    \list
    \li Early development - where the UI can rely on a feature with a basic backend implementation.
    \li Testing and Simulation - where the backends can be tested separately from the app and the
        app can be tested using a specialized testing backend.
    \li Targets with different hardware configurations - where certain parts of the system are
        represented by simulated backends while others use a real hardware integration.
    \li Dynamic services - when services are only available intermittently, with backends that come
        and go over time.
    \endlist

    The following are some key topics that provide more details on the Qt IVI module:

    \list
       \li \l{Installation}
       \li \l{Configuration}
       \li \l{Concepts and Architecture}
       \li \l{Get Started with the Qt IVI Generator}
       \li \l{Qt IVI Generator Tutorial}
       \li \l{Extending Qt IVI}
    \endlist

    \section1 Reference APIs

    In addition to the tools and core APIs, the Qt IVI module also provides an extendable set of
    reference APIs for automotive features. This module can be used to develop automotive
    applications and to provide automotive features to Qt-based applications in a structured
    manner. This reference API already contains some simulation backends, which provide partially
    simulated behavior of a real middleware service.

    \list
    \li \l{Use the Qt IVI Reference API}
    \li \l{QtIvi Backends}
    \endlist

    \section1 Getting Started with the Qt IVI Reference API

    \list
      \li \l {Qt IVI Vehicle Functions C++ Classes#Getting Started}
             {Getting started with Qt IVI Vehicle Functions (C++)}
      \li \l {Qt IVI Vehicle Functions QML Types#Getting Started}
             {Getting started with Qt IVI Vehicle Functions (QML)}
    \endlist

    \section1 Reference

    \list
      \li \l {Qt IVI C++ Classes}
      \li \l {Qt IVI QML Types}
      \li \l {Qt IVI Examples}
    \endlist

    \section1 Licenses and Attributions

    Qt IVI is available under commercial Qt Automotive Suite licenses.
    In addition, it is available under the \l{GNU Lesser General Public License, version 3}, or
    See \l{Qt Licensing} for further details.

    Executables on Windows potentially link against \l{The qtmain Library}. This library is available
    under commercial licenses, and in addition under the \l{BSD 3-clause "New" or "Revised" License}.

    Furthermore Qt IVI potentially contains third party modules under following
    permissive licenses:

    \generatelist{groupsbymodule attributions-qtivi}

*/