pub struct UsbDevice<'a, B: UsbBus> { /* fields omitted */ }
A USB device consisting of one or more device classes.
Gets the current state of the device.
In general class traffic is only possible in the Configured
state.
Gets whether host remote wakeup has been enabled by the host.
Gets whether the device is currently self powered.
Sets whether the device is currently self powered.
Forces a reset on the UsbBus.
Polls the UsbBus
for new events and dispatches them to the provided classes. Returns
true if one of the classes may have data available for reading or be ready for writing,
false otherwise. This should be called periodically as often as possible for the best data
rate, or preferably from an interrupt handler. Must be called at least one every 10
milliseconds while connected to the USB host to be USB compliant.
Note: The list of classes passed in must be the same for every call while the device is
configured, or the device may enumerate incorrectly or otherwise misbehave. The easiest way
to do this is to call the poll
method in only one place in your code, as follows:
usb_dev.poll(&mut [&mut class1, &mut class2]);
Strictly speaking the list of classes is allowed to change between polls if the device has
been reset, which is indicated by state
being equal to UsbDeviceState::Default
, but
this is likely to cause compatibility problems with some operating systems.
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static