Skip to main content
Skip table of contents

Capability

A capability describes what can be done with a device.

For example, a recorder device of type A may have a capability record. An recorder device of type B may have the capabilities record, looprecord and streamrecord. And a router may have the capability to switch.

Capabilities are provided by the adapter modules that connect VidiControl to specific recorders. In their content field it is then defined, which action should be taken, which input parameters are available and whether they are mandatory or optional. It also includes the events that may be thrown by the recorder adapter module and properties for the capability.

Capabilities and Devices are connected via a DeviceCapability object which also stores the actual values for the capability properties.

Properties

Property

Possible Values

Example

Description

id

string

VCR-0B

External ID of the capability.

content

string (JSON)

JSON
{
  "action":"Record",
  "input":
  {
    "targetPath":
    {
      "type":"string",
      "optional":"true"
    },
    "profileName":
    {
      "type":"string",
      "optional":"true"
    }
  },
  "output":
  {
    "pathToFile":
    {
      "type":"string"
    }
  },
  "properties":
  {
    "nonBlockingProvisioningTime":
    {
      "type":"integer",
      "kind":"fix"
    }
  },
  "events": 
  [ 
    "RecorderMock.fileCreated", 
    "RecorderMock.recordingFailed", 
    "RecorderMock.recordingStarted", 
    "RecorderMock.recordingFinished" 
  ]
}

Defines how a capability is used:

  • Which action is performed.

  • What input parameters are expected (parameter name, which type and optional or required).

  • Which output is generated (parameter name, which type).

  • Device properties relevant for this capability (property name, type and kind (fix or dynamic)).

capabilityName

string

Name of the capability

capabilityType

string

(“Record”, “LoopRecord”, “Switch”, “LockSwitch”, “Storage”, “Turn”)

LoopRecord

Type of the capability. Basically which action can be performed with this capability.

needsStopCommand

bool

true

For some devices special capabilities like “Record” cannot be started with a duration as parameter. Instead the recording has to be started and stopped. If this is the case, needsStopCommand is true.

capabilityGroup

string

RecorderEvsNeoGroup

Offers the possibility to group capabilities of the same name that differ for different devices. For example there could be a “RecorderA” Group with a Record capability and a LoopRecord capability and a “RecorderB” Group with a different Record capability. This is used for displaying capabilities in the ConfigUI.

defaultConfig

string (JSON)

JSON
{
  "duration": 3
}

A default config that a recorder can use during AutoSetup to set values on its DeviceCapability

Example JSON Snippet

JSON
{
  "id": "VCR-0B",
  "capabilityName": "RecorderA Recording-Capability",
  "content": "{\"action\":\"Record\",\"input\":{\"targetPath\":{\"type\":\"string\",\"optional\":\"true\"},\"profileName\":{\"type\":\"string\",\"optional\":\"true\"}},\"output\":{\"pathToFile\":{\"type\":\"string\"}},\"properties\":{\"provisioningTime\":{\"type\":\"integer\",\"kind\":\"fix\"}}, \"events\": [ \"RecorderMock.fileCreated\", \"RecorderMock.recordingFailed\", \"RecorderMock.recordingStarted\", \"RecorderMock.recordingFinished\" ]}",
  "capabilityType": "Record",
  "capabilityGroup": "RecorderAGroup",
  "defaultConfig": "{\"provisioningTime\":3}"
  "needsStopCommand": true
}
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.