Как правильно настроить считыватель карт

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
[ Закрыто ] Как правильно настроить считыватель карт, Инструкция по настройке сканеров и считывателей магнитных карт
 
Как правило затруднения в настройке сканеров и считывателей магнитных карт вызывают модели работающие через буфер клавиатуры. То есть считанное значение (данные) они посылают в виде клавиатурной посылки, только с намного более высокой скоростью по сравнению с пользователем.
Как правило старые модели подключались "в разрыв клавиатуры", то есть в клавиатурный порт PS/2 (или устаревший DIN) в системном блоке подключалось устройство, а в него уже следом подключалась штатная клавиатура (если рабочее место ей комплектуется). Так работали многие модели как сканера штрих-кодов (Scanner), так и считыватели карт с магнитной полосой (MSR). Современные модели уже имеют USB-интерфейс подключения к системному блоку (так что включаются они "параллельно" со штатной клавиатурой), но работают точно так же как и раньше, то есть посылают считанные данные в буфер клавиатуры.
Все такие устройства мы будем условно называть "клавиатурные".

Часть I
Так в чем же чаще всего заключается проблема с такими устройствами?
В том что они имеют настройки по умолчанию (то есть заводские), которые нас не устраивают по нескольким причинам.
Вот результат теста работы считывателя в моноболоке одного из ПОСов:


И что здесь плохого / не правильного?
1) То что этот считыватель посылает ненужные символы ";" "?" и возврат каретки (который не отображается, но переводит строку). Если Вы будете считывать карточки сотрудников для помещения их в базу данных, то лишние символы ";" и "?", которые этот считыватель посылает всегда, вам в вашей базе совершенно не нужны. Кроме того, если раскладка клавиатуры изменится на русскую, то эти символы тоже изменяться на "ж" и "," и поиск в базе уже не найдет эту карточку!

"Клавиатурные" устройства посылают данные так же как обычная клавиатура, так что чтобы проверить их работу, не нужно запускать никакие программы и настраивать драйверы.
Достаточно запустить обычный стандартный блокнот системы Windows (Пуск -> Программы -> Стандартные -> Блокнот), и пока фокус ввода находится внутри его окна (курсор мигает), считайте/просканируйте два раза подряд один и тот же код / карточку.
Вот что примерно у вас получится в результате:

Обратите внимание, после переключения на русскую раскладку было еще два считывания той же карты. И данные уже стали другие! Это неправильное поведение.

2) Считыватель завершает посылку данных возвратом каретки (символ перевода строки). Это аналогично нажатию клавиши "Enter" на стандартной клавиатуре. Зачем?! Очевидно производители заботятся о совместимости с широким спектром старых программ, не работающих со сканерами самостоятельно, а ждущими когда им введут/пришлют данные в определенном поле ввода. Ввод пользователи, как правило, завершают как раз нажатием на Enter, вот сканер/считыватель и "позаботился" о том, чтобы его "нажать" автоматически.
Программные продукты нашей фирмы работают с оборудованием самостоятельно. Они умеют получать информацию от сканеров и считывателей "по другим каналам". Для их работы вовсе не требуется заботиться о том чтобы фокус ввода был предварительно установлен в определенном поле формы.
И посылка дополнительного неожидаемого программой символа возврата каретки в буфер клавиатуры, может восприниматься программой как излишнее нажатие на клавишу "Enter". В зависимости от места (интерфейса, формы, поля ввода), где это произошло, это может либо остаться незамеченным, либо быть воспринято как лишнее нажатие на экранную кнопку по-умолчанию, либо клавишу "Enter", хотя никаких данных пользователь еще не вводил.

Поэтому все "клавиатурные" устройства необходимо настраивать/программировать, чтобы они посылали только нужную/необходимую информацию. Это можно сделать при помощи утилит от производителя устройств. Требуйте их наличие в комплекте поставки при покупке!

Рассмотрим правильную настройку на модели считывателя карт MSR213U-33AUKNR, что был на нашем складе торгового оборудования на момент написания данной инструкции. Он имеет USB-интерфейс подключения, и в комплекте поставки есть диск с программами от производителя. Утилита настройки имеет имя "MSR213U Setting AP". После запуска нужно прочитать настройки из устройства при помощи кнопки "Read from EEPROM", потом изменяем следующие настройки:
- Set Requred Tracks в значение TK2 — задается, чтобы считыватель обязательно контролировал наличие 2-ой дорожки на любой карточке. Как правило в большинстве случаев значащая информация записывается именно на 2-ую дорожку, но в некоторых специальных случаях применения (например, карточки гостиничных систем) она может располагаться и на других дорожках.
- Carriage Return в значение No CR — так отключается посылка возврата каретки (т.е. "Enter")
В группе настроек Track Output Order нужно сделать следующее:
- First в значение No SEND — данные первой дорожки не посылать
- Second в значение Track 2 — посылать данные со второй дорожки карта
- Third в значение No SEND — данные третьей дорожки не посылать
И еще важная настройка:
- Transmit SS/ES этот флажок нужно выключить — это как раз про символы ";" и "?" (служебные символы обозначающие начало и конец дорожки), которые мы не хотим получать в данных

