#bindings #userspace #idiomatic #devices #build #source #link

xwiimote

对 xwiimote 用户空间库的 Rust 语法绑定

9 个版本

0.2.5 2023 年 9 月 24 日
0.2.4 2023 年 9 月 20 日
0.2.2 2022 年 8 月 26 日
0.2.1 2022 年 6 月 9 日
0.1.3 2022 年 6 月 7 日

#412 in 硬件支持

每月 43 次下载

MIT 许可证

48KB
782 代码行

xwiimote

Crates.io docs.rs Build status

xwiimote 用户空间库的 Rust 语法绑定。

用法

构建和使用此库需要以下依赖项

  • libudev >= 183
  • libxwiimote >= 2-2 (可选;设置 XWIIMOTE_SYS_STATIC=1 以从源代码构建并静态链接。)

wiinote 应用程序展示了此库提供的功能。

许可证

MIT © Hugo Sanz González


lib.rs:

此库提供了对 xwiimote 用户空间库的安全 Rust 接口。

示例

连接到找到的第一个 Wii Remote 并打印其电池级别。

use xwiimote::{Device, Monitor};
use futures_util::TryStreamExt;

// A monitor enumerates the addresses of all connected Wii Remotes.
let mut monitor = Monitor::enumerate()?;
match monitor.try_next().await {
    Ok(Some(address)) => {
        // Connect to the Wii Remote specified by `address`.
        let device = Device::connect(&address)?;
        let level = device.battery()?;
        println!("the battery level is {}%", level);
    }
    Ok(None) => println!("found no connected device"),
    Err(e) => eprintln!("could not enumerate devices: {e}"),
};

打印新发现的设备的地址。

use xwiimote::{Device, Monitor};
use futures_util::TryStreamExt;

let mut monitor = Monitor::discover()?;
while let Ok(Some(address)) = monitor.try_next().await {
    println!("found device at {address:?}");
}

依赖项

~0.7–3.5MB
~67K SLoC