Introduction to controlling output, PTZ and Matrix
All control commands documented on this page are supported by all XProtect products. Note that PTZ support may vary from hardware device to hardware device. The configuration can be used to verify the exact support for a given device, including if the current logged in user has authority to perform PTZ operations.
For protocol integration, you can use the ServerCommandService.GetConfiguration()
command to retrieve the configuration. In MIP Environments, a given Item that represents a camera contains a set of properties with this information.
This figure illustrates the general flow from the point when a control command is issued by an application until it is sent to the specific hardware device. The arrows indicate the direction of the flow.

The blue lines indicate the flow from the point when the application issues a control command via the recording servers and onto cameras or video servers.
The yellow lines indicate the flow for matrix commands when they are issued, while the green line indicates the flow from VMS server to each matrix HTTP server.
Output Activation
You can activate hardware outputs from the MIP Environments, XProtect Smart Client, the XProtect Event Server and the standalone .Net Library. When you use protocols, the RecorderCommandService is used for activating an output to a XProtect Recording Server.
In MIP Environments, the Control.TriggerCommand message is sent with the destination as the output item, that translates and forwards the command via the RecorderCommandService protocol.
Preset Activation
You can issue preset activation from the MIP Environment’s XProtect Smart Client, the XProtect Event Server and the standalone .Net Library. When you use protocols, the RecorderCommandService is used to go to a preset position.
In MIP Environments, the Control.TriggerCommand message is sent with the destination to the preset item, and translates and forwards the command via the RecorderCommandService protocol.
PTZ Control
PTZ control commands such as “move left”, “move right” or simply “start move in direction XYZ” and corresponding PTZ “stop move” commands can be issued from the MIP Environment’s XProtect Smart Client, XProtect Event Server and the standalone .Net Library. When you use protocols, the RecorderCommandService can be used.
In MIP Environments, a set of messages in the MessageId.Control (like PTZMoveCommand) and corresponding data classes (like PTZMoveCommandData) are used to issue PTZ control commands.
Matrix Command
You can trigger matrix commands like the output control described above, either on the ServerCommandService or in MIP Environments.
A matrix command consists of an ID for the matrix server that is intended for command, and an ID of the camera that you want to use as a parameter for the command.
When the matrix command has been received by the XProtect Corporate, Expert, Professional+ or XProtect Express+ management server, the command is in turn forwarded to the defined matrix server.
A matrix server is defined within the XProtect Smart Client via the Matrix View Item(s), and it receives the simple matrix commands that are issued by the servers.
Any partner developed application can also define a matrix server by implementing the Matrix Protocol.