#led #logitech #bindings #api-bindings

logitech-led-sdk

A Rust 绑定用于 Logitech LED SDK

2 个版本

0.1.1 2023 年 6 月 6 日
0.1.0 2023 年 6 月 6 日

#9 in #logitech

MIT/Apache

50KB
1K SLoC

logitech-led-sdk-rs

Logitech LED 库的 Rust 绑定。它使用 v9.00 版本构建和测试,很可能与 LGS 兼容,并且肯定与 LG HUB 兼容。由于缺少文档,假定 SDK 是单线程的。库将使用内部同步来确保对库的访问是安全的。此绑定的目标是提供一个 SDK 的包装器,而不是提供与 Logitech 设备上的 LED 交互的方法。

文档

版本: https://docs.rs/crate/logitech-led-sdk/latest/logitech_led_sdk/ 主版本: https://nathaniel-daniel.github.io/logitech-led-sdk-rs/logitech_led_sdk/

构建

您需要单独下载 LG SDK。您可以在这里找到它。

将环境变量 LOGITECH_LED_SDK 设置为下载的 zip sdk 中的 LED 文件夹。

示例: LOGITECH_LED_SDK = C:\Users\[username]\Documents\code\LED_SDK_9.00\LED.

示例

use logitech_led_sdk::Sdk;
use logitech_led_sdk::ColorPercent;
use logitech_led_sdk::TargetDevice;

fn main() {
    /// Do not use `expect` in a real application.
    /// If this fails, its likely that the user does not have LGS or LG HUB installed.
    let sdk = Sdk::new_with_name("Test").expect("failed to initialize SDK");
    
    let version = sdk.get_version().expect("failed to get version");
    println!("Version: {:#?}", version);
    
    /// Do not use `assert!` in a real application.
    assert!(sdk.set_target(TargetDevice::All));
    assert!(sdk.set_lighting(ColorPercent::new_rgb(255, 255, 255)));
}

测试

在运行了 LGS 或 LG HUB 的电脑上,运行

cargo test

许可

许可协议为以下之一

任选其一。

贡献

除非您明确说明,否则您有意提交以包含在作品中的任何贡献,根据 Apache-2.0 许可证定义,应按上述方式双许可,而不附加任何额外条款或条件。

依赖项

~105KB