wpilib-ws-py
This library is an implementation of the WPILib simulation WebSocket, used for controlling non-frc hardware or simulation software using WPILib. The specification of this protocol is found here.
My own dive into the source code for the websocket, which has some undocumented information: https://github.com/AM2i9/wpilib-ws-py/payloads.md
from wpilib_ws import WPILibWsServer
server = WPILibWsServer()
# The on_message decorator will let you create handlers for message events.
# Optionally a device type can be entered to only handle messages for that
# specific device type. A list of device types and other hardware messages can
# be found here:
# https://github.com/wpilibsuite/allwpilib/blob/main/simulation/halsim_ws_core/doc/hardware_ws_api.md#hardware-messages
@server.on_message("PWM")
async def pwm_handler(message):
payload = message.data
print(f"Recieved PWM event: {payload}")
# ...
@server.on_message("CANMotor")
async def can_motor_handler(message):
payload = message.data
print(f"Recieved CANMotor event: {payload}")
# ...
# Optionally, a device name can be entered to `on_message()`:
@server.on_message("SimDevice", "SPARK MAX")
async def spark_max_handler(message):
# SimDevices are arbitrary devices sent over the websocket, which can be
# used by vendor libraries to be able to use their controllers in robot
# simulation. For example, SPARK MAX and other REV controllers will not
# show as CAN devices, but as SimDevices.
payload = message.data
print(f"Recieved update for SPARK MAX controller: {payload}")
@server.on_message("CANMotor", "Victor SPX")
async def victor_handler(message):
payload = message.data
print(f"Recieved update for Victor SPX controller: {payload}")
# The while_connected decorator is a loop that runs alongside the server, and
# can be used for periodic tasks, such as sending battery voltage, like below.
@server.while_connected()
async def while_connected():
await server.send_payload(
{"type": "RoboRIO", "device": "", "data": {">vin_voltage": 12.0}}
)
server.run()
Metadata
Release files for wpilib-ws-py 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wpilib-ws-py-0.3.0.tar.gz | 5.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wpilib_ws_py-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.0 kB
Release files / wpilib-ws-py-0.3.0.tar.gz
| Download URL | wpilib-ws-py-0.3.0.tar.gz |
|---|---|
| Size | 5.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1ca26adbd84945434afd3e87a70a18170e25c609761e7bf28532a1e34f7b71c9
|
|
BLAKE2b-256 checksum How to use checksums |
3515d10a5671fa9604299cfc5346d24ffa46314d7e58d11106596ff9133432ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.11 CPython/3.10.0 Linux/5.13.19-2-MANJARO
|
Release files / wpilib_ws_py-0.3.0-py3-none-any.whl
| Download URL | wpilib_ws_py-0.3.0-py3-none-any.whl |
|---|---|
| Size | 7.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e36fe820b7b5a0de6be48d5edf0ea3865f0d50b1bcdd52002c99f10a75793fce
|
|
BLAKE2b-256 checksum How to use checksums |
0eab72180a9e816970388b793ccc7a0575f979f5b1cb72b2afa964ab9291b5b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.11 CPython/3.10.0 Linux/5.13.19-2-MANJARO
|