Files
Peter Johnson 10b396b4c2 [sim] Various WebSockets fixes and enhancements (#2952)
This is a breaking change to the WebSockets layer to align it with
recent specification documentation work.

To support this, HAL SimValue changed readonly to a direction enum.
This allows specifying bidirectional in addition to input and output.

The SimValue change is specifically designed to avoid API and ABI breakage.
This is completely transparent in C++; in Java a new callback class was added,
and the old readonly functions have been marked deprecated.

A new SimValue creation function for enums allows specifying double values
for each enum value, not just strings.  This allows mapping enum values to
doubles in the WebSockets layer.

A ":" in the SimDevice name now maps it to different WebSocket types (e.g.
"Accel:Name" becomes type "Accel", device "Name").  The type is hidden
in the GUI.

Other WebSockets changes:
* Implemented match_time and game_data
* Added joystick rumble data
* Added builtin accelerometer support
* SimValue enums are mapped to string and double value on WS interface
* Added WebSockets protocol specification
* Added READMEs
2020-12-23 15:54:11 -08:00

637 B

HAL WebSockets Client

This is an extension that provides a client version of a WebSockets API for transmitting robot hardware interface state over a network. See the Robot Hardware Interface WebSockets API specification for more details on the protocol.

Configuration

The WebSockets client has a number of configuration options available through environment variables.

HALSIMWS_HOST: The host to connect to. Defaults to localhost.

HALSIMWS_PORT: The port number to connect to. Defaults to 3300.

HALSIMWS_URI: The URI path to connect to. Defaults to "/wpilibws".