Как отладить Human Interface Device?
У меня есть сканер штрих-кода с интерфейсом USB, поэтому он отображается как HID.
Есть причины, по которым я должен остановиться на первом символе.
Это выводит мою Delphi IDE на передний план, она останавливается на точке останова, а остальная часть штрих-кода вводится в мой код, как если бы он был набран на передней панели клавиатуры (что, как и в случае USB-сканера, просто еще один спрятал).
Есть ли способ избежать этого? Или добавить начальную проверку в качестве источника ввода?
Меня это так раздражает, что я сейчас ищу сканер с интерфейсом RS232.
1 ответ
Проблема в том, что HID "устройства" отправляют информацию обратно на компьютер в пакетах, известных как "отчеты".
В случае магнитного сканирования или сканера штрих-кода "отчет" содержит полное число.
То есть вы получаете отчеты не по буквам, а сразу всю строку. (В случае магнитного удара вы получите все два или три трека в одном отчете).
Таким образом, ваш код не разбивается "по первому символу", он разбивается "по всему отчету". Тот факт, что остальные персонажи присутствуют там, вы можете воспринимать как бонус (если вы не хотите на них смотреть, вам не обязательно). Но вы не будете получать больше "отчетов" для последующих персонажей.
Я не могу представить себе причину, по которой вы не хотите знать штрих-код сразу. Но большинство магнитных сканеров и сканеров штрих-кода могут быть настроены на эмуляцию клавиатуры, а не на обычное устройство HID. В этом случае вы получите несколько WM_KEYDOWN
Сообщения.