4.13. Global Auto Starter

Информация актуальна для версии Global Auto Starter 1.1.

Global Auto Starter - Приложение, позволяющее запускать клиент Global с помощью RFID-меток.

4.13.1. Введение

При прикладывании RFID-метки к подключенному считывателю, приложение осуществляет автоматический запуск клиента Global, с авторизацией в системе под именем пользователя, ассоциированного с приложенной RFID-меткой.

Автоматически запускается только один клиент, непосредственно при прикладывании метки. Если требуется запуск дополнительных клиентов, все дополнительные экземпляры следует запускать используя пунт меню клиента Global “Файл -> Регистрация -> Новое приложение”. Новые приложения авторизуются также как и то из которого запускаются.

Одновременная работа нескольких клиентов с использованием разных RFID-меток не поддерживается.

При удалении RFID-метки, авторизованные ею клиенты Global завершает свою работу. При этом будут утрачены ещё не сохранённые в Global изменения, так как авторизация дискредитируется.

4.13.2. Требования

  • Клиент Global 5.10.0 ms3, либо выше.

  • Совместимый RFID-считыватель. Поддерживается работа со считывателями IronLogic. Гарантирована совместимость с Z-2 (мод. RD_ALL)/Z-2 USB, с остальными моделями работа не тестировалась.

    Note

    При использовании считывателей, с которыми работа не тестировалась и при возникновении проблем при установке соединения со считывателем, рекомендуется ознакомится с актуальной документацией к вашему устройству. Возможно проблема разрешится внесением правок в настройки группы “Com Port”.

  • Настроенная авторизация в базе данных, через одного прокси-пользователя для всех пользователей с RFID-метками. Настройка прокси-пользователей описана в документации к базе данных, например для версии Oracle 10g тут.

    Также в базе должен присутствовать метод, возвращающий имя пользователя по RFID-метке - BTK.BTS_RfidPKG.GetUsernameByKey.

    Запрос которым сервис получает имя пользователя
    begin
      :sUserName := BTK.BTS_RfidPKG.GetUsernameByKey(:sRfidKey);
    end
    

4.13.3. Установка

  1. Скопировать файлы Global Auto Starter в каталог, из которого они будут запускаться.
  2. Указать в настройках путь к исполняемому файлу клиента Global, имя порта считывателя, имя базы данных, имя и зашифрованный пароль прокси-пользователя, схему подключения к базе.
  3. При необходимости, настроить автозапуск.

4.13.4. Настройки

Для настройки используется конфигурационный файл settings.ini, расположенный в одном каталоге с исполняемым файлом. Все настройки применяются только в момент запуска приложения. После внесения изменений в настройки, приложение требуется перезапустить.

Attention

Файл должен быть сохранён в кодировке utf-8.

Группа “General”

GlobalClientBinPath

Путь к исполняемому файлу клиента Global. Версия клиента должна поддерживать работу с Global Auto Starter.

AppDataPath

Путь к служебным каталогам приложения. По умолчанию используется значение - %AppData%\GlobalAutoStarter\.

Warning

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

Группа “Com Port”

Большая часть настроек этой группы предназначена для конфигурирования подключения к считывателю и тут не описывается. Это настройки: BaudRate, ByteSize, CtsFlowControl и DsrFlowControl. Их значения должны быть установлены согласно спецификации используемого считывателя.

PortName

Имя порта к которому подключен считыватель.

AutoDetectComPort

Автоматический поиск порта устройства. Если заданы настройки ComInfoRequest и ComInfoAnswer, устройство будет определёно на их основе. В противном случае приложение попытается подключться к первому доступному порту.

ComInfoRequest

Строка, которую нужно передать на устройство, чтобы оно вернуло информацию о себе.

ComInfoAnswer

Строка, которую нужно найти в полученной инфрмации об устройстве.

CardInsertMsgRegEx

Регулярное выражение, описывающее формат данных, которые передаёт считыватель при установке RFID-метки. В выражении должна присутствовать именованная группа cNumber, содержащая номер RFID-метки.

CardRemoveMsgRegEx

Регулярное выражение, описывающее формат данных, которые передаёт считыватель при удалении RFID-метки.

EndOfLine

Признак конца строки. Один или несколько символов в виде Hex.

StopBits

Количество стоп-битов.

Возможные значения:

ONESTOPBIT
Один стоп-бит.
ONE5STOPBITS
Полтора стоп-бита.
TWOSTOPBITS
Два стоп-бита.
Parity

Бит четности

Возможные значения:

NOPARITY
Контроль четности не осуществляется.
ODDPARITY
Устанавливает бит четности так, чтобы число установленных битов всегда было нечетным.
EVENPARITY
Устанавливает бит четности так, чтобы число установленных битов всегда было четным.
MARKPARITY
Оставляет бит четности равным 1.
SPACEPARITY
Оставляет бит четности равным 0.

Группа “DB”

DBName

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

DBSchema

Схема подключения к базе данных.

ProxyUserName

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

ProxyUserPassword

Пароль прокси-пользователя, в зашифрованном виде. О том как зашифровать пароль указано в разделе Параметры запуска.

Группа “HTTP”

Port

Порт HTTP-сервера для связи Global Auto Starter с запущенными им клиентами Global.

Пример файла настроек
[General]
GlobalClientBinPath=C:\Global\Global.exe
AppDataPath=%AppData%\GlobalAutoStarter\

[COM Port]
PortName=COM1
AutoDetectComPort=0
ComInfoRequest=i
ComInfoAnswer=USB Z-2 ADAPTER
BaudRate=9600
ByteSize=8
Parity=NOPARITY
StopBits=ONESTOPBIT
CtsFlowControl=0
DsrFlowControl=0
CardInsertMsgRegEx=[\w\W]*\[[\w\W]*\] (?'cNumber'[0-9\.\,]*)
CardRemoveMsgRegEx=No card
EndOfLine=0D000A00

[DB]
DBName=DataBase1
DBSchema=btk
ProxyUserName=ProxyUser1
ProxyUserPassword=07001D0447003C0024002D0005000A046D00570461007E004E00340405044304

[HTTP]
Port=8879

4.13.5. Параметры запуска

Формат
-<имя параметра>[:<значение>]
encpass

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

4.13.6. Настройка автозапуска при работе под Linux

Автозапуск в Linux осуществляется с помощью systemd.

Пример юнита
[Unit]
Description=Global Auto Starter Service
After=display-manager.service

[Service]
Type=simple

Environment="WINEPREFIX=/home/user/win32"
Environment="PROG=C:\\RFID\\GlobalAutoStarter.exe"

ExecStart=wine ${PROG}

Restart=always
RestartSec=10

[Install]
WantedBy=graphical.target

В параметре After необходимо указать свой сервис менеджера экрана.

4.13.7. Служебные каталоги

Во время работы, приложение создаёт различные служебные файлы. Хранятся они в служебных каталогах. По умолчанию, служебные каталоги создаются в директории - %AppData%\GlobalAutoStarter\. Указать свою директорию, для служебных каталогов, можно с помощью настройки AppDataPath.

Логирование

При каждом запуске, приложение создаёт новый файл логирования, в подкаталоге “logs”. Имя файла содержит время запуска, поэтому каждому запуску соответствует свой собственный файл с логами. В файлах логирования содержится информация о событиях происходящих в приложении, в том числе информация о возникающих ошибках. Анализ файлов логирования позволяет определять и решать проблемы, возникающие в работе приложения.

Отчёты об ошибках

При возникновении ошибок, нарушающих работу приложения, в подкаталоге “bugreports” создаётся файл с отчётом об ошибке. Имя файла содержит время запуска. Отчёты об ошибках содержат подробную информацию о состоянии приложения в момент возникновения ошибки. Для анализа отчётов об ошибках их требуется передавать разработчикам.