embassy-usb-host

Crates

git

Versions

default

Flavors

Module hid_report

Module hid_report 

Source
Expand description

HID Report Descriptor parser.

Parses a USB HID report descriptor byte stream and provides typed access to field values inside raw report buffers, without heap allocation.

§Usage

use embassy_usb_host::class::hid::{HidHost, PROTOCOL_BOOT};
use embassy_usb_host::class::hid_report::{ReportDescriptor, usage_page, usage};

// After enumeration, fetch the HID report descriptor:
let mut desc_buf = [0u8; 256];
let desc_bytes = hid.fetch_report_descriptor(&mut desc_buf).await?;
let report: ReportDescriptor<32> = ReportDescriptor::parse(desc_bytes);

// In the read loop:
let mut buf = [0u8; 64];
hid.read(&mut buf).await?;

let x = report.extract_i32(&buf, 0, usage_page::GENERIC_DESKTOP, usage::X);
let y = report.extract_i32(&buf, 0, usage_page::GENERIC_DESKTOP, usage::Y);
let btn1 = report.extract_bool(&buf, 0, usage_page::BUTTON, 1);

Modules§

flags
Bit flags from a HID Input/Output/Feature item (bits 0–7 of the item data).
usage
Generic Desktop usages (usage page usage_page::GENERIC_DESKTOP).
usage_page
Common HID usage page identifiers.

Structs§

ReportDescriptor
Parsed HID report descriptor.
ReportField
A single logical field decoded from a HID report descriptor.