c # общение с USB-портом - PullRequest
       32

c # общение с USB-портом

0 голосов
/ 12 декабря 2011

Я пытаюсь связаться со сканером штрих-кода USB как последовательный порт, используя его имя виртуального COM-порта и класс последовательного порта.

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

Проблема в том, что когда я подключаю сканер штрих-кода к USB-порту и запускаю функцию «GetPortNames»,Я получаю пустой список.Есть предложения почему?Спасибо

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Как правило, многие USB-сканеры штрих-кода будут отображаться как устройства с виртуальной клавиатурой, а не как виртуальные COM-порты.Это объясняет, почему он не появляется.

Поддерживает ли ваш сканер какой-либо режим последовательной эмуляции?Вам может потребоваться настроить его или установить различные драйверы, чтобы включить это.Появляется ли он как последовательный порт в диспетчере устройств?(Смотрите под деревом портов)

В качестве отступления:

Посмотрите на этот вопрос, если вы обнаружите, что поддерживается только «режим клавиатуры»: Чтение штрих-кодаиспользование сканера штрих-кода USB вместе с игнорированием ввода данных с клавиатуры, в то время как идентификатор продукта сканера и идентификатор поставщика неизвестны

Этот вопрос относится к этой статье с большим количеством полезной информации, касающейся перехватов клавиатуры и фильтрацииотсканированные штрих-коды: http://nicholas.piasecki.name/blog/2009/02/distinguishing-barcode-scanners-from-the-keyboard-in-winforms/

0 голосов
/ 12 декабря 2011

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

Код для этого можно найти в проекте с открытым исходным кодом ez430chronosnet ; библиотека .NET, которая может получить доступ к часам TI EZ430 Chronos через USB-ключ.

Вы захотите посмотреть файл PortName.cs , который ищет имя в реестре (оно по крайней мере укажет на правильные ключи) и файл Chronos.cs , который фактически открывает порт с помощью SerialPort.

...