aboutsummaryrefslogtreecommitdiffstats
path: root/doc/src/neptuneui-index.qdoc
blob: e5325042b0cbf031ecd7b70bccfbaca0fea4238f (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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Automotive Suite.
**
** $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 neptuneui-index.html
   \title Neptune UI
   \brief A reference HMI for the OEMs to test the Qt Automotive Suite.

   Neptune provides IVI (infotainment) system, which depends on
   \l {Qt Application Manager} for the necessary infrastructure. It comes with
   support for a Head Unit and Cluster. The system also provides the
   infrastructure to develop, maintain, and deploy applications.

   \borderedimage instrument-cluster.png
   \caption QtQuick-based digital instrument cluster

   \borderedimage infotainment-cluster.png
   \caption QtQuick-based Head Unit

   The Head Unit interface provides additional pages that are accessible
   by swiping from right-to-left or left-to-right:

   \borderedimage infotainment-cluster-apps.png
   \caption Available applications on the Head Unit

   \borderedimage infotainment-cluster-settings.png
   \caption \uicontrol Settings that provides more control on the HEAD Unit and
   Cluster. The \uicontrol{APP STORE} tab in the \uicontrol Settings page lets
   you install/uninstall applications from the Head Unit.

   \borderedimage infotainment-cluster-carsettings.png
   \caption Provides options to enable or disable features on the car.

   \borderedimage infotainment-cluster-mycar.png
   \caption Provides an overview about the car itself.

   \section1 How to Run the UI?

   Typically the UI works out-of-the-box using Qt Creator, provided you choose
   to run your application on Qt Automotive emulator, iMX6, or DriveCX targets.
   You can also run only the HMI without your application. The following
   sections provide instructions on how to run the HMI alone.

   \section2 Emulator Image

   The Qt online installer automatically creates a virtual machine setup for the
   emulator image that comes with the \QAS installation, provided you have
   VirtualBox installed before running the Qt installer.

   Use the following command to run the virtual machine setup:

   \badcode
    emulator --vbox QtAutomotive-10
   \endcode

   Where, \c emulator is a tool that is shipped with \QAS, and
   \e "QtAutomotive-10" is the name of the virtual machine setup.

   \image emulator-automotive.png

   \section2 Linux Desktop

   If you are interested in exploring the reference HMI without installing
   \QAS, follow these instructions to run the HMI on your Linux desktop:

   \list 1
    \li Clone the Qt Application Manager and Neptune-UI git repositories.

    \li Build Qt Application Manager against Qt 5.7 or later that is
    installed on your desktop. See the Qt Application Manager
    \l[ApplicationManager]{Installation}{installation} page for more details
    on building.

    \li Create the required directory structure based on the path used
    in \c <qtapplicationmanager-clone>/template-opt/am/config.yaml. For
    example, the \c installedAppsManifestDir:  points to \c{/opt/am/manifests},
    which must be created.

    \li Copy \c <qtapplicationmanager-clone>/template-opt/am/config.yaml
    to \c /opt/am

    \note You can edit your \c config.yaml copy to comment out parts that
    are not relevant. For example, the SD card install location under the
    \c "installationLocations:" section.

    \li Run the following command from the cloned \e neptune-ui directory:
     \badcode
     appman -r -c /opt/am/config.yaml -c am-config.yaml -I dummyimport
     \endcode
   \endlist

   Where, \c appman is a utility that is installed when you built
   Qt Application Manager, \c AM_CONFIG_FILE points to the Application
   Manager's \c config.yaml, and \c dummyimport provides the necessary data,
   which is usually provided by Qt IVI.

   \note The \c {-I dummyimport} part is not required if Qt IVI is installed.


   \section2 UI Configuration

   The UI configuration is split into several \c yaml files for the ease of
   maintenance. The following is a list of those configuration files and their
   purpose:

   \list
    \li \c config.yaml - Defines the generic parameters such as the
    install location for applications installed from the APP STORE, database,
    and so on.

    \li \c am-config.yaml - Defines the Head Unit and Cluster-specific
    configuration such as the built-in applications, their runtime (native or
    qml), import paths, UI-specific configuration such as full-screen mode,
    main QML file (if runtime is qml), and so on.

    \li \c info.yaml - Defines application-specific configuration such as the
    main QML file, its imports, and so on.
   \endlist

   The following is a sample \c am-config.yaml:

   \badcode
    formatVersion: 1
    formatType: am-configuration

    # basic AM functionality - the built-in apps are in 'apps'.

    applications:
      builtinAppsManifestDir: "apps"

    # QML apps will be able to import from modules...

    runtimes:
      qml:
        importPaths: [ "imports/shared" ]

    # ... as well as the SystemUI

    ui:
      fullscreen: yes
      mainQml: "Main.qml"
      importPaths: [ "imports/shared", "imports/system" ]
      windowIcon: "imports/shared/assets/icons/active/apps@96.png"

    systemProperties:
      public:
        styleConfig: "Config1920x1080.qml"
        showCluster: yes
      private:
        appStoreServerUrl: 'http://chaos.pelagicore.net:8080'

    # development setup: no security

    flags:
      noSecurity: yes
      noUiWatchdog: yes
   \endcode

   These options are also configurable from the command line as a
   parameter to the \e appman utility.

   \note You must regenerate the yocto image for the desired target after
   changing these \c yaml files.

   \section1 Related Information

   \list
    \li \l{Manifest Definition}{Application manifest file}
    \li \l{Main Configuration}{appman options}
    \li \l{Building eLinux Image}
    \li \l{Qt Application Manager Git Repository}
    \li \l{Neptune-UI Git Repository}
   \endlist
*/

/*!
    \externalpage http://doc.qt.io/QtForDeviceCreation/qtee-custom-embedded-linux-image.html
    \title Building eLinux Image
*/
/*!
    \externalpage http://code.qt.io/cgit/qt/qtapplicationmanager.git/
    \title Qt Application Manager Git Repository
*/
/*!
    \externalpage http://code.qt.io/cgit/qt-apps/neptune-ui.git/
    \title Neptune-UI Git Repository
*/