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
|
/****************************************************************************
**
** Copyright (C) 2018 Pelagicore AG
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Neptune 3 IVI UI.
**
** $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 neptune3ui-remote-settings-server.html
\title Neptune 3 UI - Remote Settings Server
\brief Remote Settings Server for Neptune 3 UI
The remote settings server of Neptune 3 UI is an example of how to implement and use remote
services.
The apps and the System UI share common settings, such as language and night/day mode, over a
separate backend server process. Additionally the server shares the instrument cluster's gauge,
and telltale -values. Having the backend as a separate networked process, makes it possible for
all of the independent apps to access common information in a uniform manner. It also makes it
possible to run the \l{instrument cluster} and the \l{center console display} on separate hosts,
while still having smooth and simultaneous changes to the language, theme or UI modes.
The individual apps and System UI connect to the remote service through the autogenerated
Settings module's API. In the background, the module loads a plugin that implements the actual
connection to the backend server process. The fact that the service is remote is transparent to
the UI code, and thanks to the interchangeable Qt Ivi plugins, the service could be implemented
in an entirely different manner. Eg. if the Neptune 3 UI is executed in single process mode, the
settings service would not need to be remote, but could be running in-process instead.
By default, the remote settings server is started automatically by Neptune 3 UI. It may also be
started by running the RemoteSettingsServer executable. The executable is installed with, or
built during the build of Neptune 3 UI. The server needs a settings file "server.conf" for
setting up the connection. This settings file is shipped with Neptune 3 UI and is located in the
root directory. The same settings file is also read by the backend plugin instances loaded by
individual apps.
See the \l {QtIvi Remote Backends} and \l {Qt IVI Generator Remote Objects Example} for a more
detailed explanation on QtIVI remote backends.
\section1 Remote Settings App
The Neptune 3 UI comes with a remote control app called NeptuneControlApp, that connects to the
remote settings server and may be used to change the common settings and \l{instrument cluster}
values. The app is not an end user application but merely meant for changing common values for
demonstration purposes. Nevertheless, the technical principles behind the remote server and the
control app apply to possible end user applications as well.
The remote control app can be started by running the executable NeptuneControlApp, located in the
Neptune 3 UI install directory. The app has a connection dialog for setting the ip-address and
port of the server. You can find this address in the About Box of the Neptune 3 UI which is shown
on a tap or a click on the "Qt" logo on the System UI. The default port is 9999.
\image remote-settings-app.jpg
The app has three views for different value sets: General settings, Instrument cluster and System
UI. The general settings are values that apps commonly need to access or observe such as the
language and the theme, or other values that are useful to be changed when demonstrating
Neptune 3 UI's features. Instrument cluster view allows the changing of gauge and telltale
values. Finally, the System UI view has only one value for cycling between the application IC windows
of different apps. application IC window is an app's alternative view that is displayed on the
\l{instrument cluster}.
*/
|