eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2019-10-15 09:12 am

Заблуждение геймеров на счет HID

Почему-то на всех радиофорумах геймеры дружно считают, что "для CDC нужны драйвера, а для HID — нет".
Это что за массовое сумасбродство такое? Как будто бы HID без "драйвера" будет работать... Не будет, конечно!
Зато "драйвер" CDC создает в системе устройство вроде /dev/ttyUSBx или /dev/ttyACMx, с которым можно работать прямо "из коробки": не нужно ничего писать на всевозможных языках программирования! Просто сделай изначальную настройку при помощи stty, а затем echo "команды" > /dev/ttyxxx; cat /dev/ttyxxx (у меня сейчас управление питанием телескопа — будущего робота — так и устроено, на баш-скриптах).
В случае же HID необходимо начинать отладку не с командной строки, а с IDE: писать какой-то менеджер, эдакую прослойку между терминалом и железкой... Кстати, аналогичные проблемы возникнут, если выбрать бинарный, а не текстовый протокол.
И еще один недостаток HID: он не может за один пакет больше ~64 (а то и меньше) байт отправить. А пакеты идут не чаще, чем раз в миллисекунду.

В общем, HID хорош только как эмулятор джойстика, клавиатуры и мыши. Для чего-то серьезней он не нужен.
// вспоминаю, как я "реверсил" турели Edmund Optics: там придумали HID и навесили какой-то угрюмый протокол, с которым я чуть ли не неделю возился!