The dab-adapter-rs the "DAB <-> RDK adapter" can be executed both on the RDK device or using an external PC.
Note: current implementation is for STB devices.
Preferred mode of operation : "On Device" implementation
Reference:
Comaptible Navigator UI version 4.1.3 or later. (Why is it? - UI need to listen and manage external app lifecycle related events and send app state report to Alexa.)
All the below commands can be executed from device console (SSH prompt or serial terminal).
Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.DAB.Enable |
---|
How to check current RFC configuration:
tr181 -g Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.DAB.Enable |
---|
How to set the RFC:
tr181 -s -t boolean -v true Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.DAB.Enable |
---|
How to clear the RFC:
tr181 -s -t boolean -v false Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.DAB.Enable |
---|
Below table enlists the API mapping details of current DAB adapter implementation of RDK for STB devices. RDK APIs are listed under 'Thunder Implementation'.
RDK dab-adapter by default is configured to align DAB keymap with RDKShell keycodes https://github.com/rdkcentral/RDKShell/blob/master/linuxkeys.h. There is another provision to override or add more keys by introducing a platform specific keymap configuration file to dab-adapter runtime.
Create /opt/dab_platform_keymap.json with following format: key value pair of "DAB_KEY": PLATFORM_KEYCODE.
{ "KEY_GREEN": 406, "KEY_YELLOW": 403, "KEY_BLUE": 404, "KEY_HOME": 173 } |
The time required to launch and exit an app runtime would be greately dependent on the platform. DAB-2.0 specification mandates that the DAB app lifecycle APIs shall only return the DAB response after the app lifecycle is completed.
Create /opt/dab_platform_app_lifecycle.json and add app specific parameters as per following template.
{ "dab-app-id-lowercase": { "cold_launch_timeout_ms": 6000, "resume_launch_timeout_ms": 3000, "exit_to_destroy_timeout_ms": 2500, "exit_to_background_timeout_ms": 2000 } } |
{ "youtube": { "cold_launch_timeout_ms": 6000, "resume_launch_timeout_ms": 3000, "exit_to_destroy_timeout_ms": 2500, "exit_to_background_timeout_ms": 2000 }, "primevideo": { "cold_launch_timeout_ms": 8000, "resume_launch_timeout_ms": 4000, "exit_to_destroy_timeout_ms": 5000, "exit_to_background_timeout_ms": 2300 } } |
This section details about how to setup a tool to see DAB messages being exchanged over the test network using a Linux PC(DAB Monitor).
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa sudo apt-get update sudo apt-get install mosquitto-clients moreutils |
user@DABMonitor:~$ mosquitto_sub -h 10.0.0.4 -v -t '#' | ts '[%Y%b%d %H:%M:%.S]' |
If at any time during DAB adapter development or integration phase wanted to see what is the Thunder API request payload and its platform response that dab-adapter sends/receives, you could run the dab-adapter binary with verbose mode enabled as below.
user@STB:~$ dab-adapter --debug true |
root@AmlogicFirebolt:~# journalctl -fu dab-adapter -- Logs begin at Mon 2023-09-11 16:32:00 UTC. -- Sep 11 16:35:05 AmlogicFirebolt systemd[1]: Started DAB <-> RDK adapter. Sep 11 16:35:05 AmlogicFirebolt dab-adapter[22887]: Monitoring changes of /run/dab-enable Sep 11 16:35:06 AmlogicFirebolt dab-adapter[22887]: DAB Device ID: AC64CF339B28 Sep 11 16:35:06 AmlogicFirebolt dab-adapter[22887]: Ready to process DAB requests Sep 11 16:35:33 AmlogicFirebolt dab-adapter[22887]: OK: operations/list |