1 个不稳定版本

0.1.0 2023 年 8 月 5 日

#106#async-http


3 个 crate 中使用 (通过 roblib)

LGPL-2.1-or-later

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

其他语言的客户端库

服务器下载

缓存可能已过时。要绕过它,打开最新的提交并使用评论中的链接

查看所有

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或1
  • W 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或1
  • a angle:将伺服电机设置为给定的绝对角度
  • b freq:以给定的频率响铃
  • t:以四个逗号分隔的布尔数字格式获取四个板载传感器的数据
  • u:读取板载超声波传感器,返回以米为单位的距离

Camloc

相机位置服务

  • P:获取机器人的位置

配置文件

我们目前有两个配置文件,针对两个主要用例。

  • 基础:包括GPIO功能,用于通用GPIO引脚控制器
  • Roland:包括所有功能,用于dank引擎

依赖项

~250–690KB
~16K SLoC