3 个不稳定版本
使用旧的 Rust 2015
0.2.1 | 2016年11月17日 |
---|---|
0.2.0 | 2016年9月15日 |
0.1.0 | 2016年7月23日 |
#18 in #talk
21 次每月下载
615KB
267 行
包含 (WOFF 字体, 120KB) docs/Heuristica-Italic.woff, (WOFF 字体, 90KB) docs/FiraSans-Medium.woff, (WOFF 字体, 92KB) docs/FiraSans-Regular.woff, (WOFF 字体, 56KB) docs/SourceCodePro-Regular.woff, (WOFF 字体, 56KB) docs/SourceCodePro-Semibold.woff, (WOFF 字体, 49KB) docs/SourceSerifPro-Bold.woff 等 1 个更多。.
Adafruit Trellis for Rust 库
这是 Adafruit Trellis Python 和 Adafruit Trellis C++ 库的纯 Rust 版本。
文档
当前版本的文档可以在以下位置找到: Rust Trellis 文档
用法
要了解使用库的示例,让我们看看项目中的示例程序。示例程序在 Trellis 上对应的按钮被按下时打开或关闭 LED。
fn main() {
let pi_dev = RaspberryPiBPlus::new();
let mut trellis = Trellis::new(Box::new(pi_dev));
trellis.init();
trellis.set_led(Col::A, Row::R0);
trellis.write_display();
let cb = Box::new(|trellis:&mut Trellis, evt:ButtonEvent| {
if evt.buttons_pressed.len() > 0 {
println!("pressed button {:?}", evt);
}
for button in evt.buttons_pressed {
if trellis.is_led_set(button.col, button.row) {
trellis.clear_led(button.col, button.row);
} else {
trellis.set_led(button.col, button.row);
}
}
trellis.write_display();
return false;
});
trellis.button_evt_loop(cb);
}
您首先需要创建一个 Trellis 连接到的具体主机设备。由于我只拥有 Raspberry Pi 2 B+,这是唯一一个包含库的设备。使用 RaspberryPiBPlus
作为基础实现您自己的设备应该很简单。
现在,您可以使用 new
和之前创建的主机设备对象创建一个新的 Trellis。在与 Trellis 交互之前,您必须调用 init
(恰好一次)。
在 init
之后,您现在可以通过调用 set_led
和 clear_led
来操纵 LED 状态。可以使用 is_led_set
查询当前 LED 状态。LED 以行(从 R0 到 R3)和列(从 A 到 D)进行寻址。寻址布局如下
[(A,R0),....,(D,R0)]
[..................]----- (cables)
[..................]-----
[(A,R3).....,(D,R3)]
在操纵 LED 状态后,您必须通过调用 write_display
将状态写入设备。这将根据先前设置的 LED 状态打开/关闭 Trellis 上的 LED。
对于读取按钮状态,您可以在 button_evt_loop
函数上注册回调函数。请注意,此函数仅在提供的回调函数返回 true
时终止。按钮状态以 30ms(目前是固定的)的分辨率在 button_evt_loop
中不断查询。
回调函数将接收一个在 EventButton
对象中包含的按下的按钮列表。无论用户按下按钮的时间有多长,函数只会接收到一次按钮按下事件。
依赖项
~2–3.5MB
~59K SLoC