Messages are received on UDP port 7001, by default. Each message must end with an ASCII record separator (U+001E). Within messages, fields are separated by the ASCII unit separator (U+001F).
To begin configuration, a config message is sent with a value of 0. Then,
a series of monitor messages is sent, to configure each monitor. Afterwards,
another config message is sent with the total monitor count. At this point,
configuration is completed.
config- Monitor count, or
0to enter config mode
monitor- Monitor index (
0or higher; max15for grid) - Monitor ID (blank for overlay mode)
- Accent color (rgb hex: 000000 -> black)
- Force-aspect-ratio (
0or1) - Font size (pt)
- Four-letter crop code (
ABAB-> upper-left quad). Horizontal index, horizontal span, vertical index, vertical span - Horizontal gap (
1-> 0.01%) - Vertical gap (
20-> 0.2%) - Extra monitor label (full-screen)
sink- Sink name (
XVIMAGEorVAAPI)
play- Monitor index
- Camera ID
- Stream request URI
- Encoding:
MPEG2,MPEG4,H264,PNG,MJPEG - Title: ASCII text description
- Latency (0-2000 ms)
Sent in response to query message.
display- Monitor ID
- Camera ID
- Sequence # (ending with " if paused)
Send every 30 seconds.
heartbeat
Sent once per second for each monitor. Destination port is taken from last received command.
status- Monitor index
- Camera ID
- Stream status error (blank for OK)
- Mode: "full" or ""
Sent every 300 ms when USB joystick connected.
query- Monitor ID
switch- Monitor ID
- Camera ID
next- Monitor ID
previous- Monitor ID
sequence- Monitor ID
- pause / Sequence #
For held values, must be sent every second or will timeout.
ptz- Monitor ID
- Camera ID
- Pan value (-1.0 to 1.0)
- Tilt value (-1 to 1)
- Zoom value (-1 to 1)
lens- Monitor ID
- Camera ID
iris_open/iris_close/iris_stop/focus_near/focus_far/focus_stop/wiper
preset- Monitor ID
- Camera ID
recall/store- Preset #
menu- Monitor ID
- Camera ID
open/enter/cancel