7 个不稳定版本 (3 个破坏性更新)

使用旧的 Rust 2015

0.8.3 2017年12月21日
0.8.2 2017年12月14日
0.6.1 2017年11月8日
0.5.8 2017年10月20日
0.4.3 2017年5月15日

#19 in #modbus

Download history 27/week @ 2024-03-13 18/week @ 2024-03-20 21/week @ 2024-03-27 29/week @ 2024-04-03 37/week @ 2024-04-10 23/week @ 2024-04-17 74/week @ 2024-04-24 36/week @ 2024-05-01 57/week @ 2024-05-08 53/week @ 2024-05-15 16/week @ 2024-05-22 44/week @ 2024-05-29 96/week @ 2024-06-05 53/week @ 2024-06-12 51/week @ 2024-06-19 35/week @ 2024-06-26

258 每月下载量

LGPL-2.1

345KB
6.5K SLoC

C 4.5K SLoC // 0.1% comments Rust 874 SLoC // 0.0% comments Visual Studio Project 456 SLoC Automake 162 SLoC JavaScript 121 SLoC // 0.2% comments Shell 84 SLoC // 0.2% comments Bitbake 45 SLoC M4 19 SLoC // 0.2% comments Visual Studio Solution 19 SLoC

libmodbus-rs

libmodbus 的 Rust 绑定  

这个crate是一个没有active bindgen的简化版本!我需要这个版本,因为我们的构建系统无法提供rust和libclang。请不要在生产环境中使用并期待异常行为。

Libmodbus 是一个免费的软件库,用于与遵循 Modbus 协议的设备发送和接收数据。该crate包含libmodbus库(用C编写)的Rust绑定。与libmodbus类似,此crate支持Modbus服务器和客户端的串行端口和以太网连接。

Crates.io version   Build Status   Coverage Status

主页 |   文档 |   原始 libmodbus 文档 |   Github 仓库 |

此crate基于最新的libmodbus git:master分支。我计划通过cargo的feature功能支持不同的libmodbus版本。

用法

将依赖项包含到您的 Cargo.toml 文件中。

稳定版(crates.io)

[dependencies]
libmodbus-rs = "0.6"

或开发版(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_rs::{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-get install autoconf build-essential curl clang-3.9 git-core libtool

请查看 ./ci/docker-archlinux.ci/docker-debian9 下的本地 ci/docker 文件,以获取已知工作状态的、最小的设置。

有关 bindgen 的更多要求信息,请访问 https://servo.github.io/rust-bindgen/requirements.html

如果所有依赖都已解决,请使用 cargo build 进行编译,或者使用 cargo test 运行测试。

git clone https://github.com/zzeroo/libmodbus-rs
cd libmodbus-rs
cargo build

示例

所有原始的 libmodbus 示例都已在 Rust 中重现。您可以在该包的 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

依赖关系

~1.7–4MB
~66K SLoC