#wrapper #hid #binding #usb #api

sys hidapi-alt-for-hidapi-issue-127

Rust语言的hidapi包装器

1个稳定版本

使用旧版Rust 2015

1.2.1 2020年4月27日

#1883硬件支持

MIT 许可协议

220KB
5.5K SLoC

C 3K SLoC // 0.2% comments Rust 669 SLoC // 0.1% comments C++ 632 SLoC // 0.1% comments Visual Studio Project 614 SLoC M4 268 SLoC // 0.4% comments Automake 158 SLoC // 0.0% comments Objective-C 64 SLoC // 0.2% comments Shell 56 SLoC // 0.3% comments Visual Studio Solution 49 SLoC HICAD 36 SLoC

包含 (晦涩的autoconf代码,7KB) etc/hidapi/configure.ac

注意

这是 hidapi-rs 的分支。 hidapi-rshidapi 的包装器。由于 hidapi的问题,最新的 hidapi-rs 在macOS上无法打开多个JoyCons。错误修复的pull request尚未合并。此仓库提供了 hidapi-rs 及其 修改过的 hidapi 分支

hidapi 构建状态 版本 许可协议:MIT 文档 聊天

此crate提供了对C库hidapi功能的Rust抽象。基于Osspial的hidapi-rs

用法

此crate位于crates.io,可以通过将hidapi添加到项目Cargo.toml中的依赖项来使用。

示例

extern crate hidapi;

let api = hidapi::HidApi::new().unwrap();
// Print out information about all connected devices
for device in api.devices() {
    println!("{:#?}", device);
}

// Connect to device using its VID and PID
let (VID, PID) = (0x0123, 0x3456);
let device = api.open(VID, PID).unwrap();

// Read data from device
let mut buf = [0u8; 8];
let res = device.read(&mut buf[..]).unwrap();
println!("Read: {:?}", &buf[..res]);

// Write data to device
let buf = [0u8, 1, 2, 3, 4];
let res = device.write(&buf).unwrap();
println!("Wrote: {:?} byte(s)", res);

文档

可在docs.rs上找到。

依赖项