#bindings #api-wrapper #raspberry-pi #pi #raspberry #wiring

wiringpi

WiringPi的API包装器,实现了最重要的功能,并提供了一些类型系统便利。有关Raspberry Pi的构建说明,请参阅README.md。

8次发布

使用旧的Rust 2015

0.2.4 2018年3月17日
0.2.3 2018年3月4日
0.2.2 2018年2月4日
0.2.1 2017年5月28日
0.1.1 2015年4月18日

#52 in #raspberry

Download history • Rust 包仓库 29/week @ 2024-03-13 • Rust 包仓库 33/week @ 2024-03-20 • Rust 包仓库 34/week @ 2024-03-27 • Rust 包仓库 43/week @ 2024-04-03 • Rust 包仓库 30/week @ 2024-04-10 • Rust 包仓库 34/week @ 2024-04-17 • Rust 包仓库 32/week @ 2024-04-24 • Rust 包仓库 27/week @ 2024-05-01 • Rust 包仓库 28/week @ 2024-05-08 • Rust 包仓库 31/week @ 2024-05-15 • Rust 包仓库 27/week @ 2024-05-22 • Rust 包仓库 36/week @ 2024-05-29 • Rust 包仓库 30/week @ 2024-06-05 • Rust 包仓库 23/week @ 2024-06-12 • Rust 包仓库 25/week @ 2024-06-19 • Rust 包仓库 21/week @ 2024-06-26 • Rust 包仓库

每月102次下载
3 个crate中(2 个直接)使用

MIT 许可证

1MB
14K SLoC

C 13K SLoC // 0.3% comments • Rust 包仓库 Rust 556 SLoC // 0.0% comments • Rust 包仓库 Bazel 198 SLoC // 0.2% comments • Rust 包仓库 Shell 34 SLoC // 0.6% comments • Rust 包仓库

包含(静态库,130KB) wiringPi/wiringPi/libwiringPi.a,(静态库,91KB) WiringOP/wiringPi/libwiringPi.a,(ELF可执行文件/库,19KB) wiringPi/wiringPiD/wiringpid

WiringPi Rust绑定

使用Rust使WiringPi可访问的API包装器。它实现了最重要的功能,并提供了一些类型系统便利。

要将以下行添加到您的 Cargo.io 以使用 rust-wiringpi

[dependencies]
wiringpi = "0.2"

在线文档

发布

主分支

示例:闪烁灯

extern crate wiringpi;

use wiringpi::pin::Value::{High, Low};
use std::{thread, time};

fn main() {
    //Setup WiringPi with its own pin numbering order
    let pi = wiringpi::setup();

    //Use WiringPi pin 0 as output
    let pin = pi.output_pin(0);

    let interval = time::Duration::from_millis(1000);

    loop {
        //Set pin 0 to high and wait one second
        pin.digital_write(High);
        thread::sleep(interval);

        //Set pin 0 to low and wait one second
        pin.digital_write(Low);
        thread::sleep(interval);
    }
}

使用Cargo交叉编译

遵循此 指南

cargo build --target=arm-unknown-linux-gnueabihf   # Older models
cargo build --target=armv7-unknown-linux-gnueabihf # Newer models

Orange Pi支持

rust-wiringpi 还可以包装Orange Pi SBC板卡的WiringOP库。这可以通过 orangepi 功能启用

[dependencies.wiringpi]
verson = "0.2"
features = ["orangepi"]

开发模式

在开发模式下,rust-wiringpi 被编译为一个不包括原始WiringPi的rust-native库。绑定函数被替换为输出简单日志到stdout的模拟函数。使用此模式,您可以在不支持WiringPi的平台构建和调试项目。

# build
$ cargo build --features wiringpi/development

# run
$ cargo run --features wiringpi/development

[wiringpi] `wiringPiSetup` called
[wiringpi] `pinMode` called with: 0, 1
[wiringpi] `digitalWrite` called with: 0, 1
[wiringpi] `digitalWrite` called with: 0, 0
...

依赖关系