this repo contains the new roblib server and client library written in rust, as well as bindings to said library for nodejs. the server has two versions: base, that only accepts gpio and (software) pwm commands, and roland, a specialized version for the dank engine.
- javascript/typescript browser (wip: commands and returns work, events don't)
the cache may be old. to bypass it, open the lates commit and use the links in the comments
base | roland | |
---|---|---|
aarch64-unknown-linux-gnu | Download | Download |
aarch64-unknown-linux-musl | Download | Download |
armv7-unknown-linux-gnueabihf | Download | Download |
armv7-unknown-linux-musleabihf | Download | Download |
x86_64-pc-windows-msvc | Download | Download |
x86_64-unknown-linux-gnu | Download | Download |
x86_64-unknown-linux-musl | Download | Download |
Transport | Binary | Text | Port | Additional info |
---|---|---|---|---|
TCP | Yes | No | 1110 | |
UDP | Yes | No | 1110 | |
WebSocket | Yes | Yes | 1111 | Endpoint: /ws |
HTTP POST | No | Yes | 1111 | Endpoint: /cmd |
The binary format is using bincode.
Each transport implements its own wire format that aligns with its advantages.
It isnt't guaranteed to be stable, implementing it outside of here isn't recommended.
The text format is designed to be simpler.
It consists of an ID (u32), the command prefix, and any additional arguments for that command, separated by a space.
1 command arg1 arg2 ...
These require no additional feature flags and are always available.
+ event eventargs
: Subscribe to an event- event eventargs
: Unsubscribe from an event0
: No-opU
: Get server uptime in secondsX
: Abort: immediately perform a clean shutdown
These commands are designed to control generic gpio and (software) pwm devices.
p pin mode
: REQUIRED! Set a pin to input or output moder pin
: Read a pin's logic levelw pin logic
: Write a pin to high or low, logic can be 0 or 1W pin hz cycle
: Configure a software pwm on a pin, hz is the frequency, and cycle is the duty cycle, a number between 0 and 100V pin deg
: Move a servo between -90 and 90 degrees, using PWM
The dank engine.
m left right
: Move the robot's left and right motors with the given speed (between 0 and 1)M aleft aright
: Move the robot by specifying two angles for the two motorss
: Stop the robotl r g b
: Set the leds to the given color, r,g,b can be 0 or 1a angle
: Set the servo to the given absolute angleb freq
: Sounds the buzzer at the given frequencyt
: Get the data from the four onboard sensors in the format of four comma separated boolean numbersu
: Read the onboard ultra sensor, returns the distance in meters
P
: Get the position of the robot
We currently have two profiles, for the two primary use-cases.
- Base: Includes the GPIO features, for a generic gpio pin controller
- Roland: Includes everything, for the dank engine