Command
A command is a single action necessary for a recording job. A typical recording job consists of a sequence of command to control the source devices, routers and video recording devices involved. Additional commands like the starting of workflows are also possible.
Everything needed for execution is stored in the command.
As commands are only used for the execution in VidiControl there is no representation for them in VidiCore.
Properties
Property | Possible Values | Example | Description | Writeable? |
---|---|---|---|---|
id | string | 0B | External ID of the Command. | Read only (Created by VidiControl). |
capabilityId | string | pY | Capability which should be executed (e.g. switch capability of router) | Read and Write. |
poolId | string | GD | External ID of the pool the device that executes the command must be assigned to. If a device is needed to execute the command either this or deviceId must be set. | Read and Write. |
deviceId | string | 2n | External ID of the device that will execute the command. If a device is needed to execute the command either this or poolId must be set. | Read and Write. |
executionTime | string (DateTime using the universal sortable date/time pattern) | 2023-01-06T14:04:44.799Z | The planned execution time of this command. This must be set for recording commands. For other commands it is calculated in a manner that ensures everything is ready for the recording when it starts. | In general Read and Write. Depending on the type of command and the other commands of the Chunk, some execution times are overwritten with calculated values. |
duration | long >= 0 If null, 0 is assumed. | 3600 | Execution duration of the command in seconds. This is used to plan the execution time of the commands around e.g. the recording command, block devices etc. | Read and Write. |
index | long | 1 | Position of this command in the chain of commands. This is relevant for the calculation of command execution times. | Read and Write. |
executionState | string (“Pending”, “InProgress”, “Done” or “Error”) | Pending | Current status of the command | Read only. |
handling | string (“WaitForResult” or “FireAndForget”) | FireAndForget | Defines how the command execution is handled regarding to the following commands. This has consequences for the calculation of the other commands' execution times. WaitForResult: The following commands are started after this command is finished at the earliest. FireAndForget: The following commands can be started directly after this command is started. | Read and Write. |
content | string (JSON) |
JSON
| The action and action specific information needed for the execution of the command. As the actions are very diverse, their parameters are too. This is represented by using an action specific structure in the input field. | Read and Write. |
commandType | string (“Workflow”, “CapabilityRecorder”, “CapabilityRouter”, “CapabilityUnknown”) | CapabilityRecorder | The higher level command type. A command type can include multiple actions and capabilities. Depending on this, VidiControl behaves slightly different regarding content format evaluation, device utilization etc. This should fit the action and capability of the command in any case. Otherwise unwanted behavior cannot be ruled out. | Read and Write. |
inPortId | string | aN | Meaning differs regarding to the command type: Router-Command: In-port for the router switch Recorder-Command: In-port of the router switch used for the recording command, set by VidiControl automatically | Router-Command: Read and Write Recorder-Command: Read only. |
outPortId | string | 8l | If the command is a router command, this represents the out-port for the router switch. This field is calculated by VidiControl. | Read only. |
Example JSON Snippet
{
"id": "9Qa",
"capabilityId": "wl",
"poolId": null,
"deviceId": "28J",
"executionTime": "2023-02-14T08:19:56.251734Z",
"duration": 2,
"index": 0,
"executionState": "Pending",
"handling": "WaitForResult",
"content": "{\"action\":\"Switch\",\"input\":{}}",
"commandType": "CapabilityRouter",
"inPortId": "pY",
"outPortId": "0B"
}