Expand description
XLX UDP JSON monitor protocol message types.
XLX reflectors (xlxd) expose a UDP push-notification interface on port 10001 for real-time activity monitoring. The protocol is simple:
- Client sends
"hello"as a UDP datagram to the reflector’s IP on port 10001. - The server responds with three separate UDP datagrams, each containing
one JSON object:
MonitorMessage::Reflector: reflector identity and available modules.MonitorMessage::Nodes: snapshot of all currently connected nodes.MonitorMessage::Stations: snapshot of recently heard stations.
- After the initial dump, the server pushes updates as events occur:
MonitorMessage::Nodes: whenever a node connects or disconnects.MonitorMessage::Stations: whenever a station is heard.MonitorMessage::OnAir: when a station starts transmitting.MonitorMessage::OffAir: when a station stops transmitting.
- Client sends
"bye"to disconnect cleanly.
Each UDP datagram contains exactly one complete JSON object (no framing, no length prefix). The maximum node dump is 250 entries per datagram, and the server’s update period is approximately 10 seconds.
§Parsing strategy
Because all messages arrive as untagged JSON objects, parse attempts to
deserialize each shape in a specific order. The order matters because some
shapes are subsets of others — for example, a {"nodes":[...]} object would
match both the nodes shape and a hypothetical catch-all. The parse order is:
OnAir/OffAir— smallest, most distinctive keys.Reflector— has the unique"reflector"+"modules"combination.Nodes— has the"nodes"array key.Stations— has the"stations"array key.Unknown— fallback for unrecognized messages (logged, not fatal).
Structs§
- Node
Info 🔒 - A single connected node entry from the
"nodes"array. - Nodes
Msg 🔒 - Helper for
{"nodes":[...]}. - OffAir
Msg 🔒 - Helper for
{"offair":"CALLSIGN"}. - OnAir
Msg 🔒 - Helper for
{"onair":"CALLSIGN"}. - Reflector
Info 🔒 - Identity and module list for a reflector.
- Reflector
Msg 🔒 - Helper for
{"reflector":"...","modules":[...]}. - Station
Info 🔒 - A single heard station entry from the
"stations"array. - Stations
Msg 🔒 - Helper for
{"stations":[...]}.
Enums§
- Monitor
Message 🔒 - A parsed XLX monitor protocol message.
Functions§
- parse 🔒
- Attempts to parse a raw UDP datagram payload into a
MonitorMessage.