1.0.0.6 Исправлен баг Параметр ComPortParams считывался не из той же секции, что и параметр COMPORT, а из следующей секции 1.0.0.7 В секциях [READER...] появились параметры Prefix, Postfix - новые атрибуты считывателя. Если в секции [READER...] эти параметры не заданы, то они берутся из секции [TCPCARDREADER] ;Параметр Prefix задаёт строку, которая передаётся клиентам перед первым прочтенным символом Prefix= ;Параметр Postfix задаёт строку, которая передаётся клиентам после последнего прочтенного символа Postfix= 1.0.0.8 При выключении компьютера/перезагрузке не поднимается окно-подтверждение "Вы действительно хотите выйти из программы?" 1.0.0.9 В секциях [READER...] появился параметры PrefixAfterFirstSymbol. Если PrefixAfterFirstSymbol=0(по умолчанию), то Prefix подставляется ПЕРЕД первым прочтенным символом. Если PrefixAfterFirstSymbol=1(по умолчанию), то Prefix подставляется ПОСЛЕ первого прочтенного символа. PrefixAfterFirstSymbol=0 1.0.0.10 Исправлна ошибка. Если com-портов несколько, то Prefix и Postfix выбирались из последнего в списке. Исправлено. 1.0.0.11 В секциях [READER...] появились параметры useDecodeCards=1 - использовать=1 - не использовать=0 decodecards.dll для извлечения номера. По умолчанию 0 - не использовать StartTermChars=; - Стартовые символы. Используются, если useDecodeCards=1 FinishTermChars=?#13;#10;#0; - Терминальные символы. Используются, если useDecodeCards=1 Если параметры не объявлены в секции [READER...], то они ищутся в секции [TCPCARDREADER] Алгоритм обработки параметра useDecodeCards=1 следующий: Считывается строка из com-порта, начиная со стартовый символов StartTermChars до терминальных символов FinishTermChars. Из части строки между стартовыми и терминальными символами пытаемся извлечь истинный номер карты, используя decodecards.dll. Если удается извлечь номер карты, то перед номером дописывается параметр Prefix, а после номера дописывается параметр PostFix, и в таком виде передаётся клиентам-подписчикам. Параметр Prefix рекомендуется начинать символом ";". Параметр PostFix рекомендуется заканчивать символом "?" 1.12 В секциях [READER...] появился параметр ProtocolType По умолчанию ProtocolType не используется Если указано ProtocolType=ISO14443 , то подключение к считывателю и извлечение номера карты осуществляется по протоколу ISO14443 1.13 Изменёна обработка по протоколу ISO14443. Ранее на полученный номер карты накладывалась маска $00FFFFFF. Сейчас маска $7FFFFFFF. При необходимости дополнительно используйте decodecards 1.14 1. Изменёна обработка по протоколу ISO14443. Ранее номер карты передавался подписчикам всё время, пока карта находилась в зоне карт-ридера. Сейчас подписчикам выдаётся номер карты только при вхождении карты в зону карт-ридера. Чтобы TCPCardReader выдал подписчикам номер карты вновь, необходимо сначала убрать карту из зоны действия карт-ридера 1.15 1. В секциях [READER...] появился параметр delayreadingafterexitcard - это задержка считывания новой карты в миллисекундах с момента, когда старая карта покидает зону считывания. По умолчанию delayreadingafterexitcard=0 Работает, если установлено ProtocolType=ISO14443 delayreadingafterexitcard - это промежуток времени, который карта должна находиться в зоне считывания, чтобы карта была признана считанной. По умолчанию delayreadingafterexitcard=0 Работает, если установлено ProtocolType=ISO14443 1.16 1. В секциях [READER...] появился параметры звукового сигнала при считывании карты. Звуковой сигнал подаётся в динамики компьютера. beepon - звуковой сигнал включен (0-выключен; 1-включен). По умолчанию beepon=0 - выключен BeepFreq - частота звукового сигнала (Герц) . По умолчанию BeepFreq=5000 BeepDuration - продолжительность звукового сигнала (миллисекунд). По умолчанию BeepDuration=100 1.17 Мелкие доработки 1.18 1. TCPCardReader может работать транслятором из com-порта в TCP и из TCP в com-порт. Новая секция [TCPServer] PORT = 7760 HOST = 127.0.0.1 Для чего это нужно. Например, есть программа, которая работает с устройством, подключенном к com-порту. А это устройство физически подключено к другому компьютеру. Пример. Программа АБОНЕМЕНТ установлена на одном компьютере (сервер терминалов), а фискальный регистратор на другом (используется служба терминалов). На сервере терминалов надо установить TCPCardReader, настроенный на com-порт, который нуль-модемным кабелем соединён с com-портом, на который настроен ДРАЙВЕР ФР. Это могут быть виртуальные com-порты. На терминальном клиенте надо установить TCPCardReader, настроенный на com-порт, который нуль-модемным кабелем соединён с com-портом, к которому подключен ФИСКАЛЬНЫЙ РЕГИСТРАТОР. Также необходимо настроить параметры секции [TCPServer] для подключения к TCPCardReader`у на сервере. 2. При декодировании поддерживаются номера карт от 1 до 4294967295 включительно (decodecards.dll версии 1.13). 1.19 1. Если установлено ProtocolType=ISO14443 , то на полученный номер накладывается маска $FFFFFFFF. Раньше накладывалась маска $7FFFFFFF. Если нужна маска $7FFFFFFF, то следует использовать decodecards 1.20 1. В TCPCardReader.ini появились новые группы параметров [READER.YYY.CODEPARAMS.XXX] Prefix=; Postfix=#13;#10; Она используется в случае, если useDecodeCards=1 следующим образом. Для разных считывателей и разных карт можно задавать префиксы и постфиксы. Здесь YYY - номер считывателя XXX - код (тип) карты (параметр code из decodecards.ini) 1.21 1. В секциях [READER...] появился параметр для логирования треков при считывании карты. TrackLogFile - имя файла, в который будут дописываться треки. Если не определен (по умолчанию), то треки не формируются. В рабочем режиме НЕ рекомендуемся логировать треки. Их следует использовать только для формирования файла для decodecards. После формирования следует отключить TrackLogFile. Если TrackLogFile определен, то используется дополнительный параметр ConvertTrackLog. Он определяет, каким образом логировать невизуальные символы. По умолчанию ConvertTrackLog=0 (не конвервировать). Если ConvertTrackLog=1, то невизуальные символы конвертируются в их код. Примечание. К маскам в decodecards всегда применяется функция ре-конвертирования. TrackLogFile= ConvertTrackLog=0 1.22 1. В TCPCardReader.ini появились новые группы параметров [READER.YYY.CODEPARAMS.XXX] UseOriginalTrack=0 2. [READER.YYY] IncludeStartTermChar = 0 учитывать в декодировании StartTermChar при usedecodecards 3. Появился "Тест трека". 1.23 1. Новые параметры в секциях [READER.YYY] 1.1. IncludeTypeStartTermChar - тип обработки стартового символа Имеет смысл, если useDecodeCards=1, IncludeStartTermChar=1 и UseOriginalTrack=0 Если IncludeTypeStartTermChar=0 (по умолчанию), то стартовый символ НЕ передается в decodecards, а подставляется перед истинным номером как дополнительный префикс Если IncludeTypeStartTermChar=1 , то стартовый символ передается в decodecards и участвует в извлечении истинного номера 1.24 1. Мелкие багофиксы 1.25 1. В секциях [READER...] появился параметр NeedCheckAndReopenCom Появился, так как теряется связь с USB-устройствами (с COM-эмуляцией) в случае, если устройство отключается, а затем повторно подключается. Если NeedCheckAndReopenCom=1 (по умолчанию), то постоянно контролируется состояние соединения. Если связь потеряна, то происходит попытка переподключиться. NeedCheckAndReopenCom=0 можно устанавливать, если устройство подключается не к USB, а к COM-порту. 1.26 Исправления 1. При попытках восстановления связи с COM-портом (после потери соединения) CPU использовалось на 100%. Исправлено 1.27 Обновления 1. Поддерживаются клавиатурные сканеры. Используется KeyScan.dll. KeyScan.dll должна находиться в папке запуска программы В секции [READERXXX] новый параметр isKBReader=0/1 (по умолчанию 0 - не активен) Если isKBReader=1, то COMPORT игнорируется, загружается KeyScan.dll. KeyScan.dll ставит глобальный хук на клавиатуру и перехватывает ввод со сканера. KeyScan.dll может блокироваться антивирусами. 1.28 Исправления 1. Если isKBReader=1, но COMPORT не указан или указан, но <= 0, то TCPCardReader не перехватывает клавиатуру. Исправлено 1.29 Обновления 1. Появилась возможность не передавать подписчикам карты с номером 0 (не декодированные). Применяется после декодирования, в том числе в функции "Тест трека" В секции [READER.YYY.CODEPARAMS.XXX] новый параметр IgnoreZeroCard - игнорировать (не передавать) подписчикам карты с номером 0 (не декодированные) По умолчанию IgnoreZeroCard = 0 - НЕ игнорировать Применяется после декодирования Если IgnoreZeroCard = 1 и номер карты 0, то подписчикам не передается Если в секции [READER.YYY.CODEPARAMS.XXX] IgnoreZeroCard не задан, то проверяется IgnoreZeroCard в секции [TCPCARDREADER] Пример настройки игнорируемых кодов в decodecards.ini [cards.IgnoreTrack] CardDecodeType = REPLACECARDNO NewCardNo=0 code = 123 Соответствующая настройка в TCPCardReader.ini [TCPCARDREADER] ; Игнорировать для всех ридеров IgnoreZeroCard = 1 [READER.1.CODEPARAMS.123] ; Игнорировать для ридера 1 карты с кодом 123 IgnoreZeroCard = 1 Исправления 1. Исправлено логирование. По умолчанию лог создается в папке \LOG 1.30 Исправления 1. При использовании isKBReader=1 программа занимала 100% одного ядра процессора. Исправлено 1.31 Обновления 1. Локализация 1.1. Поддержан механизм локализации через lng-файлы На главной форме есть возможность сменить язык lng-файлы должны находиться в папке \lng\ Диапазон строк локализации, относящийся к TCPCardReader'у : s0013D621 - s0014D621