Я пытаюсь реализовать дескриптор устройства HID для пользовательской клавиатуры со светодиодами и встроенной мышью. Я нахожусь в момент, когда я пытаюсь собрать дескриптор HID, и наткнулся на что-то, для чего я не могу найти объяснения.
Дескриптор, показанный в этом посте и этом примере в определении USB, имеет два артефакта, которые я не совсем понимаю. А именно,
- есть зарезервированный байт после модификаторов и заполнение
- после светодиодов.
Заполнение после светодиодов, которое я предполагаю, является таким что светодиодный выход (ввод с клавиатуры) является полным байтом, может кто-нибудь подтвердить это?
Я вообще не уверен, почему после модификаторов есть зарезервированный байт. Это мой главный вопрос, наверное. Некоторое разъяснение будет с благодарностью.
Если требуется зарезервированный байт, нужно будет поместить его в структуру дескриптора HID.
Так, чтобы дескриптор с
- байт модификатора
- зарезервированный байт
- 6 клавиш
будет выглядеть примерно так?
struct my_descriptor {
uint8_t modifiers;
uint8_t reserved; /* never set */
uint8_t keys[6];
};
edit
После прочтения этой записи мне интересно, есть ли зарезервированный байт, чтобы длина отчета была доведена до 8 байт, что делает его совместимым с клавиатурой BOOT