Клавиатура сканер штрих-кода - PullRequest
0 голосов
/ 19 октября 2011

Мы используем сканеры штрих-кодов в нашем приложении для сканирования штрих-кодов. Как правило, когда сканируется штрих-код ISBN, при сканировании ISBN возвращается следующий набор ключей: 97887021006268

  • LeftCtrl
  • B
  • LeftShift
  • M
  • D9
  • D7
  • D8
  • D8
  • D7
  • Д0
  • D2
  • Д0
  • D6
  • D2
  • D6
  • D8
  • LeftCtrl
  • C

Сочетание LeftCtrl + B является преамбулой и говорит нам, что мы начинаем читать идентификационный номер. Комбинация LeftCtrl + C является постамблом и говорит нам, что мы заканчиваем читать идентификационный номер. Комбинация LeftShift + M говорит нам, что мы читаем тип штрих-кода. Основываясь на этой информации, после сканирования штрих-кода я могу автоматически искать книгу с соответствующим номером ISBN. Мы используем нашу собственную библиотеку считывателей штрих-кодов, где мы можем распознать ISBN, Code39 и I2Of5.

Теперь наш клиент - оба новых сканера штрих-кода, которые являются сканерами клавиатуры. После сканирования того же ISBN, мы видим, что он не содержит, преамбулу и после, а также код для возврата типа штрих-кода. Вместо этого мы получили только цифры и Return ключ в конце:

  • D7
  • D8
  • D8
  • D7
  • Д0
  • Д0
  • D6
  • D2
  • D6
  • D8
  • Возвращение

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

  • TextBox на который будет отсканирован идентификационный номер
  • RadioButton с опциями (ISBN, Code39, I2Of5)
  • Кнопка, отвечающая за дальнейшую обработку на основе выбранной опции RadioButton, значения в TextBox и

Я хотел бы спросить, есть ли другое (лучшее) решение.

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Есть несколько подсказок, для которых вы можете кодировать. Если вы сканируете настоящую книгу, вы получите код EAN13 + 5 Bookland EAN. Если вы используете другой тип кода (как в вашем примере), вы получите только 13 цифр. Проверьте длину == 13 или длину == 18.
ISBN начинаются с 978 (или 979, в конце концов) и заканчиваются контрольной суммой MOD 10. Таким образом, вы можете проверить значение сканирования

/^(97[8|9]\d{10})5(\d{4})$/

для книг по цене в США. Последняя цифра перед ценой является контрольной суммой. Это должно дать вам хороший признак того, что вы работаете с ISBN.
Я обнаружил, что лучше кодировать это на сервере, чем зависеть от пользователя для правильного ввода.

0 голосов
/ 19 октября 2011

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

выглядит так:

  1. пользователь захватывает все, что хочет сканировать
  2. пользователь нажимает очень большую кнопку "сканирование книги" или "порядок сканирования" (здесь вы получаететип кода у вас больше нет)
  3. пользователь выполняет сканирование
  4. вы делаете то, что вам нужно делать с отсканированным номером
...