Add docs/cli/ entries for: transport_cli, discovery_cli, config_cli, protocol_cli, query_cli, test_image_cli, xorg_cli, v4l2_view_cli, stream_send_cli, stream_recv_cli, reconciler_cli, controller_cli Each doc covers: description, build instructions, full usage with all options and defaults, example output, and a relationship note pointing to related tools. controller_cli includes the display control IDs table and notes its temporary status. README.md: convert all CLI tool entries to links. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1.7 KiB
protocol_cli
A development tool for testing the protocol layer in isolation. Runs a server that decodes and prints all incoming control messages, or a client that connects and sends a sample STREAM_OPEN request.
Build
From the repository root:
make cli
The binary is placed in build/cli/.
Usage
Server mode
./protocol_cli --server [port]
Default port: 8000. Listens for connections and prints a decoded description of every received frame.
Example output on an incoming STREAM_OPEN:
CONTROL_REQUEST request_id=1 STREAM_OPEN stream_id=1 format=0x0001 pixel_format=0x0000 origin=0x0001
Recognised message types and commands:
| Type | Description |
|---|---|
VIDEO_FRAME |
stream_id + compressed payload |
STREAM_EVENT |
stream_id + event code (INTERRUPTED / RESUMED) |
CONTROL_REQUEST |
request_id + command (STREAM_OPEN, STREAM_CLOSE, ENUM_DEVICES, ENUM_CONTROLS, GET_CONTROL, SET_CONTROL, ENUM_MONITORS) |
CONTROL_RESPONSE |
request_id + status (OK, ERROR, UNKNOWN_CMD, INVALID_PARAMS, NOT_FOUND) |
Client mode
./protocol_cli --client <host> <port>
Connects to the server and sends a single STREAM_OPEN request, then waits for the response.
Example:
./protocol_cli --client 127.0.0.1 8000
Relationship to the Video Routing System
protocol_cli exercises the protocol module that all nodes use to encode and decode wire messages. Pairing the server with a running node lets you inspect raw control traffic; pairing the client with a running node lets you inject individual commands for debugging.
See also: transport_cli.md for raw frame-level testing without protocol parsing.