forked from qtproject/qt-apps-multiscreen-demo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
74 lines (55 loc) · 3.86 KB
/
README
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
# Overview
* The Multiscreen Demo is based on the Neptune UI code which is provided as a part of the Qt Automotive Suite (https://doc.qt.io/QtAutomotiveSuite/).
In its implementation, the Multiscreen Demo provides an alternative implementation for a few selected use cases in automotive UIs, e.g.,
the use of 3D content, integration of the CAN-bus interfaces or a use of multiple screens. Please be aware that in the future this
repository's functionality might get merged into the Neptune UI and this repository would be deleted.
* Multiscreen Demo implements the ability to use simulated events to 'drive' along a hardcoded route and also ability to control
events sent to cluster through CanController. By default, demo runs in fully automatic mode and events are simulated.
If you want to control the events, you can use CanController. The CanController synthesizes events and can deliver them via CAN or TCP.
TCP is strongly recommended (unless you know better) as the CAN interface can produce 8-bit overflow issues and other unnoted problems,
which should be investigated later. If you have want to use the CanController, it can be activated by setting the "fullDemo" property
to false in ValueSource.qml:
//
// ENABLE FOR FULLY AUTOMATIC DEMO MODE (in case there is no CanController)
//
property bool fullDemo: true//false
You can find the ValueSource.qml file under /opt/automotivedemo/imports/shared/service/valuesource
in HW, or automotivedemo\imports\shared\service\valuesource in project hierarchy.
The CanController (client) synthesizes CAN events, while the automotivedemo (server) responds to said events.
If you really want to use CAN, you will probably want to use the SocketCAN driver, which can be set up on a Linux system using the following
commands:
sudo modprobe vcan
sudo ip link add dev can0 type vcan
sudo ip link set up can0
* At least Qt 5.8 is required to build automotivedemo. Currently only TCP is supported in this automotivedemo.
# Walkthrough
* OPTIONAL: Chose your data sources (using TCP, or create your CAN devices as necessary).
* Build plugins from automotivedemo repository
qmake -r INSTALL_PREFIX=/opt
make & make install
* Run apps
OPTIONAL:
If TCP connection is used, get the IP address from the device where automotivedemo is installed.
Then use the IP address in CanController on runtime by defining QT_CLUSTER_SIMU env variable
e.g. QT_CLUSTER_SIMU=192.168.0.1 by default it is localhost 127.0.0.1.
In device set the following environment variable. If there are two screens available, application will
automatically show both cluster center console views:
export QT_QPA_EGLFS_KMS_CONFIG=<deployed kms_config.json file from automotivedemo git>
Run in desktop
appman.exe -r -c am-config.yaml --dbus none
In device:
chmod +x /opt/automotivedemo/start.sh
./start.sh
# Making it run automatically in HW
Disable neptune-ui and enable automotive demo to startup during device boot:
adb shell
systemctl disable neptune
systemctl enable automotivedemo
systemctl start automotivedemo
Typical errors:
* If you are not seeing the route in the map after you have selected destination, make sure that openssl libraries are found. Route feature is available
only from Qt5.8 onwards.
* "QtQuick.VirtualKeyboard is not installed" -> set environmentvariable QT_IM_MODULE=qtvirtualkeyboard
* In Qt5.8.0 maps are not working offline, bug in https://bugreports.qt.io/browse/QTBUG-57011
In case offline maps are needed, checkout following commit from qtlocation and recompile mapbox plugin:
https://codereview.qt-project.org/#/c/176591/