aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/neptune3ui-remote-settings-server.qdoc
blob: 06a5378de738cda6bc5aef144131e5708b80cb25 (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
/****************************************************************************
**
** 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}.


*/