7个版本 (1个稳定版)
1.0.0 | 2020年11月5日 |
---|---|
0.8.0 | 2017年12月21日 |
0.7.0 | 2017年12月14日 |
0.5.0 | 2017年10月20日 |
0.4.2 | 2017年5月15日 |
#24 in #modbus
260 每月下载量
用于 2 crates
220KB
5.5K SLoC
包含 (模糊的autoconf代码,5KB) libmodbus/configure.ac
libmodbus
此crate已重命名为libmodbus。在版本1.0.0之前,crate的名称为libmodbus-rs。
libmodbus的Rust绑定
Libmodbus是一个免费软件库,用于与遵守Modbus协议的设备发送和接收数据。该crate包含libmodbus库(用C编写)的Rust绑定。像libmodbus自身一样,此crate支持Modbus服务器和客户端的串行端口和以太网连接。
主页 | 文档 | 原始libmodbus文档 | GitHub仓库 |
此crate基于最新的libmodbus git:master分支。我计划通过cargo的feature
功能支持不同的libmodbus版本。
用法
将依赖项包含到您的Cargo.toml
文件中。
稳定版(crates.io)
[dependencies]
libmodbus-rs = "1"
或开发版(github master)
[dependencies]
libmodbus-rs = { git = "https://github.com/zzeroo/libmodbus-rs.git" }
原始libmodbus C库的一些头文件被重新创建为特质(例如ModbusTCP、ModbusRTU、ModbusServer、ModbusClient等)。例如,如果您想构建一个modbus服务器,在modbus tcp上下文中,包含以下内容
extern crate libmodbus_rs;
use libmodbus::{Modbus, ModbusServer, ModbusTCP};
examples目录中的示例展示了这一点。
文档
构建 libmodbus-rs
libmodbus ffi 绑定(libmodbus-sys)使用 bindgen 构建。 Bindgen 需要 Clang 3.9 或更高版本。
Archlinux 依赖项
pacman -S autoconf clang39 git libtool make
基于 Debian 的依赖项(例如 Ubuntu)
apt install autoconf build-essential curl clang git-core libtool
请查看 ./ci/docker-archlinux
和 .ci/docker-debian9
下的本地 ci/docker 文件,以获取已知可工作的最小配置。
有关 bindgen 要求的更多信息,请访问 https://servo.github.io/rust-bindgen/requirements.html
Windows 依赖项
遵循 msys2 指令 https://www.msys2.org
pacman -Syu
然后执行第二个更新步骤
pacman -Su
最后安装 clang
pacman -S mingw64/mingw-w64-x86_64-clang
如果解决了所有依赖项,请使用 cargo build
编译,或者使用 cargo test
运行测试。
git clone https://github.com/zzeroo/libmodbus-rs
cd libmodbus-rs
cargo build
示例
大多数原始的 libmodbus 示例已在 Rust 中重现。您可以在本 crate 的 examples
目录中找到它们。
有关示例的更多信息,请查看 examples 目录下的 README.md。
例如,要启动随机测试服务器/客户端,请使用以下命令
cargo run --example random-test-server
在另一个 shell 中,在服务器启动后启动客户端
cargo run --example random-test-client
许可证
libmodbus-rs
根据 LGPL-2.1 许可证分发,这与 libmodbus 所使用的许可证相同。
链接
- http://libmodbus.org
- https://github.com/stephane/libmodbus.git
- https://github.com/servo/rust-bindgen
- https://doc.rust-lang.net.cn/book/ffi.html
此项目还托管了在此处使用的原始 libmodbus 文档。请查看 http://zzeroo.github.io/libmodbus-rs/libmodbus/libmodbus.html。
依赖项
~0–2MB
~38K SLoC