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

Download history 26/week @ 2024-03-14 17/week @ 2024-03-21 41/week @ 2024-03-28 33/week @ 2024-04-04 34/week @ 2024-04-11 22/week @ 2024-04-18 75/week @ 2024-04-25 38/week @ 2024-05-02 63/week @ 2024-05-09 51/week @ 2024-05-16 17/week @ 2024-05-23 92/week @ 2024-05-30 58/week @ 2024-06-06 60/week @ 2024-06-13 60/week @ 2024-06-20 33/week @ 2024-06-27

260 每月下载量
用于 2 crates

LGPL-2.1

220KB
5.5K SLoC

C 4.5K SLoC // 0.1% comments Visual Studio Project 457 SLoC Automake 163 SLoC JavaScript 122 SLoC // 0.2% comments Rust 107 SLoC // 0.1% comments Bitbake 46 SLoC Shell 24 SLoC // 0.1% comments M4 20 SLoC // 0.3% comments Visual Studio Solution 20 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服务器和客户端的串行端口和以太网连接。

Crates.io版本   构建状态   构建状态   覆盖率状态

主页 |   文档 |   原始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目录中的示例展示了这一点。

文档

文档(crates.io)

文档(master)

构建 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 所使用的许可证相同。

链接

此项目还托管了在此处使用的原始 libmodbus 文档。请查看 http://zzeroo.github.io/libmodbus-rs/libmodbus/libmodbus.html

依赖项

~0–2MB
~38K SLoC