Форум по программам и оборудованию > > >

HandleMCR: Неверная карта (Дисконтная карта ',,' не обслуживается)

25.05.2018 2:34


[ОТВЕТИТЬ]
26.06.2016 17:28
Alexei
 
При прокатывании ДК с магнитной полосой через ридер появляется окно с надписью "Неверная карта". Если сначала нажать кнопку "Скидка" и в появившемся окне запроса номера карты прокатать карту через ридер, то появляется окно с надписью "Дисконтная карта ',,' не обслуживается".
Такое происходит не на всех картах. Меня смутил номер карты ',,'. Включил расширенный лог для мониторинга клавиатуры в ukm.ini:
Код:
UKM_OPTIONS='--log-add=ckeyboardportstandard'
В логах:
Код:
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r65
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r60
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r42
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r49
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r44
15:19:14: 0x00004000: WARNING: debug#/usr/local/storage/home/ukm/build-br-71-2016_06_20_17_43_54/ukm/libukm/ccontext_default.cpp(4051) HandleMCR: Неверная карта
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r65
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r60
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r42
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r48
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r30
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r31
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r35
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r03
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r40
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r03
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r09
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r08
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r09
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r0f
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r0c
15:19:14: 0x0004c010: INFO: ckeyboardportstandard: r44

Красным цветом выделено то, что соответствует номеру карты: 0000000303989 (похоже, что r40 - это 0).
Если прокатать карту через ридер, подключенный в разъем клавиатуры на компе, то выглядит все правильно ;0000000303989? (да и в УКМ2 работает).
На картах, которые работают нормально, в логах отсутствует первая часть r65 r60 r42 r49 r44 (до WARNING ... HandleMCR: Неверная карта)
Похоже, что УКМ рассматривает r44 (выделено зеленым цветом) как конец данных и пытается получить номер ДК. Пробовал в шаблоне менять номера дорожек на 1 и 3 с соответствующими префиксами, но это ничего не дало. Менял шаблон так, что после символа ';' все остальное - номер карты, но все равно получал окно "Дисконтная карта ',,' не обслуживается". Подозреваю, что карта криво намагничена.
Может быть, как-то можно сделать так, чтобы r44 был частью префикса в шаблоне?
27.06.2016 03:18
whitewizard
 
Шаблон покажи
27.06.2016 09:07
Alexei
 
Скриншот
Нажмите на изображение для увеличения
Название: template.png
Просмотров: 48
Размер:	31.4 Кб
ID:	7548
Шаблон: ;<длина от 4 символов>?<длина от 0 символов>
Номер карты: $2
27.06.2016 11:12
whitewizard
 
1. Если карта магнитная, то зачем включена клавиатура в шаблоне?
2. ;<длина карты>?<длина от 1 символа>
27.06.2016 11:58
Alexei
 
Цитата:
whitewizard 1. Если карта магнитная, то зачем включена клавиатура в шаблоне?
2. ;<длина карты>?<длина от 1 символа>
1. Убрал галки с клавиатуры и сканера, оставил только вторую дорожку.
2. Сделал так.
По-прежнему "Неверная карта".
27.06.2016 12:03
winmasta
 
у меня в шаблоне Номер карты - ;$0?, попробуйте по аналогии, например ;$2? или вообще шаблон переделать
27.06.2016 12:04
whitewizard
 
Поставь $0 вместо $2 и посмотри, что он вообще читает
27.06.2016 12:04
winmasta
 
Картинка для наглядности. Записано на магнитной полосе ;999xxx999? или ;999xxxx999?
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 41
Размер:	261.4 Кб
ID:	7549  
27.06.2016 12:56
Alexei
 
Цитата:
whitewizard Поставь $0 вместо $2 и посмотри, что он вообще читает
Получается, что читает ',,' (две запятые)
Если провести "хорошей" картой, то читает ',;0000000319706?>,'.
27.06.2016 13:30
whitewizard
 
На картах вообще ничего не записано на второй дорожке? Или что?
27.06.2016 13:52
Alexei
 
