#blink #led #light #usb #usb-device #api #blink-1

bin+lib blinkrs

用于与 blink(1) LED 灯交互的小型 API

8 个版本 (5 个稳定版)

2.0.1 2022年2月12日
2.0.0 2022年1月20日
1.0.2 2021年7月15日
1.0.1 2020年11月30日
0.1.0 2019年9月27日

#1069 in 硬件支持


2 个 Crates 中使用 (通过 过渡)

MIT 许可证

15KB
312 代码行

blink(rs)

ci.img docs.img

一个用于控制 blink(1) USB LED 灯的 Rust 命令行工具。

示例

use std::boxed::Box;
use std::error::Error;

use blinkrs::{Blinkers, Message};

fn main() -> Result<(), Box<dyn Error>> {
    let blinkers: Blinkers = match Blinkers::new() {
        Ok(b) => b,
        Err(_e) => {
            println!("unable to find device");
            return Ok(())
        },
    };
    blinkers.send(Message::from("red"))?;
    blinkers.send(Message::from("off"))?;
    Ok(())
}

贡献

请参阅 CONTRIBUTING


lib.rs:

此包提供对 rusb 包的轻量级包装,专门针对 blink(1) USB 设备的 API。

示例

use std::boxed::Box;
use std::error::Error;

use blinkrs::{Blinkers, Message};

fn main() -> Result<(), Box<dyn Error>> {
    let blinkers: Blinkers = match Blinkers::new() {
        Ok(b) => b,
        Err(_e) => {
            println!("unable to find device");
            return Ok(())
        },
    };
    blinkers.send(Message::from("red"))?;
    blinkers.send(Message::from("off"))?;
    Ok(())
}

扩展 blink(1) 设备

blink(1) 设备支持通过外壳底部的 "扩散器" 帽下暴露的三个连接(地线、电源和数据)来控制额外的灯光。有关添加 Neopixel 条纹的教程,请参阅 此博客文章

为了适应这些设置,Message 类型携带一个可选的 "索引" -

use blinkrs::{Message,Color};
Message::Immediate(Color::from("red"), Some(10));

依赖项

~1.5MB
~30K SLoC