OCP Quickstart
Use this quickstart after video is working. It proves that OdenVR can send operator input to Oden Streamer and that a vehicle-side process can receive the values.
What you will run
-
OdenVR with Oden Control Pipeline enabled.
-
Oden Streamer or Oden Fleet Streamer with Oden Control Pipeline enabled.
-
A gamepad on the operator computer.
-
A vehicle-side TCP client connected to
127.0.0.1:4000that prints received JSON control values. Port4000is the default and can be changed with thetcp_portplugin parameter; see Vehicle-Side Control.
Steps
-
Connect OdenVR to the vehicle and verify live video.
-
Enable the Oden Control Pipeline plugin on both sides.
-
Confirm the OCP vehicle TCP server is listening. With the defaults, the Streamer log shows
OCP vehicle TCP server listening on 127.0.0.1:4000. -
Connect a gamepad to the operator computer.
-
Start the vehicle-side TCP print client on the vehicle computer.
-
Move the gamepad sticks and press buttons.
-
Confirm that the terminal prints changing
controllervalues. -
Confirm that OCP faults are clear or explainable.
The TCP protocol is 4-byte little-endian length followed by UTF-8 JSON.
The vehicle-side client must echo ack_time and ack_time_mac in its response so latency measurement stays closed.
For the full vehicle-side implementation details and a Rust example, see Vehicle-Side Control.
Expected output
A working terminal client should show repeated OCP control messages with:
-
controller.buttons -
controller.axes -
telemetry.latency -
telemetry.fault -
ack_time -
ack_time_mac
If it does not work:
-
The client cannot connect: confirm OCP is enabled, the Streamer is running, and the client uses the correct host and port.
-
The client connects but prints no controller values: another application may be listening on the port instead of OCP. See the port-conflict entry in Vehicle-Side Control.
-
Messages arrive but values do not change: confirm the Player is connected to the vehicle.