PDA

Просмотр полной версии : RK7 Matrix III



kipatok
06.01.2019, 17:55
Добрый день.
Перешли с 6 на 7.
На точке имелась касса и ПДС и считыватель магнитных карт Matrix III RD all
В ПДС у нас записан десятичный код карты с обратным порядком байт. Именно такой код передавал считыватель в кипере 6.
Поэтому когда заводили карты мы брали код карты в 16 системе и переводили его в 10 с обратным байтом
В 7ке же, матрикс передает просто номер карты, написанный на самой карте.
Единственное что я смог сделать, это со стандартным драйвером, получить код в 16ой системе. но не хочется переписывать всю базу ПДС.
Можно как нибудь настроить считыватель, чтобы он передавал такой же код как и на 6 ?

sibgaba
06.01.2019, 18:35
Можно как нибудь настроить считыватель, чтобы он передавал такой же код как и на 6 ?
MCR алгоритмы вам в руки...

SLion
06.01.2019, 21:51
Если есть доступ на трекер, там множетсво различных алгоритмов для перекодировки вывода.

kipatok
06.01.2019, 22:42
Если есть доступ на трекер, там множетсво различных алгоритмов для перекодировки вывода.
Нету(


MCR алгоритмы вам в руки...
Будем разбираться.

SLion
06.01.2019, 23:22
приведите пару примеров того что выводит РК7 и что необходимо.

kipatok
07.01.2019, 13:25
приведите пару примеров того что выводит РК7 и что необходимо.
Пока могу только один вариант
в пдс номер карты указан 3803689896 (tel:3803689896) в таком виде карту считывал на 6
в 7 выводит E2B7B3A8. То есть надо чтобы выводил вместо E2B7B3A8 - 3803689896 (tel:3803689896)

kipatok
07.01.2019, 16:31
вообщем насколько я понимаю, надо чтобы переводилось из шестнадцатиричной в десятичную

sibgaba
07.01.2019, 16:47
Ну так в вашес примере прямое преобразование из HEX (E2B7B3A8) в DEC (3803689896).
Даже без переворачивания байт.
MCR писать

SLion
07.01.2019, 20:52
Пока могу только один вариант
в пдс номер карты указан 3803689896 (tel:3803689896) в таком виде карту считывал на 6
в 7 выводит E2B7B3A8. То есть надо чтобы выводил вместо E2B7B3A8 - 3803689896 (tel:3803689896)

Думаю что то подобное должно сработать.

begin
Parameter:=Int64ToStr(StrToInt64('0x'+Parameter));
Result:=true;
end;

kipatok
10.01.2019, 12:52
Думаю что то подобное должно сработать.

begin
Parameter:=Int64ToStr(StrToInt64('0x'+Parameter));
Result:=true;
end;

Спасибо, попробую отпишусь.