Neptune 3 UI - Remote Settings Server
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 instrument cluster and the center stack 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.
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 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.
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 secondary windows of different apps. Secondary window is an app's alternative view that is displayed on the instrument cluster.
© 2018 Pelagicore AG. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.