1 个不稳定版本
0.1.0 | 2023 年 8 月 5 日 |
---|
#106 在 #async-http
在 3 个 crate 中使用 (通过 roblib)
10KB
v2 TODO
-
高效的二进制格式
-
类型安全的系统
-
camloc 集成
-
广泛测试 gpio 实现
-
结构化错误
-
服务器:tcp
-
服务器:websocket
-
服务器:udp
-
服务器:http
-
Rust 客户端:异步 tcp
-
Rust 客户端:同步 tcp
-
Rust 客户端:同步 udp
-
Rust 客户端:异步 http
-
Rust 客户端:异步 ws
-
Node 客户端:异步 tcp
-
Web 客户端:异步 websocket
-
Web 客户端:异步 http
roblib
为 dank 引擎提供的远程库。
此仓库包含用 Rust 编写的新的 roblib 服务器和客户端库,以及用于该库的 Nodejs 绑定。服务器有两个版本:仅接受 gpio 和 (软件) pwm 命令的 base 版本,以及针对 dank 引擎的专用版本 roland。
其他语言的客户端库
javascript/typescript(目前过时,计划推出新版本)
服务器下载
缓存可能已过时。要绕过它,打开最新的提交并使用评论中的链接
base | roland | |
---|---|---|
aarch64-unknown-linux-gnu | 下载 | 下载 |
aarch64-unknown-linux-musl | 下载 | 下载 |
armv7-unknown-linux-gnueabihf | 下载 | 下载 |
armv7-unknown-linux-musleabihf | 下载 | 下载 |
x86_64-pc-windows-msvc | 下载 | 下载 |
x86_64-unknown-linux-gnu | 下载 | 下载 |
x86_64-unknown-linux-musl | 下载 | 下载 |
服务器 API
传输 | 二进制 | 文本 | 端口 | 其他信息 |
---|---|---|---|---|
TCP | 是 | 否 | 1110 | |
UDP | 是 | 否 | 1110 | |
WebSocket | 是 | 是 | 1111 | 端点:/ws |
HTTP POST | 否 | 是 | 1111 | 端点:/cmd |
二进制格式
二进制格式使用 bincode。
每种传输都实现自己的线格式,以符合其优势。
这并不保证是稳定的,不建议在此之外实现。
文本格式
文本格式设计得更为简单。
它由一个ID (u32)、命令前缀以及该命令的任何附加参数组成,参数之间由空格分隔。
1 command arg1 arg2 ...
可用命令及其参数
内置
这些命令不需要额外的功能标志,始终可用。
+ event eventargs
:订阅事件- event eventargs
:取消订阅事件0
:无操作U
:获取服务器运行时间(以秒为单位)X
:中止:立即执行干净关闭
GPIO
这些命令旨在控制通用GPIO和(软件)PWM设备。
p pin mode
:必需!将引脚设置为输入或输出模式r pin
:读取引脚的逻辑电平w pin logic
:将引脚写入高或低电平,逻辑可以是0或1W pin hz cycle
:在引脚上配置软件PWM,hz是频率,cycle是占空比,取值范围在0到100之间V pin deg
:使用PWM将伺服电机移动到-90到90度之间
Roland
感谢引擎。
m left right
:以给定的速度(介于0和1之间)移动机器人的左右电机M aleft aright
:通过指定两个电机的两个角度来移动机器人s
:停止机器人l r g b
:将LED设置为指定的颜色,r、g、b可以是0或1a angle
:将伺服电机设置为给定的绝对角度b freq
:以给定的频率响铃t
:以四个逗号分隔的布尔数字格式获取四个板载传感器的数据u
:读取板载超声波传感器,返回以米为单位的距离
Camloc
P
:获取机器人的位置
配置文件
我们目前有两个配置文件,针对两个主要用例。
- 基础:包括GPIO功能,用于通用GPIO引脚控制器
- Roland:包括所有功能,用于dank引擎
依赖项
~250–690KB
~16K SLoC