Fx4 API
This document describes how to interact with the Datapath Fx4 over ethernet using the REST API.
REST API
The Datapath Fx4 can be configured by issuing HTTP GET and POST requests over ethernet. HTTP is a standard protocol which is supported natively by many different programming languages. As such no Datapath proprietary libraries or drivers are needed to communicate with the Fx4 using this interface.
All GET requests and POST responses are encoded in JSON which is a flexible and compact format also supported by many programming languages. For GET requests the contents of the JSON response depends on the API call (see reference). If an error occurs something similar to the following will be returned:
{ “Success”:false, “ErrorMessage”:“Invalid input”, “ErrorCode”:-9 }
In this case, the error code is -9 which resolves to the string “Invalid input”. This is a common error that will occur if a GET requests is issued on a API call which requires an input number but none is given or is out of range.
Likewise for POST responses, errors are indicated as above. In the case of success the following response will be returned:
{ “Success”:true }
Regardless of error or success the HTTP status code returned is always 200, the body contents must be parsed to detect errors.
The functions generally fall into one of 3 categories: Device, Input and Output. The Device functions are settings which affect the device as a whole, the Input and Output functions can be set on a per input or output basis.
If a password is set on the device then all POST requests must have a “Password” member which matches the password that has been set. See Password.cgx for more details.
Device properties ¶
Serial Number ¶
Get Serial NumberGET/SerialNumber.cgx
Get the unique serial number of the device.
Example URI
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"SerialNumber": "123456789000DA"
}
System Info ¶
Get System InfoGET/SystemInfo.cgx
Get the firmware, config, hardware and FPGA version numbers of the device along with the build date and time of the application and bootloader.
Example URI
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"FirmwareVersion": 261,
"ConfigVersion": 256,
"HardwareVersion": 1,
"FPGAVersion": 5,
"ApplicationBuildDate": "Apr 20 2016",
"ApplicationBuildTime": "13:12:50",
"BootloaderBuildDate": "Apr 20 2016",
"BootloaderBuildTime": "14:55:01"
}
System Health ¶
Get System HealthGET/SystemHealth.cgx
Get power supply state and temperature.
Example URI
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"PowerSupply": {
"IO": true,
"1.8V": true,
"1.2V": true
},
"Temperature": {
"Average": 34.312,
"Maximum": 39,
"Minimum": 23
}
}
Friendly Name ¶
Friendly name is a user-configurable name used to identify the device. This is the name which will appear in Windows Explorer Network section under Other Devices.
Get Friendly NameGET/FriendlyName.cgx
Example URI
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"FriendlyName": "Datapath Fx4"
}
Set Friendly NamePOST/FriendlyName.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"FriendlyName": "My Fx4"
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Network Settings ¶
Get Network SettingsGET/NetworkSettings.cgx
Get the current network settings. If the device is using a static IP address then the values returned are those configured manually. If the device is set up to use DHCP then the values returned are those obtained from the DHCP server. The MAC address is unaffected by the IP configuration and is simply returned for information.
Example URI
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"MACAddress": "00:55:DA:40:02:DA",
"DHCP": false,
"IPAddress": "192.168.1.2",
"Gateway": "192.168.1.1",
"Subnet": "255.255.255.0"
}
Set Network SettingsPOST/NetworkSettings.cgx
For dynamic IP address assignment set DHCP to true, the other fields are then not required. For static IP address configuration set DHCP to false and specify an IPAddress, Gateway and Subnet.
Example URI
Headers
Content-Type: application/json
Body
{
"DHCP": false,
"IPAddress": "192.168.1.2",
"Gateway": "192.168.1.1",
"Subnet": "255.255.255.0"
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Password ¶
Set PasswordPOST/Password.cgx
Password protect the Fx4. Once a password is set all future post requests must contain a “Password” member which matches the password that has been set. If the password does not match, ERR_INVALID_PASSWORD will be returned. To change an existing password, the old password must be provided as a “Password” member and the new password provided in “NewPassword”. If the password is forgotten, it must be rest via the USB interface. To remove password protection, set an empty string.
Example URI
Headers
Content-Type: application/json
Body
{
"NewPassword": "secret"
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Smoothness ¶
Get and set the scaling optimisation for video or text.
Set Smoothness to 0 for text optimisation. Set Smoothness to non-zero for video optimisation.
Get SmoothnessGET/Smoothness.cgx
Example URI
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Smoothness": 0
}
Set SmoothnessPOST/Smoothness.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Smoothness": 0
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
No Signal Behaviour ¶
Get and set the no signal behaviour of the outputs if no inputs are connected.
Set to true if outputs should not output a signal if no inputs are connected.
Get No Signal BehaviourGET/OutputNoSignal.cgx
Example URI
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"NoSignal": true
}
Set No Signal BehaviourPOST/OutputNoSignal.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"NoSignal": true
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Preferred Input ¶
Get Preferred InputGET/PreferredInput.cgx
Get which input is preferred. Note that if the selected input has no signal it may fall back to using a different input. ActiveInput.cgx can be used to get the currently selected input.
Example URI
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Input": 0
}
Set Preferred InputPOST/PreferredInput.cgx
Select which input is preferred as the active source. If the selected input is not available it will fall back to inputs in the following order: 2, 0, 1. A value of null can be used to indicate no preferred input.
Example URI
Headers
Content-Type: application/json
Body
{
"Input": 0
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Active Input ¶
Get Active InputGET/ActiveInput.cgx
Get which input is currently being used as the source. If none of the inputs have a signal then a value of null will be returned.
Example URI
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Input": 0
}
Save Settings ¶
Save SettingsPOST/SaveSettings.cgx
Commit settings to flash memory, this must be called so settings are restored upon device reboot. WARNING: Don’t call this too frequently because there is a limited number of write operations support for the lifetime of the device. The Fx4 supports a minimum of 10K, typically 100K.
Example URI
Headers
Content-Type: application/json
Body
{}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Reset Settings ¶
Reset SettingsPOST/ResetSettings.cgx
Reset all settings, apart from the network settings unless specified. To reset network settings at the same time, ResetIP must be true. WARNING: The default network settings have DHCP enabled. If ResetIP is true and a static IP address was configured, this will be reset to DHCP enabled and your current IP address may change.
Example URI
Headers
Content-Type: application/json
Body
{
"ResetIP": false,
"ResetFriendlyName": true
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Reboot Device ¶
Reboot DevicePOST/RebootDevice.cgx
Soft reboot the device. Although you will get a response, the device will become unresponsive for a short period until it has fully initialised again.
Example URI
Headers
Content-Type: application/json
Body
{}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Input properties ¶
Input Current Timings ¶
Get Input Current TimingsGET/InputCurrentTimings.cgx{?input}
Get the current timings of the specified input. For an SDI input, an extra option of SDILevel is available to indicate level A or level B. The available colour space strings are “RGB 709”, “RGB 601”, “YUV 709”, “YUV 601”, “RGB 2020” and “YUV 2020”. The available colour range strings are “Full” and “Limited”. The available subsampling strings are “4:4:4”, “4:2:2” and “4:2:0”.
Example URI
- input
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"HorFrequency": 67432,
"VerFrequency": 59939,
"PixelClock": 148351478,
"Flags": 0,
"HorAddrTime": 1920,
"HorRightBorder": 0,
"HorFrontPorch": 44,
"HorSyncTime": 88,
"HorBackPorch": 148,
"HorLeftBorder": 0,
"VerAddrTime": 1080,
"VerBottomBorder": 0,
"VerFrontPorch": 4,
"VerSyncTime": 5,
"VerBackPorch": 36,
"VerTopBorder": 0,
"SDILevel": "A",
"ColourSpace": "RGB 709",
"ColourRange": "Full",
"Subsampling": "4:4:4"
}
Input Preferred Timings ¶
Get and set the input preferred timings.
Get Input Preferred TimingsGET/InputPreferredTimings.cgx{?input}
Example URI
- input
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"HorFrequency": 67432,
"VerFrequency": 59939,
"PixelClock": 148351478,
"Flags": 0,
"HorAddrTime": 1920,
"HorRightBorder": 0,
"HorFrontPorch": 44,
"HorSyncTime": 88,
"HorBackPorch": 148,
"HorLeftBorder": 0,
"VerAddrTime": 1080,
"VerBottomBorder": 0,
"VerFrontPorch": 4,
"VerSyncTime": 5,
"VerBackPorch": 36,
"VerTopBorder": 0
}
Set Input Preferred TimingsPOST/InputPreferredTimings.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Input": 0,
"HorFrequency": 67432,
"VerFrequency": 59939,
"PixelClock": 148351478,
"Flags": 0,
"HorAddrTime": 1920,
"HorRightBorder": 0,
"HorFrontPorch": 44,
"HorSyncTime": 88,
"HorBackPorch": 148,
"HorLeftBorder": 0,
"VerAddrTime": 1080,
"VerBottomBorder": 0,
"VerFrontPorch": 4,
"VerSyncTime": 5,
"VerBackPorch": 36,
"VerTopBorder": 0
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Input EDID ¶
Read or write the entire EDID for an input. The contents of the EDID are Base64 encoded.
Read Input EDIDGET/InputEDID.cgx{?input}
Example URI
- input
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"EDID":"AP///////wAQ43cBAQAAAP8aAQSlYDZ4B+6Ro1RMmSYPUFT//4ABAAEAAQABAAEAAQABAAEAGjaAoHA4H0AwIDUAgIhCAAAaAjqAGHE4LUBYLEUAwBwyAAAeAAAA/QAB/gH+PQQQAAD4OPABAAAA/ABER0MxNzdfNEs2MAogAYQCAxIAg2kAAGUDDAAQACMPFwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQ==",
}
Write Input EDIDPOST/InputEDID.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Input":0,
"EDID":"AP///////wAQ43cBAQAAAP8aAQSlYDZ4B+6Ro1RMmSYPUFT//4ABAAEAAQABAAEAAQABAAEAGjaAoHA4H0AwIDUAgIhCAAAaAjqAGHE4LUBYLEUAwBwyAAAeAAAA/QAB/gH+PQQQAAD4OPABAAAA/ABER0MxNzdfNEs2MAogAYQCAxIAg2kAAGUDDAAQACMPFwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQ==",
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Input EDID Create ¶
Input EDID CreatePOST/InputEDIDCreate.cgx
Create an EDID for a specified input. This will create an entire EDID and will not reuse any part of the existing EDID.
Extension must be “None” for no extension, “CEA-861” for a CEA-861 extension or “DisplayID” for a DisplayID extension.
Mode must be “HD” for up to and including 1920 x 1080 modes, “UHD” for up to and including 3840 x 2160 modes, “4k” for up to and including 4096 x 2160 modes and “Custom” to set a custom mode.
Name is optional but must be no more than 13 characters. It can be used by the source to identify what it is plugged in to.
If using a custom mode, the “Custom” object is mandatory. Otherwise, it will be ignored.
Example URI
Headers
Content-Type: application/json
Body
{
"Input": 0,
"Extension": "CEA-861",
"Mode": "Custom",
"Name": "CustomHDEDID",
"Custom": {
"Timings": {
"PixelClock": 148351478,
"Flags": 0,
"HorAddrTime": 1920,
"HorRightBorder": 0,
"HorFrontPorch": 44,
"HorSyncTime": 88,
"HorBackPorch": 148,
"HorLeftBorder": 0,
"VerAddrTime": 1080,
"VerBottomBorder": 0,
"VerFrontPorch": 4,
"VerSyncTime": 5,
"VerBackPorch": 36,
"VerTopBorder": 0
},
"SupportYCbCr4:2:0": true,
"SupportYCbCr4:2:2": false,
"SupportYCbCr4:4:4": true,
"Support10bpc": true,
"SupportBT2020": false,
"SupportHDRStatic": false,
"SupportAudio": false
}
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Input EDID Reset ¶
Input EDID ResetPOST/InputEDIDReset.cgx
Reset the EDID to default for a specified input or all inputs. To reset a single input’s EDID, Input must be a number. To reset all input EDIDs, Input must be “All”.
Example URI
Headers
Content-Type: application/json
Body
{
"Input": 0
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Input HDR Status ¶
Get the status of HDR of an input.
Status will be “Unsupported”, “None”, “Yes” or “No”.
Get Input HDR StatusGET/InputHDRStatus.cgx{?input}
Example URI
- input
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Status":"Yes",
}
Input HDR Version ¶
Get the HDR version for an input.
Version will be “Unsupported”, “None”, “Traditional Gamma SDR”, “Traditional Gamma HDR”, “SMPTE 2084” or “HLG”.
Get Input HDR VersionGET/InputHDRVersion.cgx{?input}
Example URI
- input
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Status":"None",
}
Input HDCP Enable ¶
Enable or disable HDCP on an input, in same cases it may be beneficial to disable it to avoid the source attempting and potentially failing to use HDCP when it is not necessary.
Get Input HDCP EnableGET/InputHDCPEnable.cgx{?input}
Example URI
- input
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Enable":true,
}
Set Input HDCP EnablePOST/InputHDCPEnable.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Input":0,
"Enable":true,
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Input HDCP Status ¶
Get the status of HDCP of an input.
Status will be “Unknown”, “Unencrypted”, “Encrypted”, “Error” or “Failure”.
Get Input HDCP StatusGET/InputHDCPStatus.cgx{?input}
Example URI
- input
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Status":"Encrypted",
}
Input HDCP Extended Status ¶
Get the extended status of HDCP for an input.
Status will be “1.4”, “2.2” or “”,.
Get Input HDCP Extended StatusGET/InputHDCPExtStatus.cgx{?input}
Example URI
- input
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Status":"1.4",
}
Input Maximum Link Rate ¶
Set the maximum link rate of the input. LinkRate must be “RBR”, “HBR” or “HBR2”.
Get Input Maximum Link RateGET/InputMaxLinkRate.cgx{?input}
Example URI
- input
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"LinkRate":"HBR2",
}
Set Input Maximum Link RatePOST/InputMaxLinkRate.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Input":0,
"LinkRate":"HBR2",
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Input Receiver Version ¶
Get the firmware version of an input receiver.
Get Input Receiver VersionGET/InputReceiverVersion.cgx{?input}
Example URI
- input
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Day":2,
"Month":10
"Year":2018
"Version"1:
}
Output properties ¶
Output Crop ¶
The cropping region represents the subregion of the input which is to be displayed on the output.
Get Output CropGET/OutputCrop.cgx{?output}
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"X0": 0,
"Y0": 0,
"X1": 1,
"Y1": 1
}
Set Output CropPOST/OutputCrop.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Output": 0,
"X0": 0,
"Y0": 0,
"X1": 1,
"Y1": 1
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Output Active Picture ¶
The active picture represents the subregion of the output on which to display active video.
Get Output Active PictureGET/OutputActivePicture.cgx
Example URI
- Output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"X0": 0,
"Y0": 0,
"X1": 1,
"Y1": 1,
"Colour": 0
}
Set Output Active PicturePOST/OutputActivePicture.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Output": 0,
"X0": 0,
"Y0": 0,
"X1": 1,
"Y1": 1,
"Colour": 0
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Output Transform ¶
Get and set the flip and rotation. Rotation must be 0, 90, 180 or 270. Flip must be “None”, “Horizontal” or “Vertical”.
This function sets the rotation for a specific output. This is useful when monitors have been physically rotated, the output can be rotated in the opposite direction to maintain the original orientation of the source. The rotation is in degrees clockwise.
For example, for an output displaying to a monitor which has been rotated 90 degrees anti-clockwise use Rotation 90.
The Horizontal and Vertical flips are useful for projectors; they raster the horizontal or vertical in the opposite direction.
When a flip and rotation is applied simultaneously the flip transformation is applied before the rotation.
Note that flipping both the Horizontal and Vertical is equivalent to a rotation of 180 degrees.
Get Output TransformGET/OutputTransform.cgx{?output}
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Rotation": 0,
"Flip": "None"
}
Set Output TransformPOST/OutputTransform.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Output": 0,
"Rotation": 0,
"Flip": "None"
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Output Enable ¶
Enable or disable outputs.
Get Output EnableGET/OutputEnable.cgx{?output}
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Enable": true
}
Set Output EnablePOST/OutputEnable.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Output":0,
"Enable":true,
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Output Audio Enable ¶
Enable or disable audio on outputs.
Get Output Audio EnableGET/OutputAudioEnable.cgx{?output}
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Enable": true
}
Set Output Audio EnablePOST/OutputAudioEnable.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Output":0,
"Enable":true,
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Output Current Timings ¶
Get Output Current TimingsGET/OutputCurrentTimings.cgx{?output}
Get the current output timings. The available colour space strings are “RGB 709”, “RGB 601”, “YUV 709”, “YUV 601”, “RGB 2020” and “YUV 2020”. The available colour range strings are “Full” and “Limited”. The available subsampling strings are “4:4:4”, “4:2:2” and “4:2:0”.
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"HorFrequency": 67432,
"VerFrequency": 59939,
"PixelClock": 148351478,
"Flags": 0,
"HorAddrTime": 1920,
"HorRightBorder": 0,
"HorFrontPorch": 44,
"HorSyncTime": 88,
"HorBackPorch": 148,
"HorLeftBorder": 0,
"VerAddrTime": 1080,
"VerBottomBorder": 0,
"VerFrontPorch": 4,
"VerSyncTime": 5,
"VerBackPorch": 36,
"VerTopBorder": 0,
"ColourSpace": "RGB 709",
"ColourRange": "Full",
"Subsampling": "4:4:4"
}
Output Preferred Timings ¶
Get Output Preferred TimingsGET/OutputPreferredTimings.cgx{?output}
Get the output’s preferred timings.
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"HorFrequency": 67432,
"VerFrequency": 59939,
"PixelClock": 148351478,
"Flags": 0,
"HorAddrTime": 1920,
"HorRightBorder": 0,
"HorFrontPorch": 44,
"HorSyncTime": 88,
"HorBackPorch": 148,
"HorLeftBorder": 0,
"VerAddrTime": 1080,
"VerBottomBorder": 0,
"VerFrontPorch": 4,
"VerSyncTime": 5,
"VerBackPorch": 36,
"VerTopBorder": 0
}
Output Default Timings ¶
Get and set the output’s default timings. For an SDI output, an extra option of SDILevel is available to select level A or level B.
Get Output Default TimingsGET/OutputDefaultTimings.cgx{?output}
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"HorFrequency": 67432,
"VerFrequency": 59939,
"PixelClock": 148351478,
"Flags": 0,
"HorAddrTime": 1920,
"HorRightBorder": 0,
"HorFrontPorch": 44,
"HorSyncTime": 88,
"HorBackPorch": 148,
"HorLeftBorder": 0,
"VerAddrTime": 1080,
"VerBottomBorder": 0,
"VerFrontPorch": 4,
"VerSyncTime": 5,
"VerBackPorch": 36,
"VerTopBorder": 0,
"SDILevel": "A"
}
Set Output Default TimingsPOST/OutputDefaultTimings.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Output": 0,
"HorFrequency": 67432,
"VerFrequency": 59939,
"PixelClock": 148351478,
"Flags": 0,
"HorAddrTime": 1920,
"HorRightBorder": 0,
"HorFrontPorch": 44,
"HorSyncTime": 88,
"HorBackPorch": 148,
"HorLeftBorder": 0,
"VerAddrTime": 1080,
"VerBottomBorder": 0,
"VerFrontPorch": 4,
"VerSyncTime": 5,
"VerBackPorch": 36,
"VerTopBorder": 0,
"SDILevel": "A"
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Output Timing Source ¶
Get and set the timing source. Source must be one of the following:
“Monitor”: Use the connected monitor’s preferred timings
“Default”: Use the “Default” timing specified by OutputDefaultTimings
Get Output Timing SourceGET/OutputTimingSource.cgx{?output}
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Source": "Monitor"
}
Set Output Timing SourcePOST/OutputTimingSource.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Output": 0,
"Source": "Monitor"
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Output Current Timing Source ¶
Get the current timing source. Source will be one of the following:
“Monitor”: Use the connected monitor’s preferred timings
“Default”: Use the “Default” timing specified by OutputDefaultTimings
Get Output Timing SourceGET/OutputCurrentTimingSource.cgx{?output}
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Source": "Monitor"
}
Output Image Source ¶
Get and set the image source. Must be “InputCapture”, “Colourbars”, “Greyscale”, “MovingColourbars”, “MovingGreyscale” or “FlatColour”.
Get Output Image SourceGET/OutputImageSource.cgx{?output}
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Source": "InputCapture"
}
Set Output Image SourcePOST/OutputImageSource.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Output": 0,
"Source": "InputCapture"
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Output Genlock Source ¶
Get and set the source for the output to genlock to. Source must be one of the following:
“None”: Do not try and genlock this output to any source
“Sync”: Try and genlock this output to the SYNC input
“Input”: Try and genlock to the current input
“Input0”: Try and genlock to input 0
“Input1”: Try and genlock to input 1
“Input2”: Try and genlock to input 2
Get Output Genlock SourceGET/OutputGenlockSource.cgx{?output}
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"GenlockSource": "Sync"
}
Set Output Genlock SourcePOST/OutputGenlockSource.cgx
Example URI
Headers
Content-Type: application/json
Body
{
"Output": 0,
"GenlockSource": "Sync"
}
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Success": true
}
Output Genlock Status ¶
Output Get Genlock StatusGET/OutputGenlockStatus.cgx
Get the genlock status. Will be “None”, “Sync”, “Input”, “Input0”, “Input1” or “Input2”.
Example URI
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"GenlockStatus": "None"
}
Output HDCP Status ¶
Get the status of HDCP of an output.
Status will be “Unknown”, “Unencrypted”, “Encrypted”, “Error” or “Failure”.
Get Output HDCP StatusGET/OutputHDCPStatus.cgx
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Status":"Encrypted",
}
Output HDCP Extended Status ¶
Get the extended status of HDCP of an output.
Status will be “1.4”, “2.2”, “1.4 CONTENT LIMITED”, or “”.
Get Output HDCP Extended StatusGET/OutputHDCPExtStatus.cgx
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Status":"1.4",
}
Output Link Training Result ¶
Output Get Link Training ResultGET/OutputLinkTraining.cgx{?output}
For a DisplayPort output, get the link training result.
LinkRate will be “None”, “RBR”, “HBR” or “HBR2”. LaneCount will be 0, 1, 2 or 4.
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"LinkRate":"HBR2"
"LaneCount":4
}
Output Transmitter Version ¶
Get the firmware version of an output transmitter.
Get Output Transmitter VersionGET/OutputTransmitterVersion.cgx{?output}
Example URI
- output
number
(required) Example: 0
200
Headers
Content-Type: application/json; charset=utf-8
Body
{
"Day":2,
"Month":10
"Year":2018
"Version"1:
}