Обнаружение, когда сканер штрих-кода заканчивает ввод - PullRequest
1 голос
/ 08 мая 2011

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

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

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

Способ, которым я хотел сделать это, я создаю новый поток в конце моего метода, который спит для MAXIMUM_TIME_BETWEEN_CHARACTERS_FROM_BARCODE_SCANNER + 1 миллисекунда, после пробуждения он проверяет, получил ли я какие-либо новые символы, если я сделал это поток умирает, если новые символы не получены, это означает, что полный штрих-код получен, и я могу использовать его.

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

Кто-нибудь может предложить другое решение?

Я пишу это на C #, если это актуально.

Ответы [ 2 ]

3 голосов
/ 28 июня 2011

Тестировали ли вы свою программу с помощью сканера штрих-кода? Поскольку по моему опыту штрих-код, который я использую, добавляет символ новой строки в конце строки / номера, который он сканировал.

0 голосов
/ 29 июня 2011

Я реструктурировал это решение:

Способ, которым я хотел сделать это, я создаю новый поток в конце моего метода, который спит для MAXIMUM_TIME_BETWEEN_CHARACTERS_FROM_BARCODE_SCANNER + 1 миллисекунда, после пробуждения он проверяет, получил ли я какие-либо новые символы, если я сделал это поток умирает, если новые символы не получены, это означает, что полный штрих-код получен, и я могу использовать его.

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

...