Вот что должно было получиться в итоге:

Для сохранения результатов изменения настроек (запрограммировать устройство) необходимо воспользоваться кнопкой "WRITE TO EEPROM"

Открываем опять блокнот, считываем карту два раза подряд, проверяем что получилось:

Условия выполнены, никаких лишних символов, перевода строк между двумя считываниями тоже нет. А самый последний символ на скриншоте это на самом деле "мигающий курсор". И его положение в этом месте лишний раз свидетельствует что ничего лишнего устройство нам теперь не посылает

Часть II
1. Теперь поговорим о "других путях" получения программным продуктом данных из устройства.
Это делается при помощи драйверов оборудования, которыми комплектуются все наши программные продукты. Как работает драйвер "клавиатурного" устройства? Он постоянно "прослушивает" все, что набирается на клавиатуре и отслеживает не его ли это данные, которые он должен "выхватить" и передать программе которая его запустила. А как он узнает, что вот пошли "его данные" в общем клавиатурном потоке?! Смотрим настройки драйвера. Для всех клавиатурных моделей там задаются префикс и постфикс кода (см. самый первый скриншот). Именно по этим символам драйвер и отслеживает/определяет "свои данные". Следует учесть, что драйвер отбросит эти символы и отправит в приложение (программу его использующую) только то, что находится между префиксом и постфиксом. При этом вся "клавиатурная посылка", которую сформировало устройство, будет полностью "вырезана" из буфера клавиатуры (драйвер передаст эти данные в программу другим способом — через программный интерфейс взаимодействия между драйвером и запустившей программой).

Таким образом проверка работает ли клавиатурный (именно клавиатурный!) сканер или считыватель в наших программах заключается в том, чтобы убедиться что в при включенном устройстве в поле ввода (ну например, в поле "Наименование" в любом справочнике) "НЕ ПОПАДАЮТ" никакие считанные данные т.к. согласно тому что написано выше при правильной работе драйвера они должны быть полностью "вырезаны" из клавиатурного потока. А если устройство выключить (в 1С продуктах их можно включать и выключать отдельно через доп. меню справочника "Оборудование"), то драйвер перестает "выкусывать" из буфера клавиатуры, и считанные данные начинают попадать в поле с фокусом ввода. Если так и есть, то все настроено правильно. Программа обработает полученные данные в только в тех своих интерфейсах (формах документов, АРМах, списках), где это специально предусмотрено.

2. Так что еще нужно настроить чтобы все наконец заработало правильно?!
Нужно сделать так, чтобы "клавиатурное" устройство при отправке нам данных "обрамляло" бы их символами префикса и постфикса, по которым их узнает драйвер, "выкусит" из буфера клавиатуры и отправит в программу "другим путем".
При этом символы префикса и постфикса рекомендуется выбирать такими, чтобы они были одинаковыми при любой раскладке клавиатуры и не зависели от других нажатых клавиш (например от Shift).
Обычно мы рекомендуем использовать клавишу "+" на дополнительной цифровой клавиатуре, и наши драйвера имеют настройки по умолчанию три символа "+" как в префиксе так и в суффиксе.

Опять запускаем утилиту "MSR213U Setting AP" и настраиваем устройство дальше, на закладке "Set Prefix", включаем три символа (KeyPad +)для префиксации данных 2-ой дорожки:

А на закладке "Set Suffix" включаем те же самые три символа (KeyPad +) которые устройство пошлет нам после данных второй дорожки:

Не забываем воспользоваться кнопкой "WRITE TO EEPROM", чтобы запрограммировать устройство.
И опять проверяем, что у нас получилось при помощи программы "Блокнот"

Правильная работа "клавиатурного" устройства в "Блокноте" должна выглядеть вот так:

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

Теперь осталось проверить еще раз настройки префикса и суффикса в драйвере программы (см. самый верхний скриншот), чтобы там были установлены соответствующие +++ и +++, и вот теперь уже точно все.
Все настройки завершены. Теперь ваш считыватель/сканер должны работать правильно всегда.
 
Настройка клавиатурных сканеров

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

Но как объяснялось в этой теме выше, для правильной работы клавиатурного драйвера необходимо иметь в клавиатурном потоке маркеры начала и конца посылки от оборудования. То есть префикс совершенно необходим для работы драйвера! Поэтому сканер тоже требуется настроить (задать ему префикс и постфикс). Обычно это делается управляющими штрих-кодами (они приводятся в документации к оборудованию). Их распечатывают на лазерном принтере и считывая их последовательно сканер "программируется" на нужные режимы, параметры и значения префикса и постфикса. Так что по-умолчанию (без какой-либо настройки) клавиатурный сканер не заработает.

P.S. Со сканерами/считывателями подлкючаемыми по последовательному порту (он же COM-порт, он же интерфейс RS-232) таких проблем нет и указав в настройках правильный порт и скорость обмена как правило сразу получаем работающее в программном продукте оборудование.
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С