Anviz t5 pro подключение к компьютеру
Недавно мне в руки попало новое биометрическое устройство Anviz , интегрированное с дверным замком. Моей задачей было связать это устройство с 1С. Я начал изучать SDK и с удивлением обнаружил, что в нем отсутствуют функции распознавания. Оказывается, все распознавание ведется внутри устройства.
Благодаря такой реализации получаются следующие преимущества:
- Устройство может работать автономно, без связи с компьютером.
- Устройство подключается в локальную сеть по TCP / IP , один компьютер может обслуживать целую сеть устройств.
- Можно заводить базу отпечатков с помощью стандартной программы от AVIZ и копировать ее во все устройства.
Устройство, с которым я работал – Anviz T 5 Pro , стоит в районе 250$:
Существует его более простая модификация – Anviz T 5. Она работает только в режиме сканера отпечатков и не содержит функции распознавания, соответственно, требует постоянной онлайн-связи с обслуживающим компьютером.
Оба устройства поддерживают режим дополнительной верификации с помощью RFID карт.
Для параноиков существует еще более защищенное устройство – Anviz T 50, оно содержит кнопки для ввода пин-кода и стоит в районе 350$:
У Anviz есть программа, которая занимается обслуживанием T 5 Pro – заносит в него базу отпечатков, делает настройки сетевого адреса и т.п.
SDK для подобных устройств бесплатное. Оно называется SDK _ ALL , функции имеют префикс CKT . В состав SDK входит множество примеров на различных языках программирования.
Выбор способа реализации
Для интеграции с 1С нужно только оперативно получать журнал устройства. Нужны только функции для чтения журнала прохода и установки соединения.
Поэтому для решения я выбрал известный мне Visual Basic 6.
Подключение DLL к Visual Basic 6
SDK реализовано в файле tc400.dll
Модуль подключения к DLL прописан в файле CKT_DLL.bas из SDK .
Используются функции системной библиотеки kernel32 для копирования участков памяти.
Подключение к устройству
При подключении к сетевому устройству Anviz обнаружено, что соединение происходит только по ID = 0. Поэтому в случае опроса нескольких устройств их надо подключать по очереди через этот ID . Все демонстрационные программы не работают по ID , отличному от 0.
Подключение по выделенному ID доступно только в режиме сервера. Я пока не разобрался с этим режимом. Решил не усложнять, если и так хорошо работает.
Если устройство не подключено к сети, то функция подключения из SDK ждет с достаточно большим таймаутом, около 2х секунд.
Чтобы отключенное устройство не тормозило процесс перебора устройств, я предварительно пингую адрес с временем ответа 20 милисекунд. Если ответ получен, значит устройство в сети и можно читать журнал.
Опрос устройств идет раз в секунду, занимает одну секунду. В принципе, если устройств достаточно много, то можно запустить два приложения, чтобы они параллельно обслуживали устройства.
Чтение журнала проходов
Отпечатки пальцев привязываются к номеру сотрудника ( Staffer No ) – текстовой строке в программе настройки Anviz . По сути, основная цель интеграции Т5 Pro - считывание журнала проходов.
В тестовой программе XE 2 окно чтения журнала выглядит так:
Записи хранятся в некотором буфере ограниченного размера (порядка 400-1000 записей).
Каждая запись имеет пометку, что она новая. Есть функции, которые считывают весь журнал, есть функции, которые считывают только новые записи.
Есть функция, которая очищает весь журнал и функция, которая снимает пометку со всех новых записей.
На практике для оперативной связи с устройством достаточно прочитать все новые записи и тут же, при успешном чтении, снять пометку о новых записях. Если удалось прочитать новые записи и удалить отметку о новых записях, транзакцию чтения можно считать успешно завершенной.
Записи в журнале имеют структуру:
Код по чтению журнала выглядит примерно так:
If CKT_GetClockingNewRecordEx(CurrDevice.sno, pLongRun) Then
ret = CKT_GetClockingRecordProgress(pLongRun, RecordCount, RetCount, pClockings)
В прошлой статье мы рассказали, как установить программу CrossChex. Теперь опишем, как добавить устройство в программу и начать с ним работать.
В нашем примере мы используем биометрический терминал учета рабочего времени Anviz W1. Он подключен в сеть и ему присвоен ip адрес 192.168.1.218. В приборе Anviz W1 предусмотрен пользователь Amdin с идентификатором «0» и с паролем по умолчанию «12345». В целях соблюдения информационной безопасности необходимо сменить пароль для этого пользователя, чтобы избежать случаев несанкционированного доступа к устройству. Далее, опишем, как это сделать.
Нажимаем на кнопку «Параметр устройства» и в открывшемся окне, в поле «Управление паролями….» вместо «12345» указываем новый пароль. Пароль должен быть цифровым длиной не более 6 знаков. Нажимаем на кнопку «Ок».
В следующем окне подтверждаем, что хотим продолжить.
В результате видим, что установка параметров успешна.
Можно проверить пароль на устройстве, вызвав меню через интерфейс Anviz W1. Теперь, человек, не знающий новый пароль, не может получить доступ к Anviz W1 через меню прибора. Чтобы исключить несанкционированный доступ к Anviz W1 по сети, необходимо активировать «Код связи». Для этого необходимо перейти в меню прибора «Сеть» -> «Comm mode».
Установим другой код связи.
Далее, удалим из CrossChex устройство и вновь добавим его в программу, но при этом укажем установленный в предыдущем шаге новый код связи:
После этой процедуры, устройство не может быть добавлено в программу CrossChex по сети без указания правильного кода связи.
Читайте также: