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
每月102次下载
在 3 个crate中(2 个直接)使用
1MB
14K SLoC
包含(静态库,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
...