Подключение считывателя ESMART Reader к ПО "Абонемент". Настройка совместной работы считывателей ESMART и IronLogic (Z-2/Matrix-III)

Рис.1 Внешний вид считывателя ESMART Reader
Подключаем считыватели, устанавливаем драйвера и открываем COM-порты через PuTTy

Рис.2 Треки полученные со считывателей
На считыватель Esmart Reader (в режиме эмуляции COM-порта) пришел трек: 04614912234F80, в свою очередь на считыватель IronLogic Z-2 USB RD-ALL трек той же карты передается в виде: Mifare[12234F80046149] 004,24905 (0144,08).
Видим, что 04614912234F80 получается из 12234F80046149 путем перемены местами 8 начальных и 6 конечных симоволов. Для такой перестановки в утилите decodecards (с версии 1.28) существует параметр "DecodeTypeEx=4".
Произведем настройку TCPCardReader (с использованием утилиты decodecards) таким образом, чтобы идентификаторы прикрепленные с помощью считывателя Esmart Reader совпадали с идентификаторами прикрепленными на IronLogic Z-2 (IronLogic Matrix-III), такая настройка может потребоваться, например, в случае использования на объекте турникетов (на них, как правило, устанавливаются считыватели Matrix-III) и т.п.
Настройка на стороне утилиты TCPCardReader (__WORKSTATION/TcpCardReader/)
В утилите TCPCardReader настраиваем 2 считывателя, утилиту decodecards не используем (useDecodeCards=0)
Фрагмент файла tcpcardreader.ini:
[READER1] isKBReader=0 COMPORT=25 COMPORTPARAMS=baud=9600 data=8 parity=N stop=1 ;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом Prefix=; ;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа Postfix=? ;Использовать decodecards.dll useDecodeCards=0 StartTermChars=#10; FinishTermChars=#13; [READER2] COMPORT=19 COMPORTPARAMS=baud=9600 data=8 parity=N stop=1 ;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом Prefix=; ;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа Postfix=? PrefixAfterFirstSymbol=0 ;Использовать decodecards.dll useDecodeCards=0 StartTermChars=; FinishTermChars=?#13;#10;#0; NeedCheckAndReopenCom=1
Настройка на стороне ПО "Абонемент" (__WORKSTATION/exe/)
В ПО "Абонемент", утилита decodecards используется по умолчанию для обработки треков поступающих из TcpCardReader либо через при подключении считывателя напрямую.
Фрагмент файла abonementmanager.ini:
[TCPCardReader] PORT=7760 HOST=127.0.0.1 ; Если используется TCPCardReader для чтения com-портом, то установите UseTCPCardReader=1 UseTCPCardReader=1 StartTermChars=; FinishTermChars=?#13;#10;#0;
Фрагмент файла decodecards.ini:
[general] usemask=1 TrackResultLog= [mask] card3 = Em-Marine* card2 = Mifare* card = * [cards.Card] code=2 CardDecodeType = MASK mask=hhhhhhhhhhhhhh [cards.Card2] ExcludedPrefix=Mifare[ code=2 CardDecodeType = MASK mask=hhhhhhhhhhhhhh DecodeTypeEx=4 [cards.Card3] ExcludedPrefix=Em-Marine[ code=2 CardDecodeType = MASK mask=****dddddddd
Настройка на стороне rKeeper для совпадения получаемых номеров с настройками выше для ПО "Абонемент"
|
Рис.3 Пример настроек устройства в rKeeper7, в случае работы считывателя в режиме COM |
Рис.4 Пример настроек устройства в rKeeper7, в случае работы считывателя в режиме клавиатуры |
Примеры настроек устройства в rKeeper7 приведены на рис.3-4
Пример кода и настроек MCR-алгоритма:
|
Код алгоритма, соответствующий декодированию, описанному выше для Абонемент:
function MCR1000689(DeviceSignal: Integer; DeviceIdent: Integer; var Parameter: String): Boolean;
var
track,trn:string;
begin
if (DeviceIdent<>951)
then Result := False
else
begin
track:=Parameter;
trn:=Copy(track,7,8)+Copy(track,1,6);
Parameter:=int64tostr(strtoint64('$'+trn));
result:=true;
end;
end; |
Рис.6 Пример настроек MCR-алгоритма |


