RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
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 3 B+ Model.
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
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
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.
ResidentApp Control
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"} |
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