On Oct 08 2024, Werner Sembach wrote:
[...]Yeah, it just means that you can query or send the data. You can also
use HIDIOCGINPUT() and HIDIOCSOUTPUT() to get a current input report and
set an output report through the hidraw ioctl...
Internally, HIDIOCGINPUT() uses the same code path than
HIDIOCGFEATURE(), but with the report type being an Input instead of a
Feature. Same for HIDIOCSOUTPUT() and HIDIOCSFEATURE().
Thanks for the link, I guess for the BPF driver I will stick to feature reports for the LampArray part until there is actually a hid descriptor spotted in the wild defining LampMultiUpdateReport and LampRangeUpdateReport as Output and not feature.(well as far as I can tell the hut doesn't actual specify, if they need toThey can be both actually. The HUT is missing what's expected here :(.
be feature reports, or am I missing something?)
However, looking at the HUT RR 84:
https://www.usb.org/sites/default/files/hutrr84_-_lighting_and_illumination_page.pdf
There is an example of a report descriptor, and they are using Features.
Not Input+Output.
And looking even further (above), in 3.5 Usage Definitions:
3.5.2, 3.5.3 and 3.5.5 all of them are meant to be a feature, like:
LampArrayAttributesReport CL – Feature -
LampAttributesRequestReport CL – Feature –
LampAttributesResponseReport CL – Feature –
LampArrayControlReport CL – Feature –
3.5.4: can be either feature or output, like:
LampMultiUpdateReport CL – Feature/Output –
LampRangeUpdateReport CL – Feature/ Output –
So I guess the MS implementation can handle Feature only for all but the
update commands.
and there is the pair with LampAttributesRequestReport andYeah, not a big deal. The bold IN and OUT are just to say that calling a
LampAttributesResponseReport.
setReport on a LampAttributesResponseReport is just ignored AFAIU.
Sorry for my confusion over the hid spec.No worries. It is definitely confusing :)