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
|
// Copyright (C) 2021 The Qt Company Ltd.
// Copyright (C) 2019 Luxoft Sweden AB
// Copyright (C) 2018 Pelagicore AG
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page interfaceframework-index.html
\title Qt Interface Framework
\brief Overview of the Qt Interface Framework Module
The Qt Interface Framework module provides both the tools and the core APIs,
for you to implement Middleware APIs, Middleware Back ends, and Middleware
Services. The \l{Qt Interface Framework 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 Interface Framework consists of three types of building blocks:
\list
\li The \l{Qt Interface Framework Core C++ Classes}{core module} provides
base classes and common code for all APIs created by you, the developer.
\li The user created API definitions like a climate API or a
mediaplayer API. Each of these APIs is the second building block called
\e Features, which define the API exposed to the application developer.
\li The last block consists of a \e{back-end interface} and one or more
\e{back ends} implementing it to either connect to the underlying service
or to a simulation of it.
\endlist
Qt Interface Framework is built around a pattern that separates the \e feature
and the \b{back ends}.
There can be multiple back ends per feature; the Core module provides support
for easily finding the corresponding back end.
The following diagram illustrates the generic architecture in Qt Interface
Framework: Middleware API, Middleware Back end, and Middleware Service.
\image qtinterfaceframework-overview.png "Qt Interface Framework Architecture"
This pattern of separation is necessary to accommodate the following use cases:
\table
\row
\li Early development
\li This is where the UI can rely on a feature with a basic back end
implementation.
\row
\li Testing and Simulation
\li This is where the back ends can be tested separately from the app
and the app can be tested using a specialized testing back end.
\row
\li Targets with different hardware configurations
\li This is where certain parts of the system are represented by
simulated back ends while others use a real hardware integration.
\row
\li Dynamic services
\li Situations when services are only available intermittently, with
back ends that come and go over time.
\endtable
\note There is no compatibility guarantee for the autogenerated code. This
means that even application code that uses the autogenerated code is only
guaranteed to work with the Qt Interface Framework version it was developed
against. We try to keep the API source compatible for as long as possible.
\section1 Overviews and Tutorials
The following are some key topics that provide more details on the
Qt Interface Framework module:
\list
\li \l{Installation}
\li \l{Configuration}
\li \l{Concepts and Architecture}
\li \l{Get Started with the Qt Interface Framework Generator}
\li \l{Qt Interface Framework Generator Tutorial}
\li \l{Extending Qt Interface Framework}
\li \l{What's New in the Qt Interface Framework}
\endlist
\section1 Reference APIs
In addition to the tools and core APIs, the Qt Interface Framework 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 back ends, which provide partially
simulated behavior of a real middleware service.
\note There is no compatibility guarantee for the reference APIs. As those are
based on the Qt Interface Framework Generator, the same compatibility guarantee
is applied to those.
We try to keep the API source compatible for as long as possible.
\list
\li \l{Use the Qt Interface Framework Reference API}
\li \l{QtInterfaceFramework Backends}
\endlist
\section1 Getting Started with the Qt Interface Framework Reference API
\list
\li \l {Qt Interface Framework Vehicle Functions C++ Classes#Getting Started}
{Getting started with Qt Interface Framework Vehicle Functions (C++)}
\li \l {Qt Interface Framework Vehicle Functions QML Types#Getting Started}
{Getting started with Qt Interface Framework Vehicle Functions (QML)}
\endlist
\section1 Reference
\list
\li \l {Qt Interface Framework C++ Classes}
\li \l {Qt Interface Framework QML Types}
\li \l {Qt Interface Framework Examples}
\endlist
\section1 Licenses and Attributions
Qt Interface Framework is available under commercial licenses from \l{The Qt Company}.
In addition, it is available under the \l{GNU Lesser General Public License, version 3}, or
See \l{Qt Licensing} for further details.
An executable on Windows will potentially link against
\l{The QtEntryPoint Library}. This library is available under commercial
licenses and also under the \l{BSD 3-clause "New" or "Revised" License}.
Furthermore Qt Interface Framework potentially contains third party modules
under the following permissive licenses:
\generatelist{groupsbymodule attributions-qtinterfaceframework}
*/
|