4个版本 (2个破坏性更新)
0.2.0 | 2022年11月30日 |
---|---|
0.1.2 | 2021年5月10日 |
0.1.1 |
|
0.1.0 |
|
0.0.3 | 2020年8月21日 |
#1090 在 硬件支持
每月下载量 33
在 4 个crate中使用 (直接使用3个)
24KB
450 行
usb_enumeration
一个跨平台Rust库,可以返回当前连接的USB设备的厂商和产品ID
示例
let devices = usb_enumeration::enumerate(None, None);
println!("{:#?}", devices);
// Outputs:
// [
// UsbDevice {
// id: "USB\\VID_0CE9&PID_1220\\0000000004BE",
// vendor_id: 3305,
// product_id: 4640,
// description: Some(
// "PicoScope 4000 series PC Oscilloscope",
// ),
// },
// UsbDevice {
// id: "USB\\VID_046D&PID_C52B\\5&17411534&0&11",
// vendor_id: 1133,
// product_id: 50475,
// description: Some(
// "USB Composite Device",
// ),
// },
// UsbDevice {
// id: "USB\\VID_046D&PID_C52B&MI_00\\6&12D311A2&0&0000",
// vendor_id: 1133,
// product_id: 50475,
// description: Some(
// "Logitech USB Input Device",
// ),
// },
// etc...
// ]
您还可以使用 Observer
订阅事件
use usb_enumeration::{Observer, Event};
let sub = Observer::new()
.with_poll_interval(2)
.with_vendor_id(0x1234)
.with_product_id(0x5678)
.subscribe();
// when sub is dropped, the background thread will close
for event in sub.rx_event.iter() {
match event {
Event::Initial(d) => println!("Initial devices: {:?}", d),
Event::Connect(d) => println!("Connected device: {:?}", d),
Event::Disconnect(d) => println!("Disconnected device: {:?}", d),
}
}
许可证:MIT
依赖项
~100–460KB