8个不稳定版本 (3个重大变更)
新 0.6.0 | 2024年8月6日 |
---|---|
0.5.0 | 2024年4月23日 |
0.4.0 | 2024年4月21日 |
0.3.5 | 2024年4月12日 |
0.3.3 | 2023年11月30日 |
#812 in 硬件支持
每月73次下载
用于 glow-control
115KB
2.5K SLoC
Twinkly LED的Glow Control库
glow-control-lib
是一个Rust库,用于与Twinkly LED设备进行接口。它提供了一套全面的API,方便发现设备、操作设备模式、控制实时照明效果等。这个库是glow-control
CLI的后台支持,也可以用来构建管理Twinkly LED控制器的自定义应用程序。
本项目受到了Python库xled和xled_plus的启发,旨在为Rust生态系统提供一个开源替代方案。
特性
- 基于网络的Twinkly设备发现
- 轻松集成到任何可以将输出管道到CLI的应用程序中
- 用于管理设备模式和设置的通用控制接口
- 从外部网络设备实时控制效果
- 自定义LED电影上传
- 设备身份验证和通信的实用功能
库使用方法
使用库将Twinkly设备设置为特定模式的简单示例
use std::collections::HashSet;
use std::time::Duration;
use glow_control_lib::control_interface::{ControlInterface, DeviceMode};
use glow_control_lib::util::discovery::{DeviceIdentifier, Discovery};
use serde_json::json;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Discover devices with a 5-second timeout
let devices: HashSet<DeviceIdentifier> = Discovery::find_devices(Duration::from_secs(5)).await?;
// Iterate over the discovered devices, print their details and set their mode
for device in devices {
println!("\n{} Found device {}\n{:?}\n", "=".repeat(30), "=".repeat(30), device);
let control = ControlInterface::from_device_identifier(device).await?;
control.set_mode(DeviceMode::Color).await?;
}
Ok(())
}
有关更多示例和详细API文档,请在将库添加到您的项目后运行cargo doc --open
。
命令行界面使用方法
要安装CLI应用程序,请确保已安装Rust和Cargo,然后运行以下命令
cargo install glow-control
从crates-io安装,或
cargo install --path .
直接从仓库安装。
准备您的设备
要开始使用,请确保您已经使用官方Twinkly应用程序在本地网络上配置了您的灯光,并且已经使用应用程序生成了一个3D点云。这个点云将被官方应用程序存储在您的单个Twinkly设备上,因此在初始配置之后,您不再需要应用程序来使用 glow-control
。
发现功能
glow-control
CLI提供了一个discover
子命令,允许您扫描网络中的Twinkly设备。您可以使用此功能查找设备的IP和MAC地址,这些地址是其他CLI命令所必需的。
要使用discover
功能,运行以下命令
默认的发现搜索时间为5000毫秒。如果需要,您可以进行调整。
glow-control discover
IP Address Device ID MAC Address Device Name LED Count
----------- -------------- ----------------- ----------- ---------
10.10.0.42 Twinkly_C54ABC 11:38:aa:c4:aa:55 Living Room 250
10.10.0.37 Twinkly_C5CDEF bb:e5:7c:dd:bb:57 Kitchen 600
您还可以使用--output
选项指定输出格式。支持以下格式:
plaintext
(默认)json
yaml
例如,要获取JSON格式的结果
glow-control discover --output json
运行实时测试颜色
要运行实时测试颜色,请使用real-time-test
子命令,位于device-call
命令下。这将在Twinkly设备上显示旋转的颜色图案。
glow-control device-call --ip <DEVICE_IP> --mac <DEVICE_MAC> real-time-test
<DEVICE_IP>
和<DEVICE_MAC>
分别是您的Twinkly设备的IP和MAC地址。它们必须为所有设备特定命令指定。
实时测试直接从CLI二进制文件中获取输入帧。一旦您终止程序,Twinkly设备最终会超时并返回到其之前的状态。
演示外部应用程序集成
可以通过将另一个程序输出到CLI来实现与其他应用程序的集成。例如,要在设备上显示随机变化的颜色
cat/dev/random|cargo run--device-call--ip10.10.0.37 --mac bb:e5:7c:dd:bb:57rt-stdin--format binary--error-modemod-invalid-address--leds-per-frame5 --min-frame-duration100
其他示例
设置设备模式为'movie'(电影)
glow-control device-call--ip<DEVICE_IP> --mac<DEVICE_MAC>set-mode movie
显示纯色
glow-control device-call--ip<DEVICE_IP> --mac<DEVICE_MAC>rt-effect show-color--color Red
许可证
此库根据MIT许可证和Apache许可证,版本2.0双许可,允许您选择最适合您项目需求的许可证。许可证的全文可以在LICENSE-MIT
和LICENSE-APACHE
文件中找到。
免责声明
本项目与Twinkly及其附属公司无关联、未授权、未经认可,也不是以任何方式官方与Twinkly或其附属公司相连。官方Twinkly网站可在https://www.twinkly.com找到。
贡献
欢迎贡献!如果您想为此库做出贡献,请随时打开一个问题或创建一个带有您的改进或建议的pull request。
依赖关系
~13-26MB
~402K SLoC