LINUX.ORG.RU

Не могу разобраться с USB HID


0

1

Есть клавиатура (Razer Anansi), которая имеет ряд рюшек типа подсветки с регулируемым цветом (RGB). Хочется это все запилить под Linux.

Сразу скажу, что с USB знаком недостаточно. Итак, что имеем:

Анализ с помощью Wireshark говорит, что для установки цвета нужно послать HID feature set report вида

unsigned char message[90] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x03, 0x01, 0x01, 0x05, R, G, B, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, CHKSUM, 0x00 };

Код, который это делает с помощью libusb уже у меня есть и даже работает. Но чего не хватает, так это понимания. USB HID specification показалась какой-то мутной. Структура этого feature report как-то стандартизирована? Вообще, feature report покрывается какими-то спеками (USB HID specification?) или это в вольном формате на усмотрение девайса?

Если сделать get report, то получу то же самое, что и в set report, только первым байтом «2». Это все по каким-то спекам или в Razer так решили?

★★★★★

Скорее всего кто как хочет, тот так и извращается. сниффай и делай аналогично.

Dark_SavanT ★★★★★
()

вроде как hid дескрипторы стандартизованы и сделаны так, что должны позволять описывать любое устройство, которое может взаимодействовать с человеком.

там есть такой feature report descriptor lsusb -v сделай и посмотри все дескрипторы устройства

dimon555 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.