32174abcfa
Running the "HID Tests" suite of the USB 3 Command Verifier (USB3CV) tool resulted in the following error: (HID: 3.2.61) The report descriptor returned in response to a GetDescriptor(Report) must be compliant with the HID specification. Byte Number: 37h ( 55d) Data Field: 91 02 Mnemonic: Output Value: (Variable) Errors: Error: LOGICAL MAX MUST be bounded by Report Size The error stems from the fact that logical minimum and maximum are global items, which means that the next item in a report descriptor inherits the value from the previously set value. In this case the status leds item inherited the logical minimum (=0) and maximum (=255) from the keycodes item. As the status leds set a report size of 1 bit, wich can only hold a boolean, it becomes clear that this range would never fit. The fix is straightforward, we just define a appropriate logical maximum (=1), the mismatch is solved and our keyboard now passes the compliance tests. Defining the logical minimum is redundant in this case but is kept to form a logical block. |
||
---|---|---|
.. | ||
arm_atsam | ||
chibios | ||
lufa | ||
usb_hid | ||
vusb | ||
host.c | ||
host.h | ||
host_driver.h | ||
report.c | ||
report.h | ||
usb_descriptor.c | ||
usb_descriptor.h | ||
usb_descriptor_common.h | ||
usb_device_state.c | ||
usb_device_state.h | ||
usb_util.c | ||
usb_util.h |