Download static content pack(s) from Ruter regularly
At least once a day
If it only happens once, then the download must take place after 16:00 each day, and be available in the vehicle until the following day
Validate that the package has been downloaded correctly (SHA hash verification)
Set aside 16GB of storage capacity in the vehicle for storing static files
Typically MP4, HTML, JS, images, mp3 etc.
NOTE: the entire capacity of 16GB must be able to be used for DPI content. That is when the contents are to be extracted, the ruter's zip file must be in a different area than the destination files.
Push out new content packs to the vehicles when they are in the depot and before they are in traffic the next day
NOTE: Only files that have changed since the previous version should be transferred to the vehicle. Changes must be diffused and synchronized, e.g. with a tool like rsync.
Updates will come on two channels:
Stage
planned changes come here first, and must be verified that they work on a test vehicle by the operator, before they are promoted to prod.
All errors discovered must be reported to Ruter's bug tracking system.
Prod
Planned changes come here after being verified on stage.
In cases where there are errors in production, updates can come here without having gone through stage verification.
Play audio received as base64-encoded OPUS or mp3 message over local MQTT topic
Play audio message referring to local audio file.
The message contains the expiryTimestamp. When receiving a message after expiry of the expiryTimestamp, the message must not be played
The message can contain several sound files in an array, in these cases they must be played in the order in which they are received in the array.
Processing of MQTT messages must be synchronous. That is a message must be processed and the audio message finished playing before a new message can be processed.
If the data package/quota is used up, the data traffic cannot be interrupted or throttled
Synchronization of static files to the vehicle must be done using a tool that supports incremental changes (i.e. only files that have changed should be transferred)
The browsers must have access to internet-based content. (eg. displaying map in relation with a deviation)