PDS-062489 SDVoE Developers API Reference Guide Rev1p6
PDS-062489 SDVoE Developers API Reference Guide Rev1p6
2.1 Events
Change of status or an occurrence of an event, such as a change of device state, trigger an API event. To have
active clients remain up to date with state changes, these events need to be handled.
Such events can be managed either by polling for list of latest events using a WebSocket to monitor for
asynchronous event notifications. Refer to the Introduction to the SDVoE API User Guide for more information
on event types, tracking device states and event buffering.
Return
Command Description Errors
Value
mode human Enable/disable human-readable output mode. null ILLEGAL_ARGUMENT occurs when
When enabled, the JSON responses returned an invalid value is specified.
by the API are indented and formatted to be
more easily read.
When disabled, the JSON return contains no
newline, space or other white space
characters.
require Verifies if the requested version of API null VERSION returned when API not
command module is available in current API compatible with requested version.
Server and loads it if it is. UNSUPPORTED_FEATURE returned
TIP: Compatibility rules are outlined in when requested module unsupported
Introduction to the SDVoE API User by the API version.
Guide.
version Retrieve version of the command module that null ILLEGAL_COMMAND occurs if the
is currently loaded. API version running is legacy version,
prior to API 2.4.
The following sections detail, as well as provide examples, for each of the core commands outlined above.
3.1.1 Arguments
The argument is a Boolean argument specifying whether to enable (TRUE) or disable (FALSE) the human-
readable output mode.
3.1.3 Errors
ILLEGAL_ARGUMENT Occurs when an invalid value is specified in the request syntax.
3.1.4 Example
GET /api?human=true HTTP/1.1
…
HTTP/1.1 200 OK
…
{
"status": "SUCCESS",
"request_id": null,
"result": {
"server": "Control Server",
"vendor": "Semtech",
"version": "3.3.0.0",
"modules": [
{
"name": "api",
"version": "3.3.0.0"
}
]
},
"error": null
}
3.2.1 Arguments
The module_name argument is the name of the command module.
The version argument is the requested version.
3.2.3 Errors
VERSION The requested version is not compatible.
UNSUPPORTED_FEATURE The requested module is not supported.
3.3.1 Arguments
None
3.3.3 Errors
ILLEGAL_COMMAND Occurs if API version is before 2.4.
3.3.4 Example
GET /api HTTP/1.1
…
HTTP/1.1 200 OK
…
Command Description
auth Endpoint device is authenticated to an API server, applicable to BlueRiver ASIC devices.
claim Associates a device(s) with the API Server from which the command was issued, so it is
controlled exclusively through this API instance. An unauthorized API server on the network
will not be able to control a claimed device.
The effect of this command is undone with the release command. Performing a factory
reset of the target device(s) associated to the API Server also releases the claim.
event Get a list of events.
Query arguments supported to allow for filtering of event types. This includes:
after=event_id
limit=limit
type=types
settings_change=subsets
factory Restore the factory default settings of a device or group of devices. If the target device(s) was
associated with the API server by use of auth or claim requests, it is released.
get The get command fetches information from a single device or group of devices.
For each device, information retrieved is a subset of the device object, which contains all
configuration, status, supported features and other information about the device.
join Subscribe one or more decoder (RX) devices to a video or audio stream.
Four stream types supported:
STEREO_AUDIO Stereo audio stream
HDMI HDMI video stream
HDMI_AUDIO HDMI audio stream
MULTICH_AUDIO Multichannel audio stream
leave Unsubscribe one or more decoder (RX) devices from a subscribed AV stream.
list Two options available for the list command:
1. list firmware
List all firmware update files available to the API server.
2. list multicast
List information regarding the multicast IP addresses currently in use.
Following subsections review each of the supported commands included in API version 3.3. Each command
includes details of command arguments, return values and examples.
POST /api/device/{target}
{
"op" : "unauth"
}
Note: This feature was enabled in API version 3.3, BlueRiver firmware 1.3.
4.3.1 Arguments
The target argument must be either the device ID of a single device or the name of a device group.
The allowed device groups are:
ALL All devices
ALL_TX All transmitter devices
ALL_RX All receiver devices
4.3.3 Errors
The auth/unauth command can fail with the following error:
CONFIGURATION If this feature has not been enabled in the API server configuration.
PROTOCOL NOT FOUND This message is provided when the command is not supported by the API.
The auth/unauth command can fail for a specific device with the following error:
DEVICE_TYPE The firmware does not support this feature.
POST /api/device/{target}
{
"op" : "release"
}
4.4.1 Arguments
The target argument must be either the device ID of a single device or the name of a device group.
The allowed device groups are:
ALL All devices
ALL_TX All transmitter devices
ALL_RX All receiver devices
4.4.3 Errors
The claim command can fail with the following error:
CONFIGURATION If this feature has not been enabled in the API server configuration.
The claim command can fail for a specific device with the following error:
DEVICE_TYPE The firmware does not support this feature.
4.5.3 Errors
None
4.5.4 Example
GET /api/event?after=49 HTTP/1.1
…
HTTP/1.1 200 OK
…
{
"status" : "SUCCESS",
"request_id" : null,
"result" : {
"events" : [{
"device_id" : "d8803962abcd",
"event_id" : 50,
"event_type" : "SETTINGS_CHANGED",
"timestamp" : 1450386633,
"request_id" : 29
},
{
"device_id" : "d8803962b2d9",
"event_id" : 51,
"event_type" : "DEVICE_CONNECTED",
"timestamp" : 1450386633,
"request_id" : null
},
{
"device_id" : "d8803962b2d9",
"event_id" : 52,
"event_type" : "DEVICE_INFO_AVAILABLE",
"timestamp" : 1450386633,
"request_id" : 30
PDS-062489 Rev 1.6 Page 43 of 352
SDVoE Developers API March 2023 The information contained herein is the exclusive property of Semtech and shall not
Reference Guide be distributed, copied, reproduced or disclosed in whole or in part without prior
written permission of Semtech or its licensees.
}]
},
"error" : null
}
4.6.1 Arguments
The target argument must be either the device ID of a single device or the name of a device group.
The allowed device groups are:
ALL: All devices
ALL_TX: All transmitter devices
ALL_RX: All receiver devices
4.6.3 Errors
ILLEGAL_ARGUMENT Occurs if the target argument is not a valid device ID or group name.
4.6.4 Example
POST /api/device/001ec0f03668 HTTP/1.1
…
{
"op" : "factory"
}
HTTP/1.1 201 Created
Location: /api/request/18772
…
{
"status" : "PROCESSING",
"request_id" : 18772,
"result" : null,
"error" : null
}
4.7.1 Arguments
The target argument must be either the device ID of a single device or the name of a device group.
The allowed device groups are:
ALL: All devices
ALL_TX: All transmitter devices
ALL_RX: All receiver devices
The valid values for the subset argument and their meaning are provided in the table below.
4.7.3 Errors
ILLEGAL_ARGUMENT Occurs if the target argument is not a valid device ID or group name.
ILLEGAL_ARGUMENT Also occurs if the subset argument is not a valid subset name.
4.7.4 Examples
For example data of various get returns refer to Appendix: Get Command Output Examples.
4.8.1 Arguments
The target argument must be either the device ID of a single device or the name of a device group.
The allowed device groups are:
ALL: All devices
ALL_TX: All transmitter devices
ALL_RX: All receiver devices
The index argument represents the Icron module, since there is only one Icron module mounted the index
value is always 0. If the index is not specified the default is 0.
4.8.3 Errors
If the Icron extender does not support the Reset command, an error message like "request not supported by
device" is returned.
4.8.4 Example
The example below resets the Icron module of endpoint device 0016c035566e.
POST /api/device/0016c035566e
{
"op" : "icron:reset",
"index" : 0
}
HTTP/1.1 201 Created
Location: /api/request/101
…
{
"status" : "PROCESSING",
"request_id" : 101,
"result" : null,
"error" : null
}
4.9.1 Arguments
The target argument must be either the device ID of a single receiver device or the name of a device group.
The allowed device groups for the join command are:
ALL All devices
ALL_RX All receiver devices
The source_device argument must be the device ID of a single transmitter device.
The stream_type argument must be a valid stream type. The following types are supported:
STEREO_AUDIO Stereo audio stream
HDMI HDMI video stream
HDMI_AUDIO HDMI audio stream
MULTICH_AUDIO Multichannel audio stream
The index_tx argument must the valid index of a stream of the specified type available on the source device.
TIP: For the command to succeed, the source stream must currently be started/running. Refer to section
4.19 Command start for information on starting device streams.
The subscription_type argument is optional. If specified, it must be identical to the stream_type
argument. Subscriptions can only join streams of the same type.
The subscription_index argument must be a valid index of a subscription of specified type on the
destination device.
4.9.3 Errors
It is possible that an error could be returned when a join command is issued. Possible errors include:
ILLEGAL_ARGUMENT Indicates the arguments entered are invalid.
INVALID_STATE Occurs if the source device is disconnected.
The request may also fail for individual devices for the following reasons:
INVALID_STATE Indicates that the source stream is stopped
DEVICE_DISCONNECTED if the source or destination device is disconnected
If source device is not connected when a join command is issued, the command fails with the error,
INVALID_STATE.
If the source device is disconnected while the command is being processed, the command may fail for some
destination devices with DEVICE_DISCONNECTED.
4.10.3 Errors
ILLEGAL_ARGUMENT Occurs if the arguments entered are invalid.
The request may also fail for individual devices for the following reason:
DEVICE_TYPE Occurs if device receiving the command is not a receiver device.
4.10.4 Example
POST /api/device/001ec0f04d9c HTTP/1.1
…
{
"op" : "leave",
"subscription_type" : "HDMI",
"subscription_index" : 0
}
HTTP/1.1 201 Created
Location: /api/request/3929
…
4.11.1.2 Example
GET /api/firmware HTTP/1.1
…
HTTP/1.1 200 OK
{
"status" : "SUCCESS",
"request_id" : null,
"result" : {
"firmware" : [
10GTXEgressDataPath
A 10GTXEgressDataPath has the following format:
{
"type" : String,
"index" : Integer,
"bandwidth" : 10GTXEgressBandwidth,
"counters" : 10GTXEgressCounters,
"dropped_frames" : 10GTXEgressMissedFramesFlags
}
Table 20: 10G TX Egress Data Path object members
HTTP/1.1 200 OK
...
{
"status" : "SUCCESS",
"request_id" : 17,
"result" : {
"clear_statistics" : [
{
"device_id" : "d8803962b3c3"
},
{
"device_id" : "d8803962e132"
},
{
"device_id" : "d880396317ef"
}
],
"error" : [
{
"device_id" : "001ec0f03668",
"reason" : "DEVICE_TYPE",
"message" : "Statistics is not supported on this device"
},
{
"device_id" : "001ec0f03cc1",
"reason" : "DEVICE_TYPE",
PDS-062489 Rev 1.6 Page 73 of 352
SDVoE Developers API March 2023 The information contained herein is the exclusive property of Semtech and shall not
Reference Guide be distributed, copied, reproduced or disclosed in whole or in part without prior
written permission of Semtech or its licensees.
"message" : "Statistics is not supported on this device"
},
{
"device_id" : "d88039e7fa53",
"reason" : "DEVICE_TYPE",
"message" : "Statistics is not supported on this device"
}
]
},
"error" : null
}
4.14.3 Errors
ILLEGAL_ARGUMENT If the target argument is not a valid device ID or group name.
4.14.4 Example
POST /api/device/001ec0f03668
…
{
"op" : "reboot"
}
HTTP/1.0 200 OK
…
4.16.1 Arguments
The request_id is a request identification number included in either:
1. A PROCESSING command response.
2. Alternatively, the associated event object.
The reduced_settings_change query argument specifies whether reduced SETTINGS_CHANGED
events are enabled (on) or disabled (off). This is only relevant for SETTINGS_CHANGED events and ignored
otherwise. Refer to section 4.16.15 Requests associated with event SETTINGS_CHANGED for details.
4.16.3 Errors
ILLEGAL_ARGUMENT If specified request ID does not exist. This also includes calling the request
command with an expired request number.
4.16.4 Examples
For details, refer to examples provided in the following subsections.
PDS-062489 Rev 1.6 Page 81 of 352
SDVoE Developers API March 2023 The information contained herein is the exclusive property of Semtech and shall not
Reference Guide be distributed, copied, reproduced or disclosed in whole or in part without prior
written permission of Semtech or its licensees.
4.16.5 Requests associated with background commands
Reminder: The REQUEST_COMPLETE event indicates the completion of a background command.
Once a request completes, the return type is as documented for a background command.
If the request is called before the request completes, without first checking for REQUEST_COMPLETE event
type, the request command responds with status PROCESSING and the same request ID as the one specified
when calling the request.
4.16.5.1 Example
The examples below illustrate how the request command is used to confirm successful execution of a stop
command that was sent to a specific device to stop the native HDMI video stream (stream 0).
POST /api/device/001ec0f03668 HTTP/1.1
…
{
"op" : "stop",
"subscription_type" : "HDMI",
"index" : 0,
"free" : false
}
HTTP/1.1 201 Created
Location: /api/request/85521
…
{
"status" : "PROCESSING",
"request_id" : 85521,
"result" : null,
"error" : null
}
GET /api/event?lastseen=85528 HTTP/1.1
…
HTTP/1.1 200 OK
…
{
"status" : "SUCCESS",
"request_id" : null,
"result" : {
"events" : [
{
"device_id" : null,
"event_id" : 85529,
"event_type" : "REQUEST_COMPLETE",
"timestamp" : 1462902262,
"request_id" : 85521
}
]
},
PDS-062489 Rev 1.6 Page 82 of 352
SDVoE Developers API March 2023 The information contained herein is the exclusive property of Semtech and shall not
Reference Guide be distributed, copied, reproduced or disclosed in whole or in part without prior
written permission of Semtech or its licensees.
"error" : null
}
GET /api/request/85521 HTTP/1.1
…
HTTP/1.1 200 OK
…
{
"status" : "SUCCESS",
"request_id" : 85521,
"result" : {
"devices" : [
{
"device_id" : "001ec0f03668",
...
}
],
"error" : []
},
"error" : null
}
request 1300
update progress object array
{
"status" : "SUCCESS",
"request_id" : 1300,
"result" : {
"i2c_event" : [
{
"device_id" : "001ec0f03668",
"event_source" : 4
PDS-062489 Rev 1.6 Page 87 of 352
SDVoE Developers API March 2023 The information contained herein is the exclusive property of Semtech and shall not
Reference Guide be distributed, copied, reproduced or disclosed in whole or in part without prior
written permission of Semtech or its licensees.
}
],
"error" : []
},
"error" : null
}
Property Section
Device Configuration 7.1 Device Configuration
Stream Configuration 7.2 Stream Configuration
Configurable Nodes
Stereo Audio Input/Output 7.3 Stereo Audio Input/Output Node Configuration
Stereo Audio Output 7.4 Stereo Audio Output Node Configuration
CEC 7.5 CEC Node Configuration
Color Generator 7.6 Color Generator Node Configuration
Frame Buffer 7.7 Frame Buffer Node Configuration
HDMI Audio 7.8 HDMI Audio Node Configuration
HDMI Decoder 7.9 HDMI Decoder Node Configuration
HDMI Encoder 7.10 HDMI Encoder Node Configuration
Multi Channel Input 7.11 Multi Channel Audio Input Node Configuration
Multi Channel Output 7.12 Multi Channel Audio Output Node Configuration
Network Port 7.13 Network Port Node Configuration
Network Switch 7.14 Network Switch Node Configuration
Scaler 7.15 Scaler Node Configuration
UART 7.16 UART Node Configuration
Icron 7.17 Icron USB Extender Node Configuration
Video Compressor 7.18 Video Compressor Node Configuration
Video Decompressor 7.19 Video Decompressor Node Configuration
For more information on configuration properties and a list of configurable device properties, refer to section 7
Configurable Device Properties.
4.18.4.1 Arguments
The target argument varies depending on the specific property being configured, but it is always either the
device ID of a single device or the name of one of the following device groups:
ALL All devices
ALL_TX All transmitter devices
ALL_RX All receiver devices
Refer to the specific property of interest for more details on the supported targets for the configurable property;
links are included in the table above.
The key argument identifies a configurable property of a device and the value argument is a value of a type
appropriate for that property.
The key argument is a path referring to an object member inside the device object, starting at the root of the
device object. Refer to section 6 Device Object Definition (DeviceObject) for more details on device objects.
There are some syntax rules that need to be considered for the key argument, they are as follows:
• The key starts with the name of one of the members of the device object.
• Object members are accessed by appending a period (.) followed by the member name.
• Array elements are accessed by appending an array selector between square brackets ([ and ]).
POST /api/device/{target}
{
"op": "set:security_key",
"module": "usb",
"key_type": "CUSTOM",
"key_phrase": "<custom encryption phrase key>"
}
Reminder: The security_key command is used to configure the encryption key for USB-HID IP
communication for the specified device(s). This API command is only applicable to endpoint
devices based on the BlueRiver ASIC series, not applicable to NT1000/NT2000 devices.
POST /api/device/d88039e7fa53
{
"op": "set:security_key",
"module": "usb",
"key_type": "CUSTOM",
"key_phrase": "7fwdXVqxYypkkvpN8HCF63Nd"
}
{
"status": "PROCESSING",
"request_id": 466,
"result": null,
"error": null
}
To set the USB HID to autodetect if it should act as a LOCAL or REMOTE extender, enable the On-the-Go
(OTG) option:
POST /api/device/010203040506 HTTP/1.1
…
{
"op" : "set:usb",
"role" : "OTG"
}
POST /api/device/010203040506
{
"op" : "set:usb",
"security” :
"level" : “DISABLED”
}
}
Request below sets the extender role to REMOTE and enables USB HID security encryption for a specific device.
POST /api/device/010203040506
{
"op" : "set:usb",
"role" : REMOTE
"security” : {
"level" : “ENABLED”
}
}
4.19.1 Arguments
The target argument must be either the device ID of a single transmitter device or the name of a
device group.
The allowed device groups are:
ALL All devices
ALL_TX All transmitter devices
Exception: If the dest_address argument is specified the target must then be the device ID of a single
transmitter device.
Notes:
i. The stream_type argument specified must be a valid stream type.
ii. This command applies only to transmitter devices.
The following stream types are supported:
STEREO_AUDIO Start the Stereo audio stream, sometimes referred to as analog audio.
HDMI Start an HDMI video stream.
HDMI_AUDIO Start an HDMI audio streams.
MULTICH_AUDIO Start a Multichannel audio streams.
THUMBNAIL Use to start a video thumbnail stream.
For RS-232, Infrared and other non-AV stream types, use the switch command. For details refer to section
4.21 Command switch.
The stream_index argument must be the valid index of a stream of the specified type.
The dest_address argument, if present, specifies the destination IP address of the stream.
• Must be an available and unused multicast IP address within the allocation range configured in the
configuration file of the API Server. The default range is to [224.1.1.1, 224.1.3.255]).
The following are invalid for the dest_address argument:
• The “all TX” multicast IP address (specified in the configuration file, defaults to 224.1.1.253).
• The legacy “all TX” multicast IP address 224.1.1.253 (which may or may not be identical to the above
depending on API configuration file content).
• The “all RX” multicast IP address (specified in the configuration file, defaults to 224.1.1.254).
4.19.3 Errors
ILLEGAL_ARGUMENT Returned if target argument is an invalid device ID or group name.
Also returned if the target argument is not a valid device ID and a multicast IP
address was specified.
ILLEGAL_ARGUMENT In addition, this error is reported if no stream type or index was specified but
a multicast IP address was specified.
ILLEGAL_ARGUMENT Also, is reported when a multicast IP address outside the configurable
allocation range is specified.
ILLEGAL_ARGUMENT Finally, is also reported if a reserved multicast IP address is specified.
The operation may also fail for individual devices. Errors returned include the following:
DEVICE_TYPE If the device does not have the specified stream type or index.
DEVICE_TYPE If the specified device is a receiver.
INVALID_STATE If the specified multicast IP address is currently in use by another stream.
INVALID_STATE If there are no more multicast IP addresses available.
INVALID_STATE If starting scaled stream (stream 1) but scaler resolution was not specified.
INVALID_STATE If starting a thumbnail stream but the thumbnail generator is not configured.
4.19.4 Examples
Below is an example of starting the HDMI video stream for an individual device.
POST /api/device/001ec0f04d9c HTTP/1.1
…
{
"op" : "start",
"stream_type" : "HDMI",
"stream_index" : 0
}
HTTP/1.1 201 Created
Location: /api/request/61
…
{
"status" : "PROCESSING",
"request_id" : 61,
"result" : null,
"error" : null
}
4.20.1 Arguments
The target argument must be either the device ID of a single device or the name of a device group. The
allowed device groups are:
ALL All devices
ALL_TX All transmitter devices
ALL_RX All receiver devices
The stream_type argument entered for the stop command must be a valid stream type. The following
types are supported for all device types:
CEC For a CEC data stream.
INFRARED For an infrared data stream.
MULTICH_AUDIO For a multichannel audio stream.
RS232 For an RS-232 data stream.
USB_HID For a USB HID data stream.
USB_ICRON For USB 2.0 stream.
PDS-062489 Rev 1.6 Page 128 of 352
SDVoE Developers API March 2023 The information contained herein is the exclusive property of Semtech and shall not
Reference Guide be distributed, copied, reproduced or disclosed in whole or in part without prior
written permission of Semtech or its licensees.
Warning! Regarding the Icron SUI feature if this is being used and a stop command is issued for the
USB_ICRON stream type, all pairings are removed. Refer to the SDVoE Developers API
Application Note Library in the Icron integration section for details.
In addition, the following stream types are supported on transmitter devices only:
STEREO_AUDIO For a stereo audio stream.
HDMI For an HDMI video stream.
HDMI_AUDIO For an HDMI audio stream.
THUMBNAIL For a video thumbnail stream.
Note: For above stream types the target argument cannot be a receiver (RX) device or the ALL_RX
device group.
The stream_index argument must the valid index of a stream of the specified type.
If the stream_index argument is omitted, than all streams of the given type are stopped.
If the stream_type argument is omitted, than all streams of the following types are stopped:
HDMI For an HDMI video stream.
HDMI_AUDIO For an HDMI audio stream.
STEREO_AUDIO For a stereo audio stream.
MULTICH_AUDIO For a multichannel audio stream.
If stream_type is omitted, the target argument cannot be a receiver (RX) device or the ALL_RX group.
If the free argument is true then the multicast IP address associated with each target stream is
freed/unassigned.
For streams with a type of either RS232 or INFRARED where no multicast IP address is associated with the
stream, the free keyword is allowed but ignored. This also applies to a THUMBNAIL stream (NT1000/NT2000
devcies) when a unicast address is associated with the thumbnail stream instead of a multicast address.
Note: Refer to the Introduction to the SDVoE API User Guide for more information on audio routing.
4.20.3 Errors
ILLEGAL_ARGUMENT Occurs when the target argument is not a valid device ID or group name.
The operation may also fail for devices individually for the following reasons:
DEVICE_TYPE Occurs if device does not have the specified stream type or index.
DEVICE_TYPE Occurs if stream_type argument omitted and specified device a receiver.
POST /api/device/{target}
{
"op" : "switch:address",
"stream_type" : String,
"stream_index" : Integer,
"dest_address" : String
}
Reminders:
i. The switch command is used to set the stream destination for a device. It establishes a one-way
connection between the source and destination devices.
ii. To establish a two-way connection between any two devices, the command must be issued a second
time with the source and destination reversed.
Notes:
i. A device cannot send data to itself.
ii. The second form of the command with the api keyword requires firmware support for NT1000/NT2000
devices of 3.4.0.0 or later and for BlueRiver series device firmware 1.0.0.0 or higher.
4.21.1 Arguments
The target argument must be either the device ID of a single device or the name of a device group.
The allowed device groups are:
ALL All devices
ALL_TX All transmitter devices
ALL_RX All receiver devices
The stream_type argument entered must one of the following stream types:
CEC CEC data stream.
INFRARED Infrared (IR) data stream.
RS232 RS-232 data stream.
USB_HID USB HID data stream.
USB_ICRON For USB 2.0 stream.
Note: Issuing a switch command for USB_ICRON streams removes all current pairings, refer to section
4.13 Command pair/unpair (Icron SUI) for more information on pairing Icron modules using the
Simutaneous User Interaction (SUI) pairing feature.
Reminder: For audio and video stream types, refer to the start command, section 4.19.
The stream_index argument must the valid index of a stream of the specified type on the source device.
4.21.3 Errors
ILLEGAL_ARGUMENT Occurs when the arguments entered are invalid.
INVALID_STATE This occurs if the destination device is disconnected.
The request may also fail for individual devices for the following reasons:
INVALID_OPERATION Occurs when the device is being configured to send data to itself.
DEVICE_TYPE Occurs when second form of the command is used and the firmware is not
recent enough to support request.
4.21.4 Examples
Routing the third RS-232 port from a device to another:
POST /api/device/001ec0f03668 HTTP/1.1
…
{
"op" : "switch:device",
"stream_type" : "RS232",
"stream_index" : 2,
"dest_device" : "001ec0f04d9c",
"subscription_index" : 2
}
HTTP/1.1 201 Created
Location: /api/request/61
…
POST /api/device/0017c0355675
{
"op" : "switch:device",
"stream_type" : "USB_ICRON",
"stream_index" : 0,
"dest_device" : "0016c035566f",
"subscription_index" : 0
}
4.22.1 Arguments
The target argument must be either the device ID of a single device or the name of a device group.
The allowed device groups are:
ALL All devices
ALL_TX All transmitter devices
ALL_RX All receiver devices
The file_name argument is the file name of a firmware file. The available firmware files can be listed with the
list firmware command, refer to section 4.11.1 Command list firmware.
4.22.3 Errors
ILLEGAL_ARGUMENT Occurs when target argument entered is not valid device ID or group name.
IO_ERROR Occurs when the firmware file cannot be opened.
The request may also fail for individual devices for the following reasons:
IO_ERROR Occurs when the firmware file cannot be read.
RESOURCE_NOT_FOUND Specified firmware file does not contain a firmware valid for the device.
4.22.4 Examples
POST /api/device/001ec0f04d9c HTTP/1.1
…
{
"op" : "update",
"file_name" : "blueriver_rdk_2-0-0-0.apz"
}
HTTP/1.1 201 Created
Location: /api/request/32170
…
{
"status" : "PROCESSING",
"request_id" : 32223,
"result" : null,
"error" : null
}
GET /api/request/32223 HTTP/1.1
…
HTTP/1.1 200 OK
…
{
"status" : "SUCCESS",
"request_id" : 32223,
"result" : {
"update" : [
{
"device_id" : "001ec0f04d9c"
}
],
"error" : []
},
"error" : null
}
Header
USB Descriptors
String Descriptors (optional)
Report Descriptors
These items are described in the following sub-sections.
Offset Size
Name Description
(Byte) (Bytes)
0 magic 1 Contains the hexadecimal value 5B.
1 version 1 Contains value 1, which identifies this version of header and descriptor packing.
2 size 2 The size, in bytes, of the packed binary data, including the header.
4 descsize 2 The size, in bytes, of the USB descriptors.
6 stroff 2 The offset of the string descriptors from the start of the packed binary data
(including the header). Undefined (i.e. can be set to any value) if the string
descriptors are omitted.
8 strsize 2 The size, in bytes, of the string descriptors. Must be set to zero (0) if the string
descriptors are omitted.
10 reportoff 2 The offset of the report descriptors from the start of the packed binary data
(including the header).
12 reportnum 2 The number of report descriptors.
14 checksum 2 A checksum computed on the whole packed binary data.
The checksum is computed as follow: the checksum field in the header is set to zero, then the value of all bytes,
including the header and everything that follows, are added together.
4.23.1.2 Standard USB and HID Descriptors
The descriptors start immediately after the header. All descriptors, with the exception of string descriptors and
class-specific report descriptors, are concatenated together without padding. Their total size is indicated by the
descsize field in the header.
Each descriptor is formatted as specified in the USB 2.0 Specification. Among other things, this means each
descriptor starts with a one-byte length, followed by a one-byte descriptor type. With this information, it is
possible to enumerate descriptors and identify their type.
4.23.1.3 String Descriptors
If present, the string descriptors start at the offset specified in the stroff field of the header. String
descriptors are concatenated together without padding. Their total size is indicated by the strsize field in
the header.
String descriptors are optional. If they are omitted, the strsize field is set to zero. In that case, the value of
stroff is undefined (i.e. it can have any value).
The string descriptors follow the format specified by the USB 2.0 Specification.
4.23.1.4 Report Descriptors
Report descriptors are class-specific descriptors specified by the Device Class Definition for Human Interface
Devices (HID). They differ from standard USB descriptors in that they are variable in size.
Report descriptors start at the offset specified in the reportoff field of the header. The number of report
descriptors is indicated by the reportnum field in the header.
Offset Size
Name Description
(Byte) (Bytes)
0 size 2 The size of the report descriptor, excluding this header.
2 config 1 Index of the USB configuration to which this report descriptor applies.
3 interface 1 The index of the USB interface to which this report descriptor applies.
4.23.1.5 Other Constraints
The total length of the packed descriptors, cannot be more than 1024 bytes.
4.23.2.3 Errors
The request may also fail for individual devices for the following reasons:
INVALID_STATE If the device is not configured in the correct role.
DEVICE_TYPE If the target device does not support USB extension.
DEVICE_TYPE If the USB device index is out of range.
4.23.2.4 Examples
POST /api/device/010203040506 HTTP/1.1
…
{
"op" : "usb:descriptor:read",
"index" : 0
}
HTTP/1.1 201 Created
Location: /api/request/61
…
Each item in the layout array (LayoutItemObject) has the following structure:
{
"name" : String
}
Table 78: Layout Item Object Member
DELETE /api/multiview/layout/{name}/surface/{index}
5.2.6.1 Arguments
The name argument is the name of the multiview layout.
The index argument is the index of the surface, must be numerical number between 0 and 31.
The horizontal_position and vertical_position arguments are respectively the horizontal and
vertical start positions of the surface in the frame buffer, in pixels.
Note: The horiz_position argument cannot be less than 8-pixels and is applied in increments of two
pixels, so for example 8, 10, 12, etc.
The width and height arguments are respectively the width and height of the surface, in pixels.
Note: The width argument can also not be less than 8-pixels and is applied in increments of two pixels, so
for example 8, 10, 12, etc.
If the delete keyword is present, the surface is deleted if it exists.
DELETE /api/multiview/layout/{name}/window/{index}
5.2.7.1 Arguments
The name argument is the name of the multiview layout.
The index argument is the index of the window, which must be between 0 and 31.
The horizontal_position and vertical_position arguments are respectively the horizontal and
vertical start positions of the window on the screen, in pixels.
Note: The horizontal_position argument cannot be less than 8-pixels and is applied in increments of
two pixels, so for example 8, 10, 12, etc.
The width and height arguments are respectively the width and height of the window in pixels.
Note: The width argument also cannot be less than 8-pixels and is applied in increments of two pixels, so
for example 8, 10, 12, etc.
6.8.10.3 Inputs
Table 122: HDMI decoder node input object members
The HDMI decoder node input is only configurable on devices with multiple video inputs.
6.8.10.4 Example
example shows an HDMI decoder node JSON object returned as part of the output of “get device”.
{
"type" : "HDMI_DECODER",
"index" : 0,
"configuration" : {
"edid" :
"00ffffffffffff000614000156524c420816010380341d780a01c1a05747982712
4c4c21080081400101010101010101010101010101023a801871382d40582c46004
0846300001e08e80030f2705a80b0588a00ba892100001e000000fc004170746f56
6973696f6e20200a000000fd0018550e853c000a202020202020012002034073580
102030405111213141f2021220607905d5e5f6263646061230d0707830f00006d03
0c001000383c20406801020367d85dc401788003e40f0000c0011d00bc52d01e20b
828554040846300001e023a80d072382d40102c458040846300001e023a80187138
2d40582c450040846300001e000000000000000000f2",
"hdcp_support_enable" : true,
"hdcp_22_support_disable" : false
Property key
configuration.device_name
Since 3.0
Type String
Description Device name, maximum 19 characters. All displayable characters in the ASCII character
set are allowed, meaning a to z, A to Z, 0 to 9, space, as well as symbols. Starting in API
3.5 the device name can be used in an API request instead of the device ID (MAC
address). As of the BlueRiver firmware 1.5 the device name is persistent following a
factory reset. Refer to the SDVoE Developers API Application Note Library for example
and details of using the device name.
Note: This property can only be set for a single device at a time.
Property key
configuration.resume_streaming
Since 3.0
Type Boolean
Description Specifies whether device streams are restarted automatically after a reboot.
To enable this option specify TRUE (default) and to disable it specify FALSE.
Notes:
i. Current subscriptions of the device being rebooted remain subscribed.
ii. If auto_stop is enabled for the scaled stream (stream 1), then stream 1 is
not restarted, refer to section 7.2 Stream Configuration for details on
this option.
Property key
configuration.device_mode
Since 3.1
Type String
Description This property used to modify the device mode of an BlueRiver device.
Availale options are:
TRANSMITTER | RECEIVER | TRANSCEIVER
Refer to
Table 166: Valid device mode changes for details and applying this setting to devices.
Property key
streams[stream_type:index].configuration.source.value
Since 3.0
Type Integer
Description Stream source.
Select between original and framerate converted versions of HDMI stream 0 on devices
supporting it. Since applicable to stream 0, the stream_type index is always 0.
TIP: Frame rate divider can also be applied to the scaled stream (stream 1), refer to
section 7.15 Scaler Node Configuration.
streams[stream_type:index].configuration.remove_audio
Since 3.0
Type Integer
Description AUX audio filtering.
Remove the aux audio from HDMI stream 0. 1 = enable | 0 = disable
streams[HDMI:index].configuration.auto_stop
Since 3.0
Type Integer
Description When, auto_stop is enabled, if video input becomes unstable the scaled stream
(stream 1) is stopped. Once the condition is resolved, the stream needs to be started.
1 = enable | 0 = disable
Applicable to scaled stream (stream 1) only, therefore the HDMI:index is always 1.
Property key
nodes[STEREO_AUDIO_INPUT_OUTPUT:index].configuration.direction
Since 3.0
Type String
Description Set the direction of the stereo audio port for a transmitter:
INPUT to set the port as an input
OUTPUT to set the port as an output
nodes[STEREO_AUDIO_INPUT_OUTPUT:index].inputs[main:0].configuration.source.value
Since 3.0
Type Integer
Description Audio input source. A transmitter device may support none, some or all of the
following values:
2 -- local HDMI audio (stereo downmix).
8 – Multichannel audio subscription (audio return channel).
Property key
nodes[STEREO_AUDIO_OUTPUT:index].inputs[main:0].configuration.source.value
Since 3.0
Type Integer
Description Setting the stereo audio output source.
A device may support none, some or all of the following values:
2 -- HDMI audio (stereo downmix)
3 -- Stereo audio
8 – Multichannel audio subscription
Note: The index is 0 and applicable all device types, receivers (RX), transmitters
(TX) or transceivers (TR). Confirm a device’s capabilities using the get
capabilities command.
Property key
nodes[CEC:index].configuration.p2p_mode.value
Since 3.2
Type String
Description Two options are available, API and PASSTHROUGH, where latter is the default.
When set to API, then CEC injection via a set property request is enabled for
BlueRiver ASIC devices that are operating in Point-to-Point mode. When API is
enabled then Passthrough of CEC data is disabled, similarly when set to
PASSTHROUGH the API mode is disabled.
Note: The index entered in the key string is 0 and applicable all ASIC devices,
regardless of if a receiver (RX), transmitter (TX) or transceiver (TR). Confirm a
device’s capabilities using the get capabilities command.
Property key
nodes[COLOR_GENERATOR:index].configuration.enable
Since 3.0
Type Boolean
Description When doing a transition it is possible to enable the color generator to blank video
output with a uniform color. To enable specify TRUE, to disable specify FALSE.
nodes[COLOR_GENERATOR:index].configuration.color
Since 3.0
Type String
Description When enabling the video mute also necessary to specify the blanking color using the
RGB hexadecimal code, [RRGGBB].
nodes[COLOR_GENERATOR:index].configuration.force_output
Since 3.0
Type Boolean
Description When value set as TRUE, a black stream is output with a fixed resolution video signal
of 720P60. When set to FALSE device returns to default video mode, Genlock.
Property key
nodes[FRAME_BUFFER:index].configuration.width
Since 3.0
Type Integer
Description Set the video width, in pixels.
nodes[FRAME_BUFFER:index].configuration.height
Since 3.0
Type Integer
Description Set the video height, in pixels.
nodes[FRAME_BUFFER:index].configuration.horiz_offset
Since 3.0
Type Integer
Description Set the video horizontal offset, in pixels.
nodes[FRAME_BUFFER:index].configuration.vert_offset
Since 3.0
Type Integer
Description Set the Video vertical offset, in pixels.
nodes[FRAME_BUFFER:index].configuration.frames_per_second
Since 3.0
Type Integer
Description Set the frame rate (fps).
Property key
subscriptions[HDMI_AUDIO:0].configuration.mute_msec
Since 3.0
Type Integer
Description This property allows the duration to mute the HDMI audio during a source transition to
be modified. The acceptable range is between 0 and 5000 (0ms to 5 seconds).
Property key
nodes[HDMI_DECODER:index].inputs[main:0].configuration.source.value
Since 3.0
Type Integer
Description Video source among available video connectors. For the HDMI port this option is 0.
Applicable to the HDMI decoder node imbedded in a transmitter device.
nodes[HDMI_DECODER:index].configuration.hdcp_support_enable
Since 3.0
Type Boolean
Description Specifies whether to enable HDCP support, specify TRUE to enable (default) and
FALSE to disable. When disabled HDCP support is not supported.
nodes[HDMI_DECODER:index].configuration.hdcp_22_support_disable
Since 3.0
Type Boolean
Description Specifies whether to disable HDCP 2.2 and only support HDCP 1.4. Specify TRUE to
disable HDCP 2.2 support and FALSE to enable it.
Property key
nodes[HDMI_ENCODER:index].configuration.hdcp_output_mode
Since 3.0
Type String
Description Specify HDCP output mode for receivers running in Fast Switch, Multiview or
Fast Switch Wall. mode. The supported options are:
UNSUPPORTED | FOLLOW_SINK_1 | | FOLLOW_SINK_2 |
FOLLOW_SOURCE
Refer to Table 123: HDMI Encoder node status object members for details.
TIP: More information on managing the HDCP Ouput Mode is included in the HDCP
Encyption section of the API Developers API Application Note Library.
Property key
nodes[MULTICH_AUDIO_INPUT:index].configuration.sampling_frequency.value
Since 3.0
Type Integer
Description Set the audio sampling frequency.
Supported values are following values are supported 22050, 24000, 32000, 44100,
48000, 88200, 96000, 176400, 192000 and 768000.
nodes[MULTICH_AUDIO_INPUT:index].configuration.number_of_channels.value
Since 3.0
Type Integer
Property key
nodes[MULTICH_AUDIO_OUTPUT:index].inputs[main:0].configuration.source.value
Since 3.0
Type Integer
Description Audio source.
A transmitter device may support none, some or all of following values:
3 -- Stereo audio local loop out
6 -- HDMI audio (stereo downmix) local loop out
7 -- HDMI audio (all channels) local loop out
8 – Multichannel audio subscription (audio return channel)
A receiver device may support none, some or all of the following values:
3 -- Stereo audio
6 -- HDMI audio (stereo downmix)
7 -- HDMI audio (all channels)
8 – Multichannel audio subscription
The MULTICH_AUDIO_OUTPUT:index is 0. Confirm a device’s capabilities using
the get capabilities command.
Property key
nodes[NETWORK_PORT:index].configuration.speed
Since 3.0
Type String
Description Specify the speed configuration for the network port. For list of available options,
refer to Table 143: Network port node object members.
NETWORK_PORT:index is normally 0, unless an NT1000/NT2000 device using an
Aquantia 10G Dual PHY.
Property key
nodes[NETWORK_SWITCH:index].configuration.gigabit_port_1_enable
Since 3.0
Type Boolean
Description Enable/disable the 1GbE port on the device.
Reminder: If the hardware design includes a 1GbE interface, the port can be disabled
on the device through the API. To enable 1GbE port enter TRUE and to
disable it enter FALSE. Confirm a device’s capabilities using the get
capabilities command.
There is only one 1GbE PHY supported, therefore the NETWORK_PORT:index is 0.
Property key
nodes[SCALER:index].inputs[main:0].configuration.source.value
Since 3.0
Type Integer
Description Specify if the frame rate divider to be active:
0 to enable
1 to disable
There is only one scaler node supported, therefore the SCALER:index is 0.
Note: Frame rate divider can be enabled on the native stream (stream 0) as well, refer
to section 7.2 Stream Configuration.
PDS-062489 Rev 1.6 Page 255 of 352
SDVoE Developers API March 2023 The information contained herein is the exclusive property of Semtech and shall not
Reference Guide be distributed, copied, reproduced or disclosed in whole or in part without prior
written permission of Semtech or its licensees.
7.16 UART Node Configuration
The following table lists the configurable properties of a UART node of the device object.
Note: The UART:index option will be between 0-3. Hardware can support up to four UART ports, each is
managed independently. Confirm a device’s capabilities using the get capabilities command.
Table 181: UART node configuration properties
Property key
nodes[UART:index].configuration.baud_rate
Since 3.0
Type Integer
Description Baud rate
nodes[UART:index].configuration.data_bits
Since 3.0
Type Integer
Description Number of data bits: 6, 7 or 8
nodes[UART:index].configuration.stop_bits
Since 3.0
Type Integer
Description Number of stop bits: 1 or 2
nodes[UART:index].configuration.parity
Since 3.0
Type String
Description Parity: NONE, ODD or EVEN
Property key
nodes[USB_ICRON:index].configuration.extender_type
Since 3.0
Type String
Description Extender type:
LOCAL for a local extender (LEX)
REMOTE for a remote extender (REX)
Note: The USB_ICRON:index option will be 0. Confirm a device’s
capabilities using the get capabilities command.
Property key
nodes[VIDEO_COMPRESSOR:index].configuration.always_compress
Since 3.0
Type Boolean
Description When true, video on the HDMI stream 0 is always compressed without regard to the
video format. Otherwise, it is compressed only when it is necessary to keep the video
bandwidth under 9 Gbps.
nodes[VIDEO_COMPRESSOR:index].configuration.version
Since 3.0
Type Integer
Description Video compression version used when compressing. Can be either 1 or 2.
Refer to Table 161: Video compressor node object membersl for more information on
the supported compression versions.
Property key
nodes[VIDEO_DECOMPRESSOR:index].configuration.version
Since 3.0
Type Integer
Description Video compression version to use when decompressing, version either 1 or 2.
Information relating to this product and the application or design described herein is believed to be reliable, however such information is
provided as a guide only. Semtech and SDVoE Alliance (collectively, “Parties”) assume no liability for any errors in this document, or for
the application or design described herein. The Parties reserve the right to make changes to their respective products or this document at
any time without notice. Buyers should obtain the latest relevant information before placing orders and should verify that such
information is current and complete. The Parties warrant performance of their respective products to the specifications applicable at the
time of sale, and all sales are made in accordance with their respective standard terms and conditions of sale.
NEITHER PARTY’S PRODUCTS ARE DESIGNED, INTENDED, AUTHORIZED OR WARRANTED TO BE SUITABLE FOR USE IN LIFE-SUPPORT
APPLICATIONS, DEVICES OR SYSTEMS, OR IN NUCLEAR APPLICATIONS IN WHICH THE FAILURE COULD BE REASONABLY EXPECTED TO
RESULT IN PERSONAL INJURY, LOSS OF LIFE OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE. INCLUSION OF EITHER PARTY’S
PRODUCTS IN SUCH APPLICATIONS IS UNDERSTOOD TO BE UNDERTAKEN SOLELY AT THE CUSTOMER’S OWN RISK. Should a customer
purchase or use either Party’s products for any such unauthorized application, the customer shall indemnify and hold such Party and their
officers, employees, subsidiaries, affiliates, and distributors harmless against all claims, costs damages and attorney fees which could
arise.
The Semtech name and logo are registered trademarks of the Semtech Corporation. The SDVoE Alliance name is a registered trademark
of SDVoE Alliance. All other trademarks and trade names mentioned may be marks and names of Semtech, SDVoE Alliance or their
respective licensors. The Parties reserve the right to make changes to, or discontinue any products described in this document without
further notice. The Parties make no warranty, representation or guarantee, express or implied, regarding the suitability of their
respective products for any particular purpose.