Форум: "WinAPI";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизКупюроприемник CashCode, протокол ccnet Найти похожие ветки
← →
имя (2007-06-26 23:33) [40]Удалено модератором
← →
malor (2007-07-04 11:23) [41]Несколько вопросов по "Описанию протокола CCNET", как переводятся слова/фразы:
Bill-to-Bill unit
Coin Changer
escrow
Cassete
recycling
← →
anonym (2007-10-19 18:00) [42]Алекс_ТК синхронизация для потока нужна
← →
Alexccc (2007-10-30 12:10) [43]Товарищи подскажите пожайлуста, что делать, купюрник не хочет брать денюжку-выплёвывает, а если надовить сверху то берет (иногда), и время от времени пишит "зажевана купюра" CashCode PartNo: MSM-3005KZ2101
← →
Felan (2007-12-06 09:05) [44]Может кто сталкивался и может объяснить пару моментов с купюрником SM-2073RU1615.
1 Чем отличается в команде ENEBLE_BILL_TYPES разрешенные купюры и купюры разрешенные для ESCROW;
2 Почему при установки повышенного уровня защиты для типов купюр командой SET_SECURITY получаем ответ ACK.
Т.е. команда выполнена, но при попытки прочитать эти данные командой GET_STATUS получаем, что у всех купюр обычный уровень защиты.
На всякий случай вот полный лог обмена:
[TBillValidatorAPI] Окрыт порт 1
[TBillValidatorAPI] Отправка команды TBillValidatorAPICMD_GET_STATUS
[TBillValidatorAPICMD_GET_STATUS] Создана команда TBillValidatorAPICMD_GET_STATUS <02 03 06 31 C8 A2>
[TBillValidatorAPI] Получен первый блок <02 03 0B>
[TBillValidatorAPI] Получен второй блок <00 00 00 00 00 00 A8 67>
[TBillValidatorAPICMD_GET_STATUS] Парсинг ответа TBillValidatorAPICMD_GET_STATUS <02 03 0B 00 00 00 00 00 00 A8 67>
[TBillValidatorAPI] Отправка команды TBillValidatorAPICMD_ACK
[TBillValidatorAPI] ACK/NAK Timeout <200>
>>> Здесь получили, что у купюрника не установлены биты повышенной защиты
[TBillValidatorAPI] Отправка команды TBillValidatorAPICMD_SET_SECURITY
[TBillValidatorAPICMD_SET_SECURITY] Создана команда TBillValidatorAPICMD_SET_SECURITY <02 03 09 32 80 00 FC 29 2E>
[TBillValidatorAPI] Получен первый блок <02 03 06>
[TBillValidatorAPI] Получен второй блок <00 C2 82>
[TBillValidatorAPICMD_SET_SECURITY] Парсинг ответа TBillValidatorAPICMD_SET_SECURITY <02 03 06 00 C2 82>
>>> Установли повышенную защиту для всех купюр кроме купонов.
[TBillValidatorAPI] Отправка команды TBillValidatorAPICMD_GET_STATUS
[TBillValidatorAPICMD_GET_STATUS] Создана команда TBillValidatorAPICMD_GET_STATUS <02 03 06 31 C8 A2>
[TBillValidatorAPI] Получен первый блок <02 03 0B>
[TBillValidatorAPI] Получен второй блок <00 00 00 00 00 00 A8 67>
[TBillValidatorAPICMD_GET_STATUS] Парсинг ответа TBillValidatorAPICMD_GET_STATUS <02 03 0B 00 00 00 00 00 00 A8 67>
[TBillValidatorAPI] Отправка команды TBillValidatorAPICMD_ACK
[TBillValidatorAPI] ACK/NAK Timeout <200>
>>> А здесь нам говорят, что нифига не установлено...
Может я чего делаю не так???
← →
Ravenlord (2008-05-29 18:46) [45]Реализую независимый от Кешкодовской ДДЛки модуль работы с купюроприемником Cashckode. Тип протокола ID003.
Возникла проблема при нахождении контрольной суммы пакета
В тех. мануале описана функция нахождения СRC как P(x)=x^14+x^12+x^5+1… Вот только не понятно.. что такое X  в условии формата пакета [FCh][LNG][DATA Bytes][CRC]
← →
Ravenlord (2008-05-30 17:26) [46]После расспроса тех. поддержки - получил версию функции на С.
Привожу вариант, адаптированный под Delphi
var
inter_crc_l:byte;
inter_crc_h:byte;
const polinom:integer = $8408;
procedure calc_crc(b:byte)
var
i,c:byte;
temp_crc:uint;
begin
inter_crc_l := inter_crc_l xor b;
temp_crc := inter_crc_h;
temp_crc := temp_crc shl 8;
temp_crc := temp_crc or inter_crc_l;
for i:=0 to 7 do begin
c := temp_crc and $01;
temp_crc := temp_crc shr 1;
if c>0 then temp_crc := temp_crc xor polinom;
end;
inter_crc_h := temp_crc shr 8;
inter_crc_l := temp_crc;
end;
← →
iVor © (2008-06-07 15:14) [47]Работаю с купюроприемником CashCode Bill-to-Bill по протоколу CCNet, за основу взял опубликованный здесь исходник с потоками. Спасибо за него кстати. В благодарность готов поделиться решениями некоторых проблем, вставших в процессе разработки. На данный момент программа завершена на 90%. К сожалению, поделиться не могу, так как это коммерческий продукт.
по поводу ЦРЦ - в мануале по протоколу, который выложен на сайте кэшкода, есть исходник на дельфи. работает 100%
← →
Gbp (2008-06-18 17:47) [48]Здравствуйте. Поделитесь пожалуйста dll"кой, которая испльзуется в коде на второй странице. Мне очень нужно быстро разобраться с купюроприемником, горит проект!
← →
Gbp (2008-06-18 17:48) [49]Она называется CashCodeSM.dll
← →
Tonich (2008-06-20 18:34) [50]не считаю себя профи конечно, но не дай бог воспользоваться кодом который приведен выше... ) ни синхронизации ни обработок ошибок ни черта ...
Выкачав описание протокола, реализовал его за сутки. правда на с++ под линукс, но это не так уж и важно..
← →
tesseract © (2008-06-20 18:42) [51]
> не считаю себя профи конечно, но не дай бог воспользоваться
> кодом который приведен выше... )
Я видел какие люди этими автоматами разбираються, и изнутри их. С тех пор не пользуюсь, виснут примерно 2-3 раза в неделю ( у нас который под боком). Сдачи не дают и тд. Система - явно хакнутая винда, до линухов мальчикам-мажорам котрые под него софт пишут, рости и рости.
← →
Gbp (2008-06-26 22:28) [52]Здравствуйте.
Не подскажите ли, как можно уменьшить степень "требовательности"
купюроприемника к качеству купюр?
Я работаю с протоколом CCNET. Нужно использовать команду SET_STATUS?
Не подскажите как ей пользоваться, какие передавать параметры, чтобы купюроприемник принимал бОльшее число купюр
← →
Gbp (2008-06-26 22:29) [53]Тьфу, то есть команду SET_SECURITY.
← →
Tonich (2008-06-27 12:57) [54]SYNC - 0x02
ADR - 0x03
LNG - 0x09
CMD - 0x32
DATA - 3 байта в которых ответствующим образом выставленные биты (0x00 0x00 0x00)
CRC -
то есть там всего 24 канала(у устройства) и выставляя биты в DATA соответствующим образом в этих 3 байтах ты скажешь указать какой канал проверять с high security level а какой нет
то есть в твоем случаи опусти все биты
после этого устройство должно ответить ..
← →
Gbp (2008-06-28 14:36) [55]Спасибо большое за информацию.
А CRC нужно рассчитывать?
← →
Gbp (2008-06-28 14:46) [56]Если нужно, то как его считать?
← →
Gbp (2008-06-30 10:40) [57]все, нашел код
const _CR_CCNET_CRC_POLY = $08408
function GetCRC16(InData: array of byte; DataLng: word): word;
var i,TmpCRC: word;
j: byte;
begin
result:=0;
for i:=0 to (DataLng-1) do
begin
TmpCRC:=result xor InData[i];
for j:=0 to 7 do
begin
if (TmpCRC and $0001)<>0 then
begin
TmpCRC:=TmpCRC shr 1;
TmpCRC:=TmpCRC xor _CR_CCNET_CRC_POLY;
end
else
TmpCRC:=TmpCRC shr 1;
end;
result:=TmpCRC;
end;
end;
← →
имя (2008-07-15 20:31) [58]Удалено модератором
← →
имя (2008-07-15 23:22) [59]Удалено модератором
← →
имя (2008-07-23 19:05) [60]Удалено модератором
← →
tesseract © (2008-07-23 20:37) [61]Удалено модератором
← →
antoxa (2008-08-03 14:36) [62]А можно исходничек на annews@mail.primorye.ru ?
← →
Мистер М (2008-09-12 12:55) [63]TO Darth Avenger
А можно и мне исходник? reid@tut.by
Или просто последовательность сообщений, которой можно инициализировать хоть какой-то режим работы CashCode.
Заранее благодарен!
← →
thoth (2008-11-19 19:20) [64]Алекс_ТК
спасибо за рабочий код. выручили.
← →
имя (2009-01-09 01:24) [65]Удалено модератором
← →
имя (2009-01-09 01:25) [66]Удалено модератором
← →
имя (2009-02-07 19:22) [67]Удалено модератором
Страницы: 1 2 вся ветка
Форум: "WinAPI";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.07 c