- Абонемент. Подключение HID-устройства (считывателя) с использованием утилиты TcpCardReader
- Абонемент. Подключение считывателя через COM-порт (RS232) или с использованием утилиты TcpCardReader
Абонемент. Подключение HID-устройства (считывателя) с использованием утилиты TcpCardReader
Начиная с версии 1.27.0.1 утилиты TcpCardReader добавлена поддержка HID-устройств.
Поставка включает в себя следующий набор файлов:
tcpcardreader.exe
decodecards.dll
KeyScan.dll
KeyScan.iniСодержание файла KeyScan.ini:
Абонемент. Подключение считывателя через COM-порт (RS232) или с использованием утилиты TcpCardReader
1. Расположение файлов
При настройке взаимодействия ПО "Абонемент" и утилиты TcpCardReader следует обратить внимание на то, что библиотека decodecards.dll используется и в ПО "Абонемент" и в утилите TcpCardReader и настраивается отдельно для Абонемента и для tcpcardreader.
Ниже указаны пути к файлам учавствующим в настройке взаимодействия утилиты TcpCardReader и ПО "Абонемент":
| \_UCS\_FITNESS\TcpCardReader |
\_UCS\_FITNESS\exe\ |
|
|
TcpCardReader.exe
TcpCardReader.ini
Decodecards.dll
Decodecards.ini
|
Abonementmanager.exe
Abonementmanager.ini
Decodecards.dll
Decodecards.ini
|
|
На Рис. 1 представлена схема получения номера карты и последовательность преобразований:

(Рис.1 Схема получения номера карты)
1.1. Описание файла конфигурации tcpcardreader.ini утилиты TcpCardReader
2. Подключение считывателя карт с использованием утилиты "TCPCardReader"
В этом случае мы можем подключить любое количество считывателей и использовать в различных конфигурациях ПО "Абонемент". Утилита "TcpCardReader" слушает COM-порт и передает полученную из него информацию в указанный TCP-порт для последующей рассылки TCP-клиентам. При этом важно правильным образом сконфигурировать decodecards.ini на стороне ПО "Абонемент" и на стороне TcpCardReader, чтобы в ПО "Абонемент" передавался корректный трек для привязки к клиенту в качестве идентификатора.
2.1. Пример конфигурирования для карт типа Mifare:

(Рис.2 Получение трека карты)
В Putty при считывании карты получили трек (Рис.2) приводим его к виду: 454786863 (1B1B7F2F):
[application]
AutoStart = 1
AutoHide = 0
[TCP]
PORT=7760
IP=0.0.0.0
[READER1]
COMPORT=1
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом
Prefix=;
;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа
Postfix=?
;Использовать decodecards.dll
useDecodeCards=1
StartTermChars=i
FinishTermChars=?#13;#10;#0;[cards]
CardPrefix =
StaffCardPrefix = y
RegularCardPrefix = z
PDSCardPrefix = x
FirstSignEquallyAsLetterA = 0
[cards.Card]
CardDecodeType = mask
mask=hhhhhhhh
bitmask=$7FFFFFFF
code=2
[cards.RegularCard]
code=22
[cards.StaffCard]
code=21
[cards.PDSCard]
code=24После чего, прикладываем карту к считывателю и проверяем лог работы библиотеки преобразования "decodecards.log" в папке "C:\...\TcpCardReader\LOG\":

[TCPCardReader]
PORT=7760
HOST=127.0.0.1
;Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1
UseTCPCardReader=1
StartTermChars=;
FinishTermChars=?#13;#10;#0;[cards]
CardPrefix =
StaffCardPrefix = y
RegularCardPrefix = z
PDSCardPrefix = x
FirstSignEquallyAsLetterA = 0
[cards.Card]
code=2
[cards.RegularCard]
code=22
[cards.StaffCard]
code=21
[cards.PDSCard]
code=24В этом случае в ПО "Абонемент" будет передан номер карты (см. Рис.4): 454786863

(Рис.4 Таблица "Идентификаторы" в ПО "Абонемент")
2.2. Пример конфигурирования для карт типа Em-Marine:

