9 个版本
0.3.5 | 2024年6月8日 |
---|---|
0.3.4 | 2023年10月12日 |
0.3.3 | 2023年9月30日 |
0.3.2 | 2023年8月4日 |
0.1.1 | 2022年2月26日 |
#93 in 硬件支持
每月577次下载
450KB
9K SLoC
zproto
Zaber 的 ASCII 和二进制协议的 Rust 实现。
此库是非官方的。 Zaber 动态库 是 Zaber 的官方通信库,但截至本文写作,尚无 Rust 绑定。
用法
将以下内容添加到您的 `Cargo.toml
[dependencies]
zproto = "0.3.5"
入门
此库旨在简单但健壮。使用 Zaber 的 ASCII 协议与产品通信看起来可能如下所示
use zproto::{
ascii::{Port, check, Warning},
error::Error,
};
fn main() -> Result<(), Error> {
// Open the port, home device 1, and wait for it to finish.
let mut port = Port::open_serial("/dev/ttyUSB0")?;
port.command_reply_with_check(
(1, "home"),
// Ignore warnings about it being unhomed.
check::warning_in(("WR", "WH", Warning::NONE)),
)?;
port.poll_until_idle(1)?;
// Move towards the end of travel and monitor position as it goes.
// Once the position exceeds 100000, interrupt the motion.
port.command_reply((1, "move max"))?;
port.poll_until((1, "get pos"), |reply| {
let pos: i32 = reply.data().parse().unwrap();
pos >= 100_000
})?;
port.command_reply_with_check((1, "stop"), check::warning_is("NI"))?;
Ok(())
}
有关使用 Zaber ASCII 或二进制协议与设备通信的更深入介绍,请参阅 ascii
或 binary
模块文档。
示例文件夹中包含一些简单的应用程序。
文档
文档可在 docs.rs 上找到。
Cargo 功能
默认情况下,ASCII 和二进制协议分别通过 ascii
和 binary
Cargo 功能启用。但是,如果您只想使用其中之一,例如 ascii
,您可以在您的 Cargo.toml
中指定
[dependencies]
zproto = { version = "0.3.5", default-features = false, features = ["ascii"] }
这将仅在编译时包含与 ASCII 协议相关的库部分。
许可证
本项目采用 MIT 许可证。
故障排除
-
构建时出现关于
libudev
的错误此 crate 需要在您的系统上安装
libudev
共享库,某些操作系统默认没有安装。安装库将解决问题。例如,在 Ubuntu 上,可以使用以下命令安装库:sudo apt install libudev-dev
。
依赖关系
~2MB
~45K SLoC