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
0
to enter config mode
monitor
- Monitor index (
0
or higher; max15
for grid) - Monitor ID (blank for overlay mode)
- Accent color (rgb hex: 000000 -> black)
- Force-aspect-ratio (
0
or1
) - 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 (
XVIMAGE
orVAAPI
)
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