2013-05-30 1 views
2

Кто-нибудь знает, как определить с дескриптора устройства USB или других дескрипторов USB, если устройство USB является HID или эмуляцией клавиатуры? Я ищу интерфейс с семейством Magtek magcard sweep reader, и они могут быть настроены для работы в качестве эмуляции HID или клавиатуры. Магический PID скажет мне, но что произойдет, если кто-нибудь подключится к другому производству? Я ищу универсальный способ определения этого. Я использую библиотеку libudev для интерфейса с моим USB.Существует ли дескриптор устройства USB, чтобы определить, является ли устройство HID или эмуляцией клавиатуры?

Кроме того, существует ли у Linux универсальная процедура для декодирования кодов сканирования эмуляции клавиатуры. У меня есть своя таблица поиска, которая прекрасно работает, но мне просто интересно.

Стив

ответ

1
  1. Единственный способом вы можете сказать, что такое устройство есть, используя PID/VID устройства USB (и класс, но я считаю, оба режим объявлен как HID-устройства класса так или иначе).
  2. Итак, если вы подключите нового производителя, вам придется вручную добавить поддержку для него. По моему опыту (я не использовал считыватель magtek, но tmsr33), ни один читатель не будет вести себя так же, как в HID, так и в режиме эмуляции. Вообще говоря, я бы сказал, что лучше использовать HID-режим, поскольку байты, подвергшиеся воздействию, будут нуждаться в меньшем преобразовании.
  3. AFAICT, я столкнулся с той же проблемой, и я в основном копировал вставки ключей/keylayout из исходных кодов ядра в свой собственный код. Если вы предпочитаете, вы можете напрямую связать исходный код ядра, чтобы получить таблицы.

НТН

Смежные вопросы