Crates.io | roblib-macro |
lib.rs | roblib-macro |
version | 0.1.0 |
source | src |
created_at | 2023-08-05 20:23:57.114569 |
updated_at | 2023-08-05 20:23:57.114569 |
description | Macros used in roblib |
homepage | https://github.com/kareszklub/roblib-rs |
repository | https://github.com/kareszklub/roblib-rs |
max_upload_size | |
id | 936773 |
size | 9,591 |
efficient binary format
typesafe event system
camloc integration
extensively test gpio impl irl
structured errors
server: tcp
server: websocket
server: udp
server: http
rs client: async tcp
rs client: sync tcp
rs client: sync udp
rs client: async http
rs client: async ws
node client: async tcp
web client: async websocket
web client: async http
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.
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 shutdownThese 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 PWMThe 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 metersP
: Get the position of the robotWe currently have two profiles, for the two primary use-cases.