2016-06-28 2 views
0

Я нашел несколько ответов в поиске информации из HID в Linux, но не так много в Windows.Сортировка ввода из нескольких HID в Windows

Я создал систему, в которой человек может сканировать идентификационный значок при вводе инструктажа, который регистрирует их посещаемость в базе данных. Он использует переднюю панель Python 3.4, которая запрашивает, а затем обновляет базу данных MongoDB.

В настоящее время у меня есть USB-сканер штрих-кодов, который при сканировании действует как клавиатура и «тип», что говорит штрих-код, за которым следует CR. У меня также есть окно, которое берет ввод текста, а затем закрывает окно и выполняет запрос базы данных и обновляется при получении CR.

Текущая проблема - скорость. Меня попросили расширить систему, чтобы один компьютер с USB-концентратором мог брать 4-8 из этих сканеров штрих-кодов одновременно, пытаясь увеличить скорость сканирования до 1000 человек каждые 5 минут.

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

Насколько я понимаю, мне нужно разместить каждый сканер в своем потоке, чтобы предотвратить перекрывающиеся данные, и я не хочу «блокировать» вход с других сканеров, когда система обнаруживает начало сканирования, как эта система все о скорости. Однако я не уверен, как отличать устройства и как внедрять систему.

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

+0

Какой у вас сканер? и система должна иметь ответ, такой как OK/NOK после сканирования? – profesor79

+0

Используемый в настоящее время сканер от Amazon: [link] (https://www.amazon.com/Automatic-Barcode-Scanning-Bar-code-Adjustable/dp/B00406YZGK/ref=sr_1_3?ie=UTF8&qid=1467243673&sr=8 -3 & keywords = barcode + scanner) Система не нуждается в ответе, и мы, возможно, вскоре обновимся до лучших сканеров. Они по-прежнему будут иметь разновидность, которая действует как клавиатура, а затем добавляет CR, когда это делается при сканировании. – garethsspace

ответ

0

В этом случае я предлагаю использовать сканеры/считыватели, которые могут эмулировать последовательный порт (COM). Поскольку устройство HID записывает на ту же шину, существует большая вероятность того, что вывод из двух или более устройств может быть перемешан.

Подробнее я добавлю строку идентификатора устройства в префикс, например dev01. Связывание с COM-портом может использоваться модулем pySerial.

Любые комментарии приветствуются!

+0

Очень ценим! Извинения за отложенный ответ, интернет в правительстве может быть непостоянным. Я предполагаю, что я должен запускать поток для каждого устройства, чтобы постоянно отслеживать каждый из них? Кроме того, можно ли взять устройство, которое автоматически устанавливает драйверы (plug-and-play style) для работы в качестве COM-порта? Большое вам спасибо за вашу помощь! – garethsspace

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