Цитата:
whitewizard На картах вообще ничего не записано на второй дорожке? Или что?
Вот и не могу понять. Если ее прокатать на обычном компе с виндой через ридер, вставленный в разрыв клавиатуры, то там все нормально ;0000000303989?
А вот УКМ показывает две запятые. Управляющий символ ';' должен быть на второй дорожке. Как можно увидеть, что записано на каждой из дорожек?
27.06.2016 14:37
whitewizard
 
так указывай в шаблоне какую дорожку читаешь
или зайди в настройки ридера, который на винде, и посмотри что тебе записали на дорожках
28.06.2016 09:32
Nordik
 
Какая клавиатура ? Ридер ?
Попробуй ; 13..13 ? 0....
номер карты $2
28.06.2016 10:53
Alexei
 
Клавиатура Toshiba PKBST-50-3 с встроенным ридером.
Указываю в шаблоне третью дорожку, меняю номер карты с $2 на $0, чтобы посмотреть что выводит - опять две запятые. Проводим "хорошей" картой с данными на второй дорожке - выводит ',;0000000319706?>,'
Почему шаблон срабатывает на данных со второй дорожки, если в нем явно указана третья дорожка? В общем, нужно смотреть данные по дорожкам, как доберусь до ридера на винде - напишу.
28.06.2016 11:36
whitewizard
 
Возможно, что на ридере только вторая дорожка работает.
Не парь себе мозг и отдай карты на переделку.
28.06.2016 12:10
Alexei
 
Цитата:
whitewizard Возможно, что на ридере только вторая дорожка работает.
Не парь себе мозг и отдай карты на переделку.
Так бы и сделал :) Только карты уже раздали 3 месяца назад, когда УКМ2 стоял.
28.06.2016 13:58
whitewizard
 
И на УКМ2 они работали?
28.06.2016 14:51
Alexei
 
Цитата:
whitewizard И на УКМ2 они работали?
Да, у нас сейчас и УКМ2 и УКМ4, на УКМ2 работают все карты, на УКМ4 - некоторые не работают.
28.06.2016 15:16
whitewizard
 
А от это уже прикольно. Поставь в шаблоне на верху любой символ от одного до бесконечности "1..." и посмотри что будет показывать по $0
30.06.2016 09:49
Alexei
 
На "плохой" карте показывает, что Дисконтная карта ',,' не обслуживается.
На "хорошей" карте показывает, что Дисконтная карта ',;0000000319706?>,' не обслуживается.
Дело в том, что на "плохой" карте нужные данные все-таки есть, они показаны в логе моего первого поста после строчки "... HandleMCR: Неверная карта".
30.06.2016 09:58
bob
 
Цитата:
Alexei На "плохой" карте показывает, что Дисконтная карта ',,' не обслуживается.
На "хорошей" карте показывает, что Дисконтная карта ',;0000000319706?>,' не обслуживается.
Дело в том, что на "плохой" карте нужные данные все-таки есть, они показаны в логе моего первого поста после строчки "... HandleMCR: Неверная карта".
Сделай два шаблона на эти карты и не мучься. У меня тоже были такого типа проблемы с разными картами.
30.06.2016 10:49
Nordik
 
Цитата:
Alexei Клавиатура Toshiba PKBST-50-3 с встроенным ридером.
Указываю в шаблоне третью дорожку, меняю номер карты с $2 на $0, чтобы посмотреть что выводит - опять две запятые. Проводим "хорошей" картой с данными на второй дорожке - выводит ',;0000000319706?>,'
Почему шаблон срабатывает на данных со второй дорожки, если в нем явно указана третья дорожка? В общем, нужно смотреть данные по дорожкам, как доберусь до ридера на винде - напишу.
Есть такая проблема у данных клавиатур, проблема не в шаблоне. Я так понимаю на одних клавах работает на других нет ? Мы не смогли побороть проблему только замена клавиатуры помогла.
30.06.2016 11:19
Alexei
 
