1 个不稳定版本
| 0.1.0 | 2023年8月5日 | 
|---|
#6 在 #dank
145KB
 3.5K  SLoC
roblib
一个 dank 引擎的远程库。
此仓库包含用 Rust 编写的新的 roblib 服务器和客户端库,以及用于 nodejs 的库绑定。服务器有两个版本:基础版,只接受 gpio 和 (软件) pwm 命令,以及 roland,专门针对 dank 引擎的版本。
其他语言的客户端库
- javascript/typescript(目前已过时,计划推出新版本)
服务器下载
缓存可能已过时。要绕过它,打开最新的提交并使用评论中的链接。
| 基础版 | 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 或 1
- W pin hz cycle: 在引脚上配置软件 pwm,hz 是频率,cycle 是占空比,介于 0 和 100 之间
- V pin deg: 使用 PWM 将伺服器移动到 -90 和 90 度之间
Roland
the dank engine。
- m left right:使用给定速度(介于0和1之间)移动机器人的左右电机
- M aleft aright:通过指定两个电机的两个角度来移动机器人
- s:停止机器人
- l r g b:将LED设置为给定的颜色,r、g、b可以是0或1
- a angle:将伺服电机设置为给定的绝对角度
- b freq:在给定的频率下发出蜂鸣声
- t:以四个逗号分隔的布尔数字格式获取四个机载传感器的数据
- u:读取机载超声波传感器,返回以米为单位的距离
Camloc
- P:获取机器人的位置
配置文件
我们目前有两个配置文件,针对两个主要用例。
- 基础:包括GPIO功能,用于通用GPIO引脚控制器
- Roland:包括一切,用于dank引擎
依赖项
~4–16MB
~225K SLoC