Как отладить Human Interface Device? - PullRequest
2 голосов
/ 30 марта 2012

У меня есть сканер штрих-кода с интерфейсом USB, поэтому он выглядит как HID.

Есть причины, по которым я должен точка останова на первом символе.

Это выводит мою Delphi IDE на передний план, он останавливается на точке останова, а остальная часть штрих-кода вводится в мой код, как если бы он был набран на передней панели клавиатуры (что, в некотором роде, как у USB-сканера)это просто другой HID).

Есть ли способ избежать этого?Или добавить начальную проверку источника ввода?

Меня так раздражает, что я сейчас ищу сканер с интерфейсом RS232.

1 Ответ

1 голос
/ 09 мая 2012

Проблема в том, что HID «устройства» отправляют информацию обратно на компьютер в пакетах, известных как «отчеты» .
В случае магнитного сканирования или сканера штрих-кода «отчет» содержит целое число.

То есть вы получаете отчеты не по буквам, а сразу всю строку. (В случае магнитного удара вы получите все два или три трека в одном отчете).

Таким образом, ваш код не разбивает «по первому символу» , он разбивает «по всему отчету» . Тот факт, что остальные персонажи присутствуют там, вы можете рассматривать как бонус (если вы не хотите на них смотреть, вам не обязательно). Но вы больше не будете получать «отчеты» для последующих символов.

Я не могу представить себе причину, по которой вы не захотите хотеть узнать штрих-код сразу. Но большинство магнитных сканеров и сканеров штрих-кода могут быть настроены на эмуляцию клавиатуры , а не обычного устройства HID. В этом случае вы получите несколько WM_KEYDOWN сообщений.

...