Цитата:
bob Сделай два шаблона на эти карты и не мучься. У меня тоже были такого типа проблемы с разными картами.
Дело в том, что не удается считать через УКМ-4 что же все-таки записано на карте, чтобы не пробовал - выдает ',,'. Поэтому не понятно какой должен быть шаблон.
30.06.2016 11:29
Nordik
 
Цитата:
Alexei Дело в том, что не удается считать через УКМ-4 что же все-таки записано на карте, чтобы не пробовал - выдает ',,'. Поэтому не понятно какой должен быть шаблон.
возьми новую такую клавиатуру и у тебя будет все работать с текущим шаблоном. Проблема в ридере и УКМ4 он не может считать что записано на карте.
30.06.2016 11:55
Alexei
 
Посмотрите, пожалуйста, лог в моем первом сообщении. Там красным выделены байты, которые УКМ-4 считал с ридера - это и есть код "плохой" карты (0000000303989). Обратите внимание, что после считывания байта 44 (hex, выделил зеленым) сразу предупреждение, что "Неверная карта". У "плохой" карты байт 44 считывается два раза, а у хорошей считывается один раз. Похоже, что УКМ-4 считав с ридера байт 44, игнорирует остальные данные и поэтому никакими шаблонами не удается отобразить номер карты на экране.
30.06.2016 12:05
Nordik
 
Цитата:
Alexei Посмотрите, пожалуйста, лог в моем первом сообщении. Там красным выделены байты, которые УКМ-4 считал с ридера - это и есть код "плохой" карты (0000000303989). Обратите внимание, что после считывания байта 44 (hex, выделил зеленым) сразу предупреждение, что "Неверная карта". У "плохой" карты байт 44 считывается два раза, а у хорошей считывается один раз. Похоже, что УКМ-4 считав с ридера байт 44, игнорирует остальные данные и поэтому никакими шаблонами не удается отобразить номер карты на экране.
вот ты пишешь "выдает ',,'." это как раз говорит о том что он не может номер карты получить . Мы просто с поддержкой решали эту проблему, итог такой что, как такая ошибка появлялась на кассе, меняли клавиатуру (проблема такая только у Toshiba PKBC-50)
30.06.2016 12:37
Alexei
 
Это он на экран выдает ',,', а в логах видно, что считывает, но почему-то игнорирует. Я бы не заморачивался, но эта "плохая" карта работала на этой же кассе, когда на ней был УКМ-2. Кроме того, если я с соседней кассы, на которой стоит УКМ-2 и работает "плохая" карта, беру клавиатуру и меняю местами с УКМ-4, то на УКМ-4 перестает работать эта "плохая" карта. Стало быть, дело не в клавиатуре?
30.06.2016 12:41
Nordik
 
у нас тоже эта проблема появилась при переходе на УКМ4, клавиатура могла работать норм на укм4 потом могла появиться эта ошибка и ничего сделать не могли.
01.07.2016 12:37
Павел Сосновских
 
может в настройках ридера посмотреть на предмет наличия префиксов/суфиксов для дорожек по отдельности и всего ридера в целом?
01.07.2016 14:50
Alexei
 
На ftp Сервис+ нашел прогу, которая тестирует клавиатуру PKBST-50.
Запустил, прокатал "плохую" карту:
Код:
selected keyboard is "toshiba"
Creating motherboard object ... done
Creating keyboard object 103 done
Keyboard initialization complete
Before wakeup_signal()
After wakeup_signal()
key_lock:1
key_lock:2
mcr1: 
mcr2: 
mcr3: 
mcr1: 
mcr2: ;0000000303989?<
mcr3:
Прокатал "хорошую" карту:
Код:
selected keyboard is "toshiba"
Creating motherboard object ... done
Creating keyboard object 103 done
Keyboard initialization complete
Before wakeup_signal()
After wakeup_signal()
key_lock:1
key_lock:2
mcr1: 
mcr2: ;0000000319706?>
mcr3:
Получается, что на "плохой" карте криво записаны дорожки (два раза по три дорожки). Соответственно, нам просто повезло, что такие карты работают в УКМ-2.


Опции темы


Часовой пояс GMT +3, время: 02:34.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.