RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
Alert | ||||
---|---|---|---|---|
| ||||
Table of Contents |
---|
...
The dab-adapter-rs the "DAB <-> RDK adapter" can be executed both on the RDK device or using an external PC.
...
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).
...
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'.
API details are as per dab-adapter version : https://github.com/device-automation-bus/dab-adapter-rs/commit/f6318d0080ab8282f758bb2bf19a0097f58f34a6 (6.0 f6318d)
DAB Request | DAB Category |
---|
Thunder Implementation for the Request |
---|
operations/list | Supported Operations | No RDK specific implementation required except platform specific key map configuration. |
applications/list | Applications | https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=getavailabletypes Use the response to match the AppID as per DAB-2.0 spec. [Note: should have YouTube, Amazon & Netflix as types in the API response.] |
applications/launch | https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=getstate |
Note: Implementation supports only YouTube common port. |
. If parameter is present; App specific deeplink API is invoked. Please see Provideplatformspecificapplifecycledelays/timeouts for adding platform specific tuning. | |
applications/launch-with-content | https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=getstate https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=launch |
https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=movetofront https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=setfocus https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=getvisibility Note: Implementation supports only YouTube common port. |
Please see Provideplatformspecificapplifecycledelays/timeouts for adding platform specific tuning. | |
applications/get-state | https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=getstate |
applications/exit | https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=getstate https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=suspend |
https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id= |
https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id= |
https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id= |
https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id= |
https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id= |
Code Block | ||
---|---|---|
| ||
{
"KEY_GREEN": 406,
"KEY_YELLOW": 403,
"KEY_BLUE": 404,
"KEY_HOME": 173
} |
input/key/list | Input | Platform configurable key map /opt/dab_platform_keymap.json |
input/key-press | https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=injectkey [Note: injectKey will not be overridden by the rdkshell_keymapping.json so put the final KEYCODE in /opt/dab_platform_keymap.json] |
input/long-key-press | https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=injectkey [Note: injectKey will not be overridden by the rdkshell_keymapping.json so put the final KEYCODE in /opt/dab_platform_keymap.json] |
output/image | Output | https://rdkcentral.github.io/rdkservices/#/api/ScreenCapturePlugin?id=uploadscreencapture |
device-telemetry/start | Device & Application Telemetry |
device-telemetry/start
As per DAB-2.0 specifiction; it is an optional requirement. TBD: Funtionality not tested. | |
device-telemetry/stop | As per DAB-2.0 specifiction; it is an optional requirement. TBD: Funtionality not tested. |
device-telemetry/metrics |
As per DAB-2.0 specifiction; it is an optional requirement. | |
app-telemetry/start | As per DAB-2.0 specifiction; it is an optional requirement. TBD: Funtionality not tested. |
app-telemetry/stop | As per DAB-2.0 specifiction; it is an optional requirement. TBD: Funtionality not tested. |
app-telemetry/metrics |
As per DAB-2.0 specifiction; it is an optional requirement. Funtionality not |
implemented. |
health-check/get | Health Check | No RDK specific implementation required. |
messages | Operational General Notifications |
messages
As per DAB-2.0 specifiction; it is an optional requirement. | ||||||
voice/list | Voice | https://rdkcentral.github.io/rdkservices/#/api/VoiceControlPlugin?id=voicestatus | ||||
voice/set | https://rdkcentral.github.io/rdkservices/#/api/VoiceControlPlugin?id=configurevoice with following parameter in the current implementation.
| |||||
voice/send-audio | https://rdkcentral.github.io/rdkservices/#/api/VoiceControlPlugin?id=voicesessionrequest
| |||||
voice/send-text | To convert the audio to platform compatible format; gst-launch-1.0 binary is required. https://rdkcentral.github.io/rdkservices/#/api/VoiceControlPlugin?id=voicesessionrequest |
| |||||
version | Version | No RDK specific implementation required. | |||
For generating DAB Device ID | Generic | https://rdkcentral.github.io/rdkservices/#/api/SystemPlugin?id=getdeviceinfo with param estb_mac | |||
For feature/service availability | Generic | https://github.com/rdkcentral/Thunder/blob/master/Source/WPEFramework/doc/ControllerPlugin.md#property.services [Used as 'status@callsign'] |
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.
Code Block | ||
---|---|---|
| ||
{
"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.
Code Block | ||||
---|---|---|---|---|
| ||||
{
"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
}
}
|
Code Block | ||||
---|---|---|---|---|
| ||||
{
"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).
Code Block | ||
---|---|---|
| ||
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto-clients moreutils |
Code Block |
---|
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.
Code Block |
---|
user@STB:~$ dab-adapter --debug true
|
Code Block | ||
---|---|---|
| ||
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 |