Рекомендации для программируемого драйвера сканера лицензий? - PullRequest
3 голосов
/ 26 ноября 2008

Наш автопарк хочет сканировать водительские права и импортировать данные в нашу пользовательскую систему. Мы ищем что-то, что позволит нам программно получать данные со сканера (включая изображение) и позволять нам вставлять их в наше приложение. Мне было интересно, если бы кто-нибудь имел опыт работы с системой такого типа и мог бы порекомендовать ее или сказать, каких из них следует избегать. Наше приложение написано на PowerBuilder и использует базу данных DB2.

Ответы [ 7 ]

5 голосов
/ 08 апреля 2010

Попробуйте решения от idScan.net (www.idScan.net) Существует SDK, который позволит разбирать водительские права во всех штатах США и провинциях Канады. Вы также можете приобрести оборудование, такое как ID-сканер E-seek m250, который считывает 2D штрих-код и магнитные полосы (программное обеспечение входит в комплект). Удачи!

2 голосов
/ 14 октября 2009

Мы поддерживаем нечто подобное в нашем программном обеспечении для управления записями. Наше приложение предназначено для работы со считывателем клинов, поскольку их легче всего запустить и запустить (никаких специальных драйверов не требуется). При считывании карты считыватель отправляет нажатия клавиш в ОС для каждого символа, закодированного на магнитной полосе, с имитированным нажатием клавиши Enter между каждой дорожкой (лицензия, соответствующая AAMVA, имеет 3 дорожки данных).

Это немного раздражает, потому что ведет себя точно , как будто кто-то печатает данные вручную, поэтому нет простого способа узнать, когда у вас есть все данные (вы можете просто подождать, чтобы получить 3 строки информации, но тогда трудно обнаружить недействительные карточки, например, когда кто-то пытается смахнуть удостоверение студента, на котором может быть закодировано менее 3 дорожек, в этом случае приложение навсегда зависает в ожидании несуществующей третьей дорожки, чтобы быть полученным). Чтобы справиться с этим, мы используем подход «быстрый отказ»: каждый раз, когда мы получаем Enter нажатие клавиши, мы немедленно обрабатываем текущую строку, сохраняя запись того, какой трек мы ожидаем в этой точке (1, 2 или 3). Если текущая дорожка не может быть обработана (например, на дорожке появляется другой начальный символ, отличный от того, что задокументировано для водительских прав в формате AAMVA), мы предполагаем, что пользователь провел пальцем что-то, кроме водительских прав.

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

Подробнее о формате дорожки AAMVA, который используется на магнитных полосах водительских прав, см. В Приложении F к действующему стандарту .

Базовый подход, который мы используем:

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

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

  3. Обработчик событий нажатия клавиш для текстового поля отслеживает нажатия клавиш Enter. Когда одна из них обнаружена, мы берем последнюю строку, сохраненную в данный момент в текстовом поле, и передаем ее анализатору дорожек, который пытается проанализировать дорожку в соответствии с форматом AAMVA.

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

  5. Если синтаксический анализ выполнен успешно, мы увеличиваем счетчик, который сообщает анализатору, какую дорожку он должен обработать следующим.

  6. Если текущее количество треков больше 3, мы знаем, что обработали 3 трека. На этом этапе мы анализируем 3 дорожки (которые уже разбили большую часть полей, но на данный момент все еще сохраняется как строки) в более удобный для использования объект DriversLicense, который выполняет дополнительные проверки данных дорожки и делает их больше расходных материалов из нашего приложения (преобразование поля DOB из строки в реальный объект Date, разбор подполей в поле AAMVA Name в имя, отчество, фамилию, суффикс имени и т. д.). Если эта вторая фаза разбора не пройдена, мы сообщаем пользователю, что нужно переписать карту. Если это удается, мы закрываем диалоговое окно и передаем объект DriversLicense нашему основному приложению для дальнейшей обработки.

1 голос
/ 26 ноября 2008

Если ваш сканер «совместим с двумя интерфейсами», вы сможете управлять им из своего приложения через элемент управления ActiveX, который можно купить в сети, например , этот . Вы сможете управлять своими основными параметрами сканирования (качество, цвет, размер одной / нескольких страниц, формат вывода и т. Д.), Запускать сканирование из своего приложения, сохранять результат в виде файла и передавать этот файл, где это необходимо. Мы использовали его с кодом VB в течение последних 2 лет. Это работает.

0 голосов
/ 07 июля 2011

Вы также можете использовать InfoScan SDK. Вы можете найти его на www.scan-monitor.com, система позволяет вам использовать любой сканер и не заставляет вас покупать определенный сканер.

0 голосов
/ 11 июня 2009

Я написал парсер на C #, и, хотя все в порядке, он все еще далек от совершенства.

Кажется, я не могу найти его, но существовала запись в Википедии, в которой есть шаблоны для поиска (поверьте мне, анализ самого себя - это боль без какой-либо помощи).

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

Мы используем устройство считывания карт dell, и оно вводит его точно , как если бы оно печаталось через клавиатуру, а затем клавишу ввода. Это сделало программирование / очень / легким, потому что тогда вы просто отправляете фокус в текстовое поле и ждете ввода. Основными ключами, которые разбивают его на куски, является морковь '^'. Сломайте это, и у вас будут ваши основные куски.

0 голосов
/ 20 декабря 2008

Вы можете попробовать что-то из этого списка: http://www.adams1.com/plugins.html

Я же сам ими не пользовался.

0 голосов
/ 26 ноября 2008

Может быть, вы хотите использовать считыватель магнитных полос, чтобы получить информацию о водительских правах с карты. Насколько я помню, большинство лицензий на драйверы содержат данные в виде простого текста на этих полосах, так что это относительно прямолинейное программирование.
Читатели MagStripe также дешевы в наши дни.

...