#usb #libusb #hardware #bindings #usb-device

libusb-wishbone-tool

用于访问USB设备的Rust库的托管副本

1个不稳定版本

使用旧的Rust 2015

0.3.1 2020年6月30日

#1834硬件支持


用于 wishbone-bridge

MIT 许可证

155KB
3K SLoC

Libusb

此包提供了对原生 libusb 库的安全包装。它应用RAII模式和Rust生命周期来确保所有 libusb 功能的安全性。RAII模式确保在不再需要时释放所有获取的资源,而Rust生命周期确保以正确的顺序释放资源。

依赖项

为了使用 libusb 包,您必须安装原生 libusb 库,使其可通过 pkg-config 找到。

原生 libusb 库支持的系统也支持 libusb 包。它已在Linux、OS X和Windows上进行了测试。

交叉编译

当交叉编译到外国目标时,可以使用 libusb 包。如何交叉编译 libusb 的详细信息请参阅 libusb-sys 包的README

使用方法

libusb 添加到 Cargo.toml 中的依赖项

[dependencies]
libusb = "0.3"

导入 libusb 包。几乎所有 libusb 功能的起点是创建一个上下文对象。使用上下文对象,您可以列出设备、读取它们的描述符、打开它们并与它们的端点通信

extern crate libusb;

fn main() {
    let mut context = libusb::Context::new().unwrap();

    for mut device in context.devices().unwrap().iter() {
        let device_desc = device.device_descriptor().unwrap();

        println!("Bus {:03} Device {:03} ID {:04x}:{:04x}",
            device.bus_number(),
            device.address(),
            device_desc.vendor_id(),
            device_desc.product_id());
    }
}

贡献者

许可证

版权所有 © 2015 David Cuddeback

根据 MIT 许可证分发。

依赖项

~2MB
~47K SLoC