cli: read hid reports

This commit is contained in:
2026-05-19 00:47:37 -07:00
parent 4c2384fba5
commit c8d3d0409a
6 changed files with 644 additions and 17 deletions
+26 -2
View File
@@ -1,3 +1,27 @@
fn main() {
println!("Hello, world!");
use async_hid::{AsyncHidRead, HidBackend, HidResult};
use deku::DekuContainerRead;
use futures_lite::StreamExt;
use shared::hid::AudioTelemetryReport;
#[pollster::main]
async fn main() -> HidResult<()> {
let usbhid = HidBackend::default();
let dev = usbhid
.enumerate()
.await?
.find(|d| d.product_id == 0xcc1d && d.vendor_id == 0x1209)
.await
.expect("GUAC device not found or not accessible (try as root?)");
let mut reader = dev.open_readable().await?;
let mut buf = [0u8; core::mem::size_of::<AudioTelemetryReport>()];
while let Ok(r) = reader.read_input_report(&mut buf).await {
let buf = &buf[..r];
match AudioTelemetryReport::from_bytes((buf, 0)) {
Ok((_, r)) => println!("{:?}", r),
Err(e) => eprintln!("Unable to parse report: {:?}", e),
}
}
Ok(())
}