Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Code Block
languagexml
themeRDark
titleCamera Command Example
<!—MsgId is the unique id of the message being sent -->
<!—CommandType defines the type of action required -->
<!—CameraId is the unique id of the camera being controlled -->
<?xml version="1.0" encoding="utf-8"?>
<CameraCommand xmlns=”http://navtechradar.com/CameraCommand” xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance"
xmlns:xsd=http://www.w3.org/2001/XMLSchema    MsgId="21" MsgTimeStamp="2012-02-14T11:23:15" CommandType="ManualOverride" CameraId="2">
  <!-- The sender element is optional -->
  <Sender SenderId ="XFSControlSuite:1" NetworkAddress="192.168.24.5" NetworkPort ="2077"/>
</CameraCommand>

Camera Command Element

The camera command instruction provides a series of messages to control one or more cameras. Currently there is only one message types. Descriptions and examples are provided in this section.

Camera Command Attributes

Attributes

Description

Type

Notes

MsgId

Unique message Id

Long

This must be globally unique across all message types 

MsgTimeStamp

Date and time that the message was sent

DateTime


CommandType


 

Type of Camera Command: 

  • ManualOverride 

CameraCommandTypeList


CameraId

Id of the camera which is the target for this message

Int

This must match the configured Id in Witness (not the Comms Id)

Payload Element

The payload carries data specific to a command. Each command that requires a payload is detailed in this document and each of the payload elements is included within the appropriate XSD.

Info

The payload is reserved for future use and has not yet been implemented for the camera command instruction.

Network Sender Element

Each incoming message can include an optional Sender element. This must include the IP address and port that the client is using to send instructions.

If the Sender element is included the NetworkAddress value will be checked against the subscriber IP address and the command rejected if they do not match. 

In addition the Sender element is included in the Command Reply. This is a duplicate of the incoming details (i.e. the subscribers IP address and port). The subscriber can use this to verify that they authored the message.

Manual Override

This command will inform Witness that an external operator or system is taking control of a camera. When Witness receives this command it will suspend automatic control of the specified camera.

Note

This command should be sent repeatedly whilst the external system requires to maintain control of the camera.

When Witness receives this command it starts a timer. The duration of this timer is set within the Witness configuration, but by default it is 10 seconds. If another command is not received before this timer expires then Witness will resume automatic control. 

So this command must be sent at an interval which is less than the configured timeout. Assuming the timeout is 10 seconds we would recommend sending a command every 2 seconds whilst the external system requires control of the camera.

Info

To avoid excessive load on the camera controller it is not recommended to send this command more than once a second.

The following example sends a manual override command for camera 2.

Code Block
languagexml
themeRDark
titleCamera Manual Override Example
<!—MsgId is the unique id of the message being sent -->
<!—CommandType defines the type of action required -->
<!—CameraId is the unique id of the camera being controlled -->
<?xml version="1.0" encoding="utf-8"?>
<CameraCommand xmlns=”http://navtechradar.com/CameraCommand” xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance"
    xmlns:xsd=http://www.w3.org/2001/XMLSchema MsgId="12" MsgTimeStamp="2012-02-14T11:23:15" CommandType="ManualOverride" CameraId="2">
  <!-- The sender element is optional -->
  <Sender SenderId ="XFSControlSuite:1" NetworkAddress="192.168.24.5" NetworkPort ="2077"/>
</CameraCommand>



Related information

Filter by label (Content by label)
showLabelsfalse
cqllabel = "icd-001-command"