README.md 3.29 KB
Newer Older
Richard Lin's avatar
Richard Lin committed
1
# Brief 
Richard Lin's avatar
Richard Lin committed
2

Richard Lin's avatar
Richard Lin committed
3
Experimental scene changing framework for cluster, using Qt5.10, with QtRO and Qt3DStudio.
4
5
6

# Structure

Richard Lin's avatar
Richard Lin committed
7
1. InstrumentCluster is the executable application, which can use all scene plugins.
8
2. ScenePlugin contains several cluster plugins, which generate to dynamic link libraries for InstrumentCluster.
9
3. Interface folder contains an interface class shared by the InstrumentCluster and every entities of ScenePlugin.
Richard Lin's avatar
Richard Lin committed
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
4. AndroidController is an important part of this demo. Runs on Android IVI and can remote control the InstrumentCluster.

# InstrumentCluster's Features

1. Each scene plugin is packaged into an individual ".so" file, easy to distribute.
2. InstrumentCluster will scan scene plugins when start up. The scene plugin files should be stored in the ./InstrumentCluster/Scenes/ folder.
3. InstrumentCluster has a scene selector, with brief previews.
4. Scene plugins can be dynamic add/removed to qt resource tree. Lazy loading or other loading strategies can be adjusted in cpp file (TODO).
5. Can apply to every visual components, also including transitions, interactives. In a summary, all qml and resource files can be changed dynamicly.
6. InstrumentCluster can store selected scene name, and automatically load it after power on.

# AndroidController's Features
1. Based on Android platform, which supposed to be the in-vechiel-infotainment system. Can remote change the InstrumentCluster's scene.
2. Due to the small storage capability in InstrumentCluster, IVI is the better place to store scenes. AndroidController can send the skin file to InstrumentCluster when needed.
3. Built-in AppStore enable scenes' purchasing and downloading (TODO).
4. Should have a UI to manager the loacl storage (TODO).
26

27
28
29
# Cluster Plugin Description

1. Archemind. A demo cluster with a Qt3D car. GitLab address: https://git.qt.io/China-Projects/ClusterDemoForArcherMind.git
Richard Lin's avatar
Richard Lin committed
30
![Archemind snapshot](https://git.qt.io/rilin/SceneChangingFramework/raw/master/snapshots/Archemind.png)
31
2. kria-cluster-2d. 2D cluster(the 3D rotating car in the middle of the screen is a movie). Project address: http://code.qt.io/qt-apps/kria-cluster-2d-demo.git
Richard Lin's avatar
Richard Lin committed
32
![kria-cluster-2d](https://git.qt.io/rilin/SceneChangingFramework/raw/master/snapshots/kria-cluster-2d.png)
33
3. kria-cluster-3d. It's a re-write demo of 2D version, add 3D dials and 3D tranistions using Qt3DStudio. It is called "QtWS2017Cluster" in project: https://git.qt.io/playground/StudioCluster.git
Richard Lin's avatar
Richard Lin committed
34
![kria-cluster-3d](https://git.qt.io/rilin/SceneChangingFramework/raw/master/snapshots/kria-cluster-3d.png)
35
4. qmlcluster. It's another Qt3DStudio demo in project: https://git.qt.io/playground/StudioCluster.git
Richard Lin's avatar
Richard Lin committed
36
![qmlcluster snapshot](https://git.qt.io/rilin/SceneChangingFramework/raw/master/snapshots/qmlcluster.png)
37
5. Triton. It's the cluster part of Triton-UI, the Automotive Suite demo for CES2018. It is a pure 2D demo: https://git.qt.io/playground/CES2018Demo.git
Richard Lin's avatar
Richard Lin committed
38
![Triton snapshot](https://git.qt.io/rilin/SceneChangingFramework/raw/master/snapshots/Triton.png)
39

40
41
# How to build

Richard Lin's avatar
Richard Lin committed
42
43
44
1. Qt >= 5.10
2. Check the Qt3DStudio installation. Change the import directory in InstrumentCluster/main.cpp Line66 to your own Qt3DStudio/qml directory.
3. qmake make & make install
45

Richard Lin's avatar
Richard Lin committed
46
# How to operate in InstrumentCluster side
47

Richard Lin's avatar
Richard Lin committed
48
49
1. "Up/Down" to navigate the scenes
2. "Space" to select the scene
50

Richard Lin's avatar
Richard Lin committed
51
# How to design a plugin
52

Richard Lin's avatar
Richard Lin committed
53
TODO