Table of Contents
University project about creating a navigation system for an automotive driving simulator on Automotive Grade Linux (AGL) operating system. The navigation system software consists of multiple parts, namely:
- Persistent information panel of the Instrument Cluster (left part of the Instrument Cluster, also called homescreen)
- Navigation Screen of the Instrument Cluster (right part of the Instrument Cluster)
- Navigation Screen of the Central Console (not part of the screenshots below)
- Routing algorithm
- LED panel for visualization of navigation instructions
This repository is about the homescreen (left part of the Instrument Cluster).
The mockup-files created with Figma software can be seen in the mockup folder of the other project other project.
This is how to run this software part (repository) in a browser and how to run it inside the AGL virtual machine.
For the following steps, you need node.js/npm. If node.js/npm is not installed, make sure to install a suitable node version such as v12.18.4. Very recent versions may not compatible with the remaining software.
This app can run in a browser since it's a HTML app. However, it's recommended to run the software in a AGL virtual machine. For that you need to create an AGL virtual machine using VirtualBox software and find a way to connect this machine to your own operating system. One way is SSH/SCP.
1. Open a terminal or shell in your operation system
2. Clone this repo:
git clone https://github.com/FabianGermany/Homescreen-Instrument-Cluster.git
3. Change the directory:
cd Homescreen-Instrument-Cluster
4. Install npm packages:
npm install
5. Build app and create .wgt-file:
npm run build
6. Launch the app:
npm start
7. Type
http://localhost:9001/
in a browser such as Firefox Developer Edition.
The app will run in the browser now.
8. Change the directory in order to see the .wgt file:
cd package
9. Transfer the .wgt file to the AGL system. Depending on your operating system and on how your AGL virtual machine is connected to your current operation system, one way might be using SSH/SCP such as:
scp -P 2223 homescreen.wgt root@[IP-Address]:/tmp/
Instead of [IP-Address]
use your own IP address.
For more information, see our documentation which is not published here on GitHub. If you need the documentation, feel free to get in touch with us.
10. Open another terminal in your operating system
11. Log into your AGL machine. Depending how your AGL virtual machine is connected to your current operating system, one way might be:
ssh -p 2223 root@localhost
12. Change directory:
cd /tmp/
13. Install .wgt file on AGL:
afm-util install homescreen.wgt
14. Reboot AGL machine. It's recommended to reboot at least twice.
reboot
Now the AGL machine will run with the new app/functionality.
For License information please also see the license file and potential other license files inside the used packages. This app is based on an AGL template. To see more information about the packages of the other app component see the license section over there.
In package.json there is two options: Original AGL-JS-API:
"agl-js-api": "https://github.com/AGL-web-applications/agl-js-api.git#master",
Custom one:
"agl-js-api": "https://github.com/walzert/agl-js-api.git#master",
The custom one is needed if you want to use CAN features. However, this repo has a bug which leads to the loss of ability in include other .wgt-apps. Consequently, there is a few ways to solve that. One way is using the original link and then manually add the CAN functions in the node folder or locally. This particularly includes this code:
export function subscribe_by_event(handler,event) {
return api_subscribe("low-can/subscribe", {
"event": event
}, handler);
}