This makes location info in defmt logs point to the code calling the macro,
instead of always to fmt.rs as before. Fix works with nightlies
starting with today's, and stable 1.81+.
This adds the WebUSB implementation as per
https://wicg.github.io/webusb/, using one in-endpoint and one
out-endpoint as well as an example for the RP2040 to illustrate this
capability.
Fix the comment about the default value: this defaults to 64 rather
than 8 bytes.
It seems like the max packet size for endpoint 0 should normally be
selected automatically, rather than being part of the config. At best
it seems like this setting should just be a hint that gets used if when
the bus is operating at full speed. The contents of the device
descriptor should ideally be updated with the correct max packet size
after bus enumeration completes. In practice always using 64 is
probably fine if low speed environments never need to be supported.
(Super speed requires a max packet size of 512 bytes, which I didn't
list in the comments here.)
- Allows classes to handle vendor requests.
- Allows classes to use a single handler for multiple interfaces.
- Allows classes to access the other events (previously only `reset` was available).
This brings it inline with the other embassy-usb descriptor APIs and allows it to integrate well with the Builder to allow class constructors to add MS OS descriptors.
Also adds a `usb_serial_winusb` example to demonstrate how to use the API.
1151: USB: allow setting the interface string for interface alt settings r=Dirbaio a=mattico
This is a breaking change to embassy-usb's API.
Co-authored-by: Matt Ickstadt <matt@beckenterprises.com>
1130: USB serial (CDC-ACM) improvements r=Dirbaio a=timokroeger
* Remove unused call management descriptor
* Set flag for supported capabilities
The rp `usb_serial` example still works with windows hosts.
Co-authored-by: Timo Kröger <timokroeger93@gmail.com>