Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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 &#61514; в условии формата пакета [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
2-1271231298
Анна
2010-04-14 11:48
2010.08.27
sp_help доступ к данным второго recordset


2-1267790032
Sairex
2010-03-05 14:53
2010.08.27
Как обойти подводный Камень приведения к типу


15-1272054585
@!!ex
2010-04-24 00:29
2010.08.27
Вопрос по Inno Setup. Как обновить файл?


2-1267971766
pavel_guzhanov
2010-03-07 17:22
2010.08.27
как сравнить содержимое двух TImage?


2-1268233756
Учащийся
2010-03-10 18:09
2010.08.27
Доказательство корректности алгоритма с помощью инвариантов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский