Skip to content

RDKEMW-2905: USB Feature - UserManual Update #116

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
217 changes: 104 additions & 113 deletions docs/apis/USBDevicePlugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

A org.rdk.UsbDevice plugin for Thunder framework.

### Table of Contents

Check failure on line 9 in docs/apis/USBDevicePlugin.md

View workflow job for this annotation

GitHub Actions / call-fossid-workflow / Fossid Annotate PR

FossID License Issue Detected

Source code with 'Apache-2.0' license found in local file 'docs/apis/USBDevicePlugin.md' (Match: rdkcentral/rdkservices/1, 351 lines, url: https://github.com/rdkcentral/rdkservices/archive/GRT_v1.tar.gz, file: docs/api/WebKitBrowserPlugin.md)

Check failure on line 9 in docs/apis/USBDevicePlugin.md

View workflow job for this annotation

GitHub Actions / call-fossid-workflow / Fossid Annotate PR

FossID License Issue Detected

Source code with 'Apache-2.0' license found in local file 'docs/apis/USBDevicePlugin.md' (Match: rdkcentral/rdkservices/1, 346 lines, url: https://github.com/rdkcentral/rdkservices/archive/GRT_v1.tar.gz, file: docs/api/AVInputPlugin.md)

Check failure on line 9 in docs/apis/USBDevicePlugin.md

View workflow job for this annotation

GitHub Actions / call-fossid-workflow / Fossid Annotate PR

FossID License Issue Detected

Source code with 'Apache-2.0' license found in local file 'docs/apis/USBDevicePlugin.md' (Match: srikanth-vv/rdkservices/7adfb55a80cc409c035b94095144e6d1f5c7f886, 351 lines, url: https://github.com/srikanth-vv/rdkservices/archive/7adfb55a80cc409c035b94095144e6d1f5c7f886.tar.gz, file: docs/api/PlayerInfoPlugin.md)

- [Abbreviation, Acronyms and Terms](#Abbreviation,_Acronyms_and_Terms)
- [Description](#Description)
Expand Down Expand Up @@ -64,21 +64,18 @@

### Parameters

| Name | Type | Description |
| :-------- | :-------- | :-------- |
| params | object | |
This method takes no parameters.

### Result

| Name | Type | Description |
| :-------- | :-------- | :-------- |
| result | object | |
| result.devices | array | An array of USBDevice |
| result.devices[#] | object | |
| result.devices[#].deviceClass | integer | USB class of the device |
| result.devices[#].deviceSubclass | integer | USB Sub class of the device |
| result.devices[#].deviceName | string | Name of the USB device |
| result.devices[#].devicePath | string | The path to be used for the USB device |
| result | array | |
| result[#] | object | |
| result[#].deviceClass | integer | USB class of the device |
| result[#].deviceSubclass | integer | USB Sub class of the device |
| result[#].deviceName | string | Name of the USB device |
| result[#].devicePath | string | The path to be used for the USB device |

### Errors

Expand All @@ -94,8 +91,7 @@
{
"jsonrpc": "2.0",
"id": 42,
"method": "org.rdk.UsbDevice.getDeviceList",
"params": {}
"method": "org.rdk.UsbDevice.getDeviceList"
}
```

Expand All @@ -105,16 +101,14 @@
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"devices": [
{
"deviceClass": 8,
"deviceSubclass": 6,
"deviceName": "001/003",
"devicePath": "/dev/sdb"
}
]
}
"result": [
{
"deviceClass": 8,
"deviceSubclass": 6,
"deviceName": "001/006",
"devicePath": "/dev/sda"
}
]
}
```

Expand All @@ -138,46 +132,45 @@

| Name | Type | Description |
| :-------- | :-------- | :-------- |
| result | object | |
| result.deviceInfo | array | An array of USBDeviceInfo |
| result.deviceInfo[#] | object | |
| result.deviceInfo[#].parentId | integer | Parent Node ID of the device |
| result.deviceInfo[#].deviceStatus | integer | Current device status |
| result.deviceInfo[#].deviceLevel | integer | Device level |
| result.deviceInfo[#].portNumber | integer | Port number of USB on which the device is attached |
| result.deviceInfo[#].vendorId | integer | Vendor ID of the device |
| result.deviceInfo[#].productid | integer | Product ID of the device |
| result.deviceInfo[#].protocol | integer | Protocol supported by the device |
| result.deviceInfo[#].serialnumber | string | Serial number of the device |
| result.deviceInfo[#].device | object | |
| result.deviceInfo[#].device.deviceClass | integer | USB class of the device |
| result.deviceInfo[#].device.deviceSubclass | integer | USB Sub class of the device |
| result.deviceInfo[#].device.deviceName | string | Name of the USB device |
| result.deviceInfo[#].device.devicePath | string | The path to be used for the USB device |
| result.deviceInfo[#].flags | string | Flags of the device |
| result.deviceInfo[#]?.features | integer | <sup>*(optional)*</sup> Features supported by the device - reserved |
| result.deviceInfo[#].busSpeed | string | Speed of the device |
| result.deviceInfo[#]?.numLanguageIds | integer | <sup>*(optional)*</sup> Number of language IDs present on the device |
| result.deviceInfo[#]?.productInfo1 | object | <sup>*(optional)*</sup> |
| result.deviceInfo[#]?.productInfo1?.languageId | integer | <sup>*(optional)*</sup> Language ID present on the device |
| result.deviceInfo[#]?.productInfo1?.serialNumber | string | <sup>*(optional)*</sup> Unicode string representing the serial number of the device |
| result.deviceInfo[#]?.productInfo1?.manufacturer | string | <sup>*(optional)*</sup> Unicode string representing the manufacturer of the device |
| result.deviceInfo[#]?.productInfo1?.product | string | <sup>*(optional)*</sup> Unicode string representing the product |
| result.deviceInfo[#]?.productInfo2 | object | <sup>*(optional)*</sup> |
| result.deviceInfo[#]?.productInfo2?.languageId | integer | <sup>*(optional)*</sup> Language ID present on the device |
| result.deviceInfo[#]?.productInfo2?.serialNumber | string | <sup>*(optional)*</sup> Unicode string representing the serial number of the device |
| result.deviceInfo[#]?.productInfo2?.manufacturer | string | <sup>*(optional)*</sup> Unicode string representing the manufacturer of the device |
| result.deviceInfo[#]?.productInfo2?.product | string | <sup>*(optional)*</sup> Unicode string representing the product |
| result.deviceInfo[#]?.productInfo3 | object | <sup>*(optional)*</sup> |
| result.deviceInfo[#]?.productInfo3?.languageId | integer | <sup>*(optional)*</sup> Language ID present on the device |
| result.deviceInfo[#]?.productInfo3?.serialNumber | string | <sup>*(optional)*</sup> Unicode string representing the serial number of the device |
| result.deviceInfo[#]?.productInfo3?.manufacturer | string | <sup>*(optional)*</sup> Unicode string representing the manufacturer of the device |
| result.deviceInfo[#]?.productInfo3?.product | string | <sup>*(optional)*</sup> Unicode string representing the product |
| result.deviceInfo[#]?.productInfo4 | object | <sup>*(optional)*</sup> |
| result.deviceInfo[#]?.productInfo4?.languageId | integer | <sup>*(optional)*</sup> Language ID present on the device |
| result.deviceInfo[#]?.productInfo4?.serialNumber | string | <sup>*(optional)*</sup> Unicode string representing the serial number of the device |
| result.deviceInfo[#]?.productInfo4?.manufacturer | string | <sup>*(optional)*</sup> Unicode string representing the manufacturer of the device |
| result.deviceInfo[#]?.productInfo4?.product | string | <sup>*(optional)*</sup> Unicode string representing the product |
| result | array | An array of USBDeviceInfo |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should not be an array as per spec

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. currently it is an array in the middleware code. we have created jira (https://ccp.sys.comcast.net/browse/RDKEMW-2907) to work on this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok. We need to prioritize the above ticket and get it fixed quickly as we cannot keep the API Spec broken for long time.

| result[#] | object | |
| result[#].parentId | integer | Parent Node ID of the device |
| result[#].deviceStatus | integer | Current device status |
| result[#].deviceLevel | integer | Device level |
| result[#].portNumber | integer | Port number of USB on which the device is attached |
| result[#].vendorId | integer | Vendor ID of the device |
| result[#].productid | integer | Product ID of the device |
| result[#].protocol | integer | Protocol supported by the device |
| result[#].serialnumber | string | Serial number of the device |
| result[#].device | object | |
| result[#].device.deviceClass | integer | USB class of the device |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Too many fields when compared with the spec.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per current middleware code, we added all these properties..
Please find the response for getDeviceInfo interface...

{"jsonrpc":"2.0","id":42,"result":[{"parentId":6,"deviceStatus":1,"deviceLevel":2,"portNumber":4,"vendorId":1921,"productId":21889,"protocol":0,"serialNumber":"0401805e4532973503374df52c237c098397d34849b2bc891105dbf81be234f933de00000000000000000000ff7c2bd3ff1d6a1881558107882f56e3","device":{"deviceClass":8,"deviceSubclass":6,"deviceName":"001/006","devicePath":"/dev/sda"},"flags":"AVAILABLE","features":0,"busSpeed":"High","numLanguageIds":1,"productInfo1":{"languageId":1033,"serialNumber":"0401805e4532973503374df52c237c098397d34849b2bc891105dbf81be234f933de00000000000000000000ff7c2bd3ff1d6a1881558107882f56e3","manufacturer":" USB","product":" SanDisk 3.2Gen1"},"productInfo2":{"languageId":0,"serialNumber":"","manufacturer":"","product":""},"productInfo3":{"languageId":0,"serialNumber":"","manufacturer":"","product":""},"productInfo4":{"languageId":0,"serialNumber":"","manufacturer":"","product":""}}]}

Copy link
Contributor

@ramasat ramasat Mar 28, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, we can add the missing fields in the API Spec. However, we need to introduce the "deviceInfo" object in the response (For ex., result.deviceInfo.parentId) . Please create a new ticket or expand the scope for https://ccp.sys.comcast.net/browse/RDKEMW-2907 to add fix for this.

| result[#].device.deviceSubclass | integer | USB Sub class of the device |
| result[#].device.deviceName | string | Name of the USB device |
| result[#].device.devicePath | string | The path to be used for the USB device |
| result[#].flags | string | Flags of the device |
| result[#]?.features | integer | <sup>*(optional)*</sup> Features supported by the device - reserved |
| result[#].busSpeed | string | Speed of the device |
| result[#]?.numLanguageIds | integer | <sup>*(optional)*</sup> Number of language IDs present on the device |
| result[#]?.productInfo1 | object | <sup>*(optional)*</sup> |
| result[#]?.productInfo1.languageId | integer | Language ID present on the device |
| result[#]?.productInfo1.serialNumber | string | Unicode string representing the serial number of the device |
| result[#]?.productInfo1.manufacturer | string | Unicode string representing the manufacturer of the device |
| result[#]?.productInfo1.product | string | Unicode string representing the product |
| result[#]?.productInfo2 | object | <sup>*(optional)*</sup> |
| result[#]?.productInfo2.languageId | integer | Language ID present on the device |
| result[#]?.productInfo2.serialNumber | string | Unicode string representing the serial number of the device |
| result[#]?.productInfo2.manufacturer | string | Unicode string representing the manufacturer of the device |
| result[#]?.productInfo2.product | string | Unicode string representing the product |
| result[#]?.productInfo3 | object | <sup>*(optional)*</sup> |
| result[#]?.productInfo3.languageId | integer | Language ID present on the device |
| result[#]?.productInfo3.serialNumber | string | Unicode string representing the serial number of the device |
| result[#]?.productInfo3.manufacturer | string | Unicode string representing the manufacturer of the device |
| result[#]?.productInfo3.product | string | Unicode string representing the product |
| result[#]?.productInfo4 | object | <sup>*(optional)*</sup> |
| result[#]?.productInfo4.languageId | integer | Language ID present on the device |
| result[#]?.productInfo4.serialNumber | string | Unicode string representing the serial number of the device |
| result[#]?.productInfo4.manufacturer | string | Unicode string representing the manufacturer of the device |
| result[#]?.productInfo4.product | string | Unicode string representing the product |

### Errors

Expand Down Expand Up @@ -206,54 +199,52 @@
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"deviceInfo": [
{
"parentId": 0,
"deviceStatus": 1,
"deviceLevel": 1,
"portNumber": 1,
"vendorId": 1921,
"productid": 21889,
"protocol": 0,
"serialnumber": "4C530000120309105565",
"device": {
"deviceClass": 8,
"deviceSubclass": 6,
"deviceName": "001/003",
"devicePath": "/dev/sdb"
},
"flags": "AVAILABLE",
"features": 0,
"busSpeed": "Super",
"numLanguageIds": 2,
"productInfo1": {
"languageId": 10,
"serialNumber": "B32FD507",
"manufacturer": "Alcor Micro Corp",
"product": "Flash Drive"
},
"productInfo2": {
"languageId": 10,
"serialNumber": "B32FD507",
"manufacturer": "Alcor Micro Corp",
"product": "Flash Drive"
},
"productInfo3": {
"languageId": 10,
"serialNumber": "B32FD507",
"manufacturer": "Alcor Micro Corp",
"product": "Flash Drive"
},
"productInfo4": {
"languageId": 10,
"serialNumber": "B32FD507",
"manufacturer": "Alcor Micro Corp",
"product": "Flash Drive"
}
"result": [
{
"parentId": 0,
"deviceStatus": 1,
"deviceLevel": 1,
"portNumber": 1,
"vendorId": 1921,
"productid": 21889,
"protocol": 0,
"serialnumber": "4C530000120309105565",
"device": {
"deviceClass": 8,
"deviceSubclass": 6,
"deviceName": "001/006",
"devicePath": "/dev/sda"
},
"flags": "AVAILABLE",
"features": 0,
"busSpeed": "Super",
"numLanguageIds": 2,
"productInfo1": {
"languageId": 1033,
"serialNumber": "04011a1ac241414372e459026efb4429e88c8b51d9f5d101fb0c73505a872c1cc9ae0000000000000000000020c9773500885a1881558107882f26a7",
"manufacturer": "USB",
"product": "SanDisk 3.2Gen1"
},
"productInfo2": {
"languageId": 0,
"serialNumber": "...",
"manufacturer": "...",
"product": "..."
},
"productInfo3": {
"languageId": 0,
"serialNumber": "...",
"manufacturer": "...",
"product": "..."
},
"productInfo4": {
"languageId": 0,
"serialNumber": "...",
"manufacturer": "...",
"product": "..."
}
]
}
}
]
}
```

Expand Down Expand Up @@ -404,8 +395,8 @@
"device": {
"deviceClass": 8,
"deviceSubclass": 6,
"deviceName": "001/003",
"devicePath": "/dev/sdb"
"deviceName": "001/006",
"devicePath": "/dev/sda"
}
}
}
Expand Down Expand Up @@ -437,8 +428,8 @@
"device": {
"deviceClass": 8,
"deviceSubclass": 6,
"deviceName": "001/003",
"devicePath": "/dev/sdb"
"deviceName": "001/006",
"devicePath": "/dev/sda"
}
}
}
Expand Down
Loading
Loading