(Рис.5 Получение трека карты в Putty.exe )
В Putty при считывании карты получили трек следующего вида: "Em-Marine[1900] 242,12358", приводим его к виду "24212358" с помощью файла decodecards.ini и tcpcardreader.ini (выделены учавствующие в преобразовании блоки):
Параметры настройки tcpcardreader.ini на стороне утилиты TcpCardReader:
[application]
AutoStart = 1
AutoHide = 0
[TCP]
PORT=7760
IP=0.0.0.0
[READER1]
COMPORT=6
COMPORTPARAMS=baud=9600 data=8 parity=N stop=1
;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом
Prefix=;
;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа
Postfix=?
;Использовать decodecards.dll
useDecodeCards=1
StartTermChars=i
FinishTermChars=?#13;#10;#0;
;Файл логирования треков
TrackLogFile=
ConvertTrackLog=0
IncludeTypeStartTermChar=0
IncludeStartTermChar=0
NeedCheckAndReopenCom=1[general]
usemask=1
[mask]
card = ne*
[cards.Card]
ExcludedPrefix=ne[
code=2
CardDecodeType = MASK
mask=****dddddddd
DecodeTypeEx = 0
(Рис.6 Рассылка через TCP-порт полученного номера карты)
Параметры настройки abonementmanager.ini на стороне ПО "Абонемент":
[TCPCardReader]
PORT=7760
HOST=127.0.0.1
;Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1
UseTCPCardReader=1
StartTermChars=;
FinishTermChars=?#13;#10;#0;[cards]
CardPrefix =
StaffCardPrefix = y
RegularCardPrefix = z
PDSCardPrefix = x
FirstSignEquallyAsLetterA = 0
[cards.Card]
CardDecodeType = mask
mask=dddddddddddddd
code=2
[cards.RegularCard]
code=22
[cards.StaffCard]
code=21
[cards.PDSCard]
code=24В этом случае в ПО "Абонемент" будет передан номер карты: 24212358.
3. Подключение считывателя карт напрямую через COM-порт
В этом случае можно подключить только 1 считыватель который будет занимать COM порт в монопольном режиме. Подключаем считыватель карт, устанавливаем драйвера, в Диспетчере устройств MS Windows мониторим какой порт занят считывателем и указываем его в Putty, после чего проверяем требуемые виды карт на считывателе и смотрим входные данные (треки) в Putty. На основании полученных треков настраиваем decodecards.ini и abonementmanager.ini для передачи преобразованного трека со считывателя в ПО "Абонемент".
3.1. Пример конфигурирования для карт типа MIFARE и Em-Marine

Параметры настройки abonementmanager.ini на стороне ПО "Абонемент":
[TCPCardReader]
PORT=7760
HOST=127.0.0.1
;Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1
UseTCPCardReader=0
StartTermChars=i
FinishTermChars=?#13;#10;#0;
[HARDWARE.READER]
COMPORT = 1
COMPORTPARAMS=baud=9600 parity=n data=8 stop=1
;Если UseTCPCardReader=1, то секция не используется
StartTermChars=i
FinishTermChars=?#13;#10;#0;Параметры настройки decodecards.ini на стороне ПО "Абонемент":
[general]
usemask=1
TrackResultLog=
[mask]
card = ne*
card2 = fare*
[cards.Card]
ExcludedPrefix=ne[
code=2
CardDecodeType = MASK
mask=****dddddddd
[cards.Card2]
ExcludedPrefix=fare[
code=2
CardDecodeType = MASK
mask=hhhhhhhh 
Для проверки корректности преобразования смотрим лог-файлы ПО "Абонемент".
В лог-файле библиотеки декодирования decodecards.dll (\...\exe\LOG\[YYYY-MM].log\decodecards'YYYY-MM-DD=HH.log) ищем записи следующего вида:
В лог-файле ПО "Абонемент" (\...\exe\LOG\[YYYY-MM].log\abonementmanager'YYYY-MM-DD=HH.log) ищем записи следующего вида:
4. Настройка входа (идентификации) в ПО "Абонемент" с использованием карты сотрудника
Заходим в "Настройки"->"Пользователи"->Выбираем нужного сотрудника и нажимаем кнопку "Прикрепить идентификатор" (см.Рис 9):

(Рис.9 Прикрепление идентификатора к пользователю в ПО "Абонемент" )
Появится окно прикрепления идентификатора, соответственно прикладываем карту сотрудника к считывателю (см. Рис 10,11):

(Рис.10 Прикрепление идентификатора)

(Рис.11 Прикрепление идентификатора)