RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
Papers & Presentations Archive
RDK Services are the RDK components implemented as the Thunder Nano services. RDK services are the services that are developed based on the Thunder (WPE) Framework. Services each other or a particular service can be controlled through JSON RPC commands and it has a web-based controller UI.
The graphics UI services like WebKit Browser and so on are run on top of RDK Shell. RDK Shell is a native component that gives the Wayland composition with application management.
For the Integration of RDK Services on Generic RDK image, below are the important components
Table of Contents
The links are given here provide the instructions to
These instructions are made for the execution of the RDK media stack on the Raspberrypi 4.
User Interface involves graphics display on TV to show the app launched on the box and a controller UI that can be launched from the host machine's web browser to control all RDK services remotely.
SwitcherApp is a Lightning framework based JS application that launches on a WebKit Browser instance. The URL and other parameters of this WebKit Browser instance can be controller from the ResidentApp service on controller UI (from the Host machine's web browser).
SwitcherApp URL: https://px-apps.sys.comcast.net/lightning_apps/SwitcherApp/dist/index.html
Note: App's can be navigated through a Keyboard or an IR (especially Xfinity) remote connected to the RPi
Resident App is a WebKit browser instance where it loads the App resides in the box. By default, it loads with Switcher App URL. The switcher App loads different WebKit browser engine for various apps
Switcher APP UI
Swither App launches through ResidentApp (WebKit Browser) Instance
Note: Numerical `1` key is used to come out of any apps on this URL
LightningApp is another WebKit browser instance specifically for apps designed through the Lightning framework.
Metrological's App Functionality
Metrological's App launches on LightningApp (WebKit Browser) Instance. Though it available on Switcher App it launches in a different browser instance.
Metrological's App contains
Cobalt is an RDK service that gives a lightweight HTML5/CSS/JS based lightweight application container that is mainly designed for a rich animation environment. This service is mainly used for Youtube TV.
Youtube TV
Youtube from Switcher App launches through Cobalt.
Youtube can be launched from
Bouncing Ball
Bouncing ball is a Lightning framework based Graphics rendering App) that comes as one of an app in the Switcher App. On launching the bouncing ball, a LightningApp (WebKit browser) instance will be created.
SearchandDiscoveryApp is another WebKit Browser instance mainly used for setup functionality
Setup
Setup configuration and settings which is from Switcher App that contains
HTMLApp is another WebKit browser instance or service that mainly used for HTML-based applications.
WebKit Browser is a base browser service where any external URL can be loaded.
Below given apps will be loaded on the corresponding UI browser service
Metrological App - Lightning App
Switcher App URL - Resident App
Youtube - Cobalt
Bouncing Ball - Lightning App
Setup menu on Switcher App - SearchAndDiscoveryApp
Controller UI is a web UI that can be launched from a host machine's (machine under the same network where RPi resides) browser. This UI can be loaded with the RPi box's IP address with port number 9998.
URL: http://<Rpi's IP address>:9998
Controller: List of plugins
In the Controller tab, any plugins can be enabled or disabled. On loading the controller UI initially, it loads the Controller tab with all possible services with the enable or disable status.
As this is a WebKit browser instance, preset and custom URL can be loaded from the controller UI.
ResidentApp Control
Each RDK Service can be validated through JSON RPC Commands through HTTP. It has a request and response in JSON format. Some RDK Services which have graphics UI can be validated through the controller UI as well.
As the JSON RPC commands to control the RDK service through HTTP, requests can be sent from the target and from the remote (a host connected on the same network) machines.
Any service can be enabled or disabled also through JSONRPC commands.
Function | Request | Response | Remarks |
---|---|---|---|
activate | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
callsign argument can accept all plugins Note: the argument is case sensitive |
deactivate | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
environment | curl |
{"jsonrpc":"2.0","id":3,"result":"/tmp"} |
RDK Shell as an RDK service enables by default which controls the management of Composition, Layout, Z-Order, and Key handling. Below JSON RPC commands are used to validate the RDK Shell's service functionality.
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
get Screen Resolution |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.getScreenResolution" , "params" :{ }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : { "w" : 1920 , "h" : 1080 } } |
|
set Screen Resolution |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.setScreenResolution" , "params" :{ "w" : 1920 , "h" : 1080 }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
launch Application | curl 'http://127.0.0.1:9998/jsonrpc' -d '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.RDKShell.1.launch", "params": {"callsign":"HtmlApp", "type":"application", "visible":true, "uri":"http://www.goggle.com"}}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
suspend Application |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.suspend" , "params" :{ "client" : "Cobalt" }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
resume Application |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.resume" , "params" :{ "client" : "Cobalt" }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
get Clients |
"jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.getClients" , "params" :{ }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : { "clients" : [ "ResidentApp" , "org.rdk.RDKBrowser2" ]} } |
The below functionality will be succeeded only to the clients listed in this response |
get Z-Order |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.getZOrder" , "params" :{ }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : { "clients" : [ "ResidentApp" , "org.rdk.RDKBrowser2" ]} } |
|
Move to Front | curl 'http://127.0.0.1:9998/jsonrpc' -d ' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
client argument should be the exact name of the graphics UI service |
Move to Back | curl 'http://127.0.0.1:9998/jsonrpc' -d ' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
move Behind |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
set Focus |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
get Bounds |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.getBounds" , "params" :{ "client" : "ResidentApp" }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : { "x" : 0 , "y" : 0 , "w" : 600 , "h" : 400 } } |
|
set Bounds |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.setBounds" , "params" :{ "client" : "WebKitBrowser" , "x" : 0 , "y" : 0 , "w" : 600 , "h" : 400 }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
get Visibility |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.getVisibility" , "params" :{ "client" : "ResidentApp" }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : { "visible" : true } } |
|
set Visibility |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
get Opacity |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.getOpacity" , "params" :{ "client" : "ResidentApp" }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : { "opacity" : 100 } } |
|
set Opacity |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.setOpacity" , "params" :{ "client" : "ResidentApp" , "opacity" : 100 }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
get Scale |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.getScale" , "params" :{ "client" : "ResidentApp" }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : { "sx" : 1.5 , "sy" : 1.5 } } |
|
set Scale |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.setScale" , "params" :{ "client" : "ResidentApp" , "sx" : 1.5 , "sy" : 1.5 }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
kill |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.RDKShell.1.kill" , "params" :{ "client" : "WebKitBrowser " }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : {} } |
|
generate Key |
' |
{"jsonrpc":"2.0", "id":3, "result": {} } |
Note: The above functions are referred from the RDK Service's RDK Shell wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
get Interfaces | curl http://localhost:9998/jsonrpc -d '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.Network.1.getInterfaces", "params":{}}' |
|
|
is Interface Enabled |
|
|
|
Enable Interface |
|
|
|
set Default Interface |
|
|
|
get Default Interface |
|
|
|
get IP for default interface |
|
|
|
ping |
|
}} |
|
get Named Endpoints |
|
|
|
ping to named Endpoint |
|
}} |
|
trace |
|
}} |
|
trace a named Endpoint |
|
}} |
|
get IP Settings |
|
} } |
|
set IP Settings |
|
} } |
Note: The functions are referred from the RDK Service's Network wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
get Current State |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : { "state" : 2 , "success" : true }} |
|
start Scan |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
incremental can be set to true to get each SSID in different events (mostly used from GUI) |
stop scan |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
set Enabled |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
connect |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
get connected SSID |
|
|
|
disconnect |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "result" : "" , "success" : true }} |
|
initiate pairing through WPS |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.Wifi.1.initiateWPSPairing" }' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "result" : "" , "success" : true }} |
|
cancel WPS pairing |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.Wifi.1.cancelWPSPairing" , "params" :{}}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "result" : "" , "success" : true }} |
|
save SSID |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.Wifi.1.saveSSID" , "params" :{ "ssid" : "123412341234" , "passphrase" : "foobar" , "securityMode" : 3 }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "result" : 0 , "success" : true }} |
|
is Paired |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "result" : 0 , "success" : true }} |
|
get Paired SSID |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.Wifi.1.getPairedSSID" , "params" :{}}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "ssid" : "123412341234" , "success" : true }}} |
|
get Paired SSID Info |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "ssid" : "123412341234" , "bssid" : "ff:ff:ff:ff:ff:ff," success": true }} |
not applicable for RPi as netsrvmgr has no 'lost & found' package |
clear SSID |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.Wifi.1.clearSSID" , "params" :{}}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "result" : 0 , "success" : true }} |
|
set Signal Threshold change enabled |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.Wifi.1.setSignalThresholdChangeEnabled" , "params" :{ "enabled" : true , "interval" : 2000 }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
is Signal Threshold change enabled |
{ "jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.Wifi.1.isSignalThresholdChangeEnabled" , "params" :{}}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "result" : 1 , "success" : true }} |
Note: The functions are referred from the RDK Service's Wifi wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
enable | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":"3", "method":"org.rdk.Bluetooth.1.enable"}' http://127.0.0.1:9998/jsonrpc |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} | |
disable | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":"3", "method":"org.rdk.Bluetooth.1.disable"}' http://127.0.0.1:9998/jsonrpc |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} | |
get Device Name |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "name" : "Xfinity Bluetooth Audio" , "success" : true }} |
|
set Device Name |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
is Discoverable |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "discoverable" : false , "success" : true }} |
|
set Discoverable |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
start Scan |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "status" : "AVAILABLE" , "success" : true }} |
|
stop scan |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
get Discovered Devices |
|
|
|
pair |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
get Paired Devices |
|
|
|
connect |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
get Connected Devices |
|
|
|
unpair |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
disconnect |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
set Audio Stream |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
get Device Info |
|
|
|
get Audio Info |
: "2.0" , "id" : "3" , "method" : "org.rdk.Bluetooth.1.getAudioInfo" , "params" : { "deviceID" : "256168644324480" }}' |
|
|
send Audio Playback Command |
{ "jsonrpc" : "2.0" , "id" : "3" , "method" : "org.rdk.Bluetooth.1.sendAudioPlaybackCommand" , "params" : { "deviceID" : "256168644324480" , "command" : "PLAY" }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
respond To Event |
{ "jsonrpc" : "2.0" , "id" : "3" , "method" : "org.rdk.Bluetooth.1.respondToEvent" , "params" : { "deviceID" : "256168644324480" , "eventType" : "onPairingRequest" , "responseValue" : "ACCEPTED" }}
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
Note: The functions are referred from the RDK Service's Bluetooth wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
getConnectedVideoDisplays |
curl |
{"jsonrpc":"2.0","id":3,"result":{"connectedVideoDisplays":["HDMI0"],"success":true}} |
|
getConnectedAudioPorts | curl |
{"jsonrpc":"2.0","id":3,"result":{"connectedAudioPorts":["HDMI0"],"success":true}} |
|
getSupportedResolutions | curl |
{"jsonrpc":"2.0","id":3,"result":{"supportedResolutions":["720p","1080i","1080p60"],"success":true}} |
|
getSupportedVideoDisplays | curl |
{"jsonrpc":"2.0","id":3,"result":{"supportedVideoDisplays":["HDMI0"],"success":true}} |
|
getSupportedTvResolutions | curl |
{"jsonrpc":"2.0","id":3,"result":{"supportedTvResolutions":["480i","480p","576i","576p","720p","1080i","1080p"],"success":true}} |
|
getSupportedSettopResolutions | curl |
|
|
getSupportedAudioPorts | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.DisplaySettings.1.getSupportedAudioPorts"}' |
{"jsonrpc":"2.0","id":3,"result":{"supportedAudioPorts":["HDMI0"],"success":true}} |
|
getSupportedAudioModes | curl |
{"jsonrpc":"2.0","id":3,"result":{"supportedAudioModes":["STEREO","AUTO (Stereo)"],"success":true}} |
|
getZoomSetting | curl |
{"jsonrpc":"2.0","id":3,"result":{"zoomSetting":"FULL","success":true}} |
|
setZoomSetting | curl |
{"jsonrpc":"2.0", "id":3, "result":{"success":true}} |
|
getCurrentResolution | curl |
{"jsonrpc":"2.0","id":3,"result":{"resolution":"720p","success":true}} |
|
setCurrentResolution | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getSoundMode | curl |
{"jsonrpc":"2.0","id":3,"result":{"soundMode":"STEREO","success":true}} |
|
setSoundMode | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
readEDID | curl |
{"jsonrpc":"2.0","id":3,"result":{"EDID":"AP///////wAQrMLQVEJTMQUdAQOA...","success":true}} |
|
readHostEDID | curl |
{"jsonrpc":"2.0","id":3,"result":{"EDID":"AP///////wAIbSV0Z0UjARgYAQOAgEh...","success":true}} |
|
getActiveInput | curl |
{"jsonrpc":"2.0","id":3,"result":{"activeInput":false,"success":true}} |
|
getTvHDRSupport | curl |
{"jsonrpc":"2.0","id":3,"result":{"supportsHDR":false,"standards":["none"],"success":true}} |
|
getSettopHDRSupport | curl |
{"jsonrpc":"2.0","id":3,"result":{"supportedSettopResolutions":["720p","1080i","1080p60","2160p30","2160p60"],"success":true}} |
|
setVideoPortStatusInStandby | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getVideoPortStatusInStandby | curl |
{"jsonrpc":"2.0","id":3,"result":{"videoPortStatusInStandby":false,"success":true}} |
|
getCurrentOutputSettings | curl |
{"jsonrpc":"2.0","id":3,"result":{"colorSpace":5,"colorDepth":0,"matrixCoefficients":0,"videoEOTF":0,"success":true}} |
|
setVolumeLeveller | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getVolumeLeveller | curl |
{"jsonrpc":"2.0","id":3,"result":{"enable":true,"level":9,"success":true}} |
|
setBassEnhancer | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getBassEnhancer | curl |
{"jsonrpc":"2.0","id":3,"result":{"bassEnhancerEnable":true,"success":true}} |
|
setSurroundVirtualizer | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getSurroundVirtualizer | curl |
{"jsonrpc":"2.0","id":3,"result":{"enable":true,"boost":90,"success":true}} |
|
enableSurroundDecoder | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
isSurroundDecoderEnabled | curl |
{"jsonrpc":"2.0","id":3,"result":{"surroundDecoderEnable":true,"success":true}} |
|
setDRCMode | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getDRCMode | curl |
{"jsonrpc":"2.0","id":3,"result":{"DRCMode":"line","success":true}} |
|
setVolumeLevel | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getVolumeLevel | curl |
{"jsonrpc":"2.0","id":3,"result":{"enable":true,"volumeLevel":50,"success":true}} |
|
setMuted | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getMuted | curl |
{"jsonrpc":"2.0","id":3,"result":{"muted":true,"success":true}} |
|
getAudioDelay | curl |
{"jsonrpc":"2.0","id":3,"result":{"audioDelay":"0","success":true}} |
|
setAudioDelay | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getAudioDelayOffset | curl |
{"jsonrpc":"2.0","id":3,"result":{"audioDelayOffset":"0","success":true}} |
|
setAudioDelayOffset | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getSinkAtmosCapability | curl |
{"jsonrpc":"2.0","id":3,"result":{"atmos_capability":2,"success":true}} |
|
setAudioAtmosOutputMode | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getTVHDRCapabilities | curl |
{"jsonrpc":"2.0","id":3,"result":{"capabilities":3,"success":true}} |
|
getDefaultResolution | curl |
{"jsonrpc":"2.0","id":3,"result":{"defaultResolution":"720p","success":true}} |
|
setScartParameter | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":false}} |
Note: The functions are referred from the RDK Service's Display Settings wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
cacheContains | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
clearLastDeepSleepReason | curl |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
getAvailableStandbyModes | curl |
{"jsonrpc":"2.0","id":3,"result":{"supportedStandbyModes":["LIGHT_SLEEP", "DEEP_SLEEP"],"success":true}} |
|
getCachedValue | curl |
{"jsonrpc":"2.0","id":3,"result":{"sampleKey":"4343.3434","success":true}} |
|
getCoreTemperature | curl |
{"jsonrpc":"2.0","id":3,"result":{"temperature":48.000000,"success":true}} |
|
getDeviceInfo | curl |
{"jsonrpc":"2.0","id":3,"result":{"ecm_mac/estb_mac":"AA:BB:CC:DD:EE:FF:GG","success":true}} |
|
getDownloadedFirmwareInfo | curl |
|
|
getFirmwareDownloadPercent | curl |
{"jsonrpc":"2.0","id":3,"result":{"downloadPercent":25,"success":true}} |
|
getFirmwareUpdateInfo | curl |
{"jsonrpc":"2.0","id":3,"result":{"asyncResponse":true}} |
|
getFirmwareUpdateState | curl |
{"jsonrpc":"2.0","id":3,"result":{"firmwareUpdateState":"Download Complete","success":true}} |
|
getLastDeepSleepReason | curl |
{"jsonrpc":"2.0","id":3,"result":{"lastDeepSleepReason":"thermal_deepsleep_critical_threshold","success":true}} |
|
getMacAddresses | curl |
{"jsonrpc":"2.0","id":3,"result":{"asyncResponse":true,"success":true}} |
|
getMilestones | curl |
{"jsonrpc":"2.0","id":3,"result":{"milestones":["RDK_STARTED:8893","SEND_DHCP_REQUEST:9530","RECV_DHCP_RESPONSE:9602","UPNP_START_DISCOVERY:12863","UPNP_START_DISCOVERY:13618","IP_ACQUISTION_COMPLETED:15716","IP_ACQUISTION_COMPLETED:16470","2020 Sep 24 20:32:49.688454 raspberrypi-rdk-mc systemd[1]: Starting Log RDK Started Service...","-- Subject: Unit log-rdk-start.service has begun start-up","-- Defined-By: systemd","-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel","-- ","-- Unit log-rdk-start.service has begun starting up.","2020 Sep 24 20:32:50.088253 raspberrypi-rdk-mc systemd[1]: Started Log RDK Started Service.","-- Subject: Unit log-rdk-start.service has finished start-up","-- Defined-By: systemd","-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel","-- ","-- Unit log-rdk-start.service has finished starting up.","-- ","-- The start-up result is done."],"success":true}} |
|
getMode | curl |
{"jsonrpc":"2.0","id":3,"result":{"modeInfo":{"mode":"NORMAL","duration":0},"success":true}} |
|
getPowerState | curl |
{"jsonrpc":"2.0","id":3,"result":{"powerState":"ON", "success":true}} |
|
getPreferredStandbyMode | curl |
{"jsonrpc":"2.0","id":3,"result":{"preferredStandbyMode":"DEEP_SLEEP","success":true}} |
|
getPreviousRebootInfo | curl |
{"jsonrpc":"2.0","id":3,"result":{"timeStamp":"20200128083540","reason":"Triggered from System Plugin API Validation","success":true}} |
|
getPreviousRebootInfo2 | curl |
{"jsonrpc":"2.0","id":3,"result":{"rebootInfo":{"timestamp":"Tue Jan 28 08:35:40 UTC 2020","source":"SystemPlugin","reason":"FIRMWARE_FAILURE","customReason":"API Validation","lastHardPowerReset":"Tue Jan 28 08:22:22 UTC 2020"},"success":true}} |
|
getPreviousRebootReason | curl |
{"jsonrpc":"2.0","id":3,"result":{"RFCConfig":{"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.AccountInfo.AccountID":"1181405614235499371","Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.UPnP.Enabled":"Empty response received","Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.AllowOpenPorts.Enabled":"Empty response received","Device.DeviceInfo.MemoryStatus.Total":"1144560","Device.DeviceInfo.MemoryStatus.Free":"732144"},"success":true}} |
|
getRFCConfig | curl |
{"jsonrpc":"2.0","id":3,"result":{"RFCConfig":{"Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.AccountInfo.AccountID":"1181405614235499371","Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.UPnP.Enabled":"Empty response received","Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.AllowOpenPorts.Enabled":"Empty response received","Device.DeviceInfo.MemoryStatus.Total":"1144560","Device.DeviceInfo.MemoryStatus.Free":"732144"},"success":true}} |
|
getSerialNumber | curl |
{"jsonrpc":"2.0","id":3,"result":{"serialNumber":"M11806TK0024","success":true}} |
|
getStateInfo | curl |
{"jsonrpc":"2.0","id":3,"result":{"com.comcast.channel_map”:2, “success”:true}} |
|
getSystemVersions | curl |
|
|
getTemperatureThresholds | curl |
|
|
getTimeZoneDST |
|
|
|
getXconfParams |
|
|
|
hasRebootBeenRequested |
|
|
|
isGzEnabled |
|
|
|
queryMocaStatus |
|
|
|
reboot |
|
|
|
removeCacheKey |
|
|
|
requestSystemUptime |
|
|
|
setCachedValue |
|
|
|
setDeepSleepTimer |
|
|
|
setGzEnabled |
|
|
|
set STB mode |
|
|
|
setGzEnabled |
|
|
|
setPreferredStandbyMode |
|
|
|
setTemperatureThresholds |
|
|
|
setTimeZoneDST |
|
|
|
updateFirmware |
|
|
Note: The functions are referred from the RDK Service's System wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
upgrade | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.FirmwareControl.1.upgrade", "params":{"name": "firmware_v.0", "location": "http://my.site.com/images", "type": "RCDL", "progressinterval": 10, "hmac": "2834e6d07fa4c7778ef7a4e394f38a5c321afbed51d54ad512bd3fffbc7aa5debc"}}' http://127.0.0.1:9998/jsonrpc |
|
|
resume |
|
{ "jsonrpc": "2.0", "id": 1234567890, "result": null } |
Note: The functions are referred from the Thunder Nano Service's GitHub link
Function | Request | Response | Remarks |
---|---|---|---|
set FPS log frequency | curl --header "Content-Type: application/json" --request POST --data ' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
set default FPS log frequency |
|
||
start FPS Collection | curl --header "Content-Type: application/json" --request POST --data ' |
||
stop FPS Collection |
"jsonrpc" : "2.0" , "id" : "3" , "method" : "FrameRate.1.stopFpsCollection" } |
Note: The functions are referred from the RDK Service's Frame Rate wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
get HDCP status | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.HdcpProfile.1.getHDCPStatus"}' http://127.0.0.1:9998/jsonrpc |
|
RPI doesn't have any input device for basic testing |
get set Top HDCP Support |
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "supportedHDCPVersion" : "2.2" , "isHDCPSupported" : true , "success" : true }} |
Note: The functions mentioned above are referred from the RDK Service's HDCPProfile wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
get HDMI Input Devices | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.HdmiInput.1.getHDMIInputDevices"}' http://127.0.0.1:9998/jsonrpc |
{"jsonrpc":"2.0","id":3,"result":{"devices":[{"id":0,"locator":"hdmiin://localhost/deviceid/0","connected":"false"}],"success":true}} |
|
start HDMI Input |
|
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
stop HDMI Input | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.HdmiInput.1.stopHdmiInput"}' |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
write EDID | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.HdmiInput.1.writeEDID", "params": {"deviceId": 0, "message": "EDID"}}' |
{"jsonrpc":"2.0","id":3,"result":{"name":"HdmiInputEDIDStub","success":true}} |
|
read EDID | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.HdmiInput.1.readEDID"}' |
{"jsonrpc":"2.0","id":3,"result":{"name":"HdmiInputEDIDStub","success":true}} |
Note: The functions mentioned above are referred from the RDK Service's HDMI Input wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
is Key Stroke Mask Enabled | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.LoggingPreferences.1.isKeystrokeMaskEnabled"}' http://127.0.0.1:9998/jsonrpc |
{"jsonrpc":"2.0","id":3,"result":{"keystrokeMaskEnabled":true,"success":true}} |
RPI doesn't have any input device for basic testing |
set Key Stroke Mask Enabled |
|
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
Note: The functions mentioned above are referred from the RDK Service's Logging Preferences wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
get Number of Input devices | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0","id":"3","method": "org.rdk.AVInput.1.numberOfInputs"}' http://127.0.0.1:9998/jsonrpc |
{"jsonrpc":"2.0","id":3,"result":{"numberOfInputs":0,"message":"Success","success":false}} |
RPI doesn't have any input device for basic testing |
current Video mode |
|
|
|
is Content Protected | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0","id":"3","method": "org.rdk.AVInput.1.contentProtected"}' |
{"jsonrpc":"2.0","id":3,"result":{"isContentProtected":true,"success":true}}} |
Note: The functions mentioned above are referred from the RDK Service's AV Input wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
enable Monitoring | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.ActivityMonitor.1.enableMonitoring", "params":{"config":[{"appPid":"6860", "memoryThresholdMB":"1", "cpuThresholdPercent":"1", "cpuThresholdSeconds":"1"}], "memoryIntervalSeconds":"0.02", "cpuIntervalSeconds":"0.02"}}' |
{"jsonrpc":"2.0", "id":3, "result": {"success":true}} |
correct pid to be given |
disable Monitoring | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.ActivityMonitor.1.disableMonitoring", "params":{}}' |
{"jsonrpc":"2.0", "id":3, "result": {"success":true}} |
|
get Application Memory Usage | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.ActivityMonitor.1.getApplicationMemoryUsage", "params":{"pid":6860}}' |
{"jsonrpc":"2.0", "id":3, "result": {"applicationMemory":{"appPid":6860,"appName":"WPEProcess","memoryMB":6},"success":true}} |
correct Pid to be given |
get All Apps Memory Usage | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.ActivityMonitor.1.getAllMemoryUsage", "params":{}}' |
|
Note: The functions are referred from the RDK Service's ActivityMonitor wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
upload capture screen | curl --header "Content-Type: application/json" --request POST --data ' |
|
Note: The functions are referred from the RDK Service's Screen Capture wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
start Timer | curl --header "Content-Type: application/json" --request POST --data ' |
|
|
cancel |
' |
|
|
suspend |
"jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.Timer.1.suspend" , "params" :{ "timerId" : 0 }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
resume |
"jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.Timer.1.resume" , "params" :{ "timerId" : 0 }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
|
get Timer Status |
"jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.Timer.1.getTimerStatus" , "params" :{ "timerId" : 0 }} '
|
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : { "state" : "RUNNING" , "mode" : "WAKE" , "timeRemaining" : "1894.646" , "repeatInterval" : "2000.000" , "remindBefore" : "1000.000" , "success" : true } } |
|
get All Timers |
"jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.Timer.1.getTimers" }' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" : { "timers" : [ { "timerId" : 0 , "state" : "RUNNING" , "mode" : "WAKE" , "timeRemaining" : "1984.411" , "repeatInterval" : "2000.000" , "remindBefore" : "1000.000" } ], "success" : true } } |
Note: The functions are referred from the RDK Service's Sleep/Wake Timer wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
get UI Language | curl --header "Content-Type: application/json" --request POST --data ' |
|
|
set UI Language |
"jsonrpc" : "2.0" , "id" : 3 , "method" : "org.rdk.UserPreferences.1.setUILanguage" , "params" : { "ui_language" : "US_en" }}' |
{ "jsonrpc" : "2.0" , "id" : 3 , "result" :{ "success" : true }} |
Note: The functions are referred from the RDK Service's User Preferences wiki page
Prerequisite: This service has to be enabled from the controller UI to proceed with the execution of the below APIs
Function | Request | Response | Remarks |
---|---|---|---|
resetDevice | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.Warehouse.1.resetDevice", "params":{"suppressReboot":true}}' |
{"jsonrpc":"2.0","id":3,"result":{"PARAM_SUCCESS":true,"success":true}} |
|
getDeviceInfo | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.Warehouse.1.getDeviceInfo"}' |
|
|
internalReset | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.Warehouse.1.internalReset", "params":{"passPhrase":"FOR TEST PURPOSES ONLY2"}}' |
{"jsonrpc":"2.0","id":3,"result":{"success":false,"error":"incorrect pass phrase"}} |
|
lightReset | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.Warehouse.1.lightReset"}' |
{"jsonrpc":"2.0","id":3,"result":{"success":true}} |
|
isClean | curl --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0", "id":3, "method":"org.rdk.Warehouse.1.isClean"}' |
{"jsonrpc":"2.0","id":3,"result":{"success":true,"files":[],"clean":true}} |
Note: The functions are referred from the RDK Service's Warehouse wiki page
DISCLAIMER: Please note that the use of the RDK Wiki is subject to its Privacy Policy & Terms of Use. In addition, this Wiki may be accessed by all RDK licensees and their contractors.
Powered by a free Atlassian Confluence Open Source Project License granted to RDKCentral. Evaluate Confluence today.