CCNET для CashCode
-
Гость
Здравствуйте testmode. Использую ваш модуль работы с купюроприемником CashCode.
Подскажите, а возможно ли узнать из купюрника какой номинал он распознал, когда ёщё не положил купюру в кассету? На сколько я понимаю это можно узнать когда он переходит в состояние: 216 - Акцепт. Мне просто нужно, чтобы он не проглатывал купюру если общее количество принятых купюр превышает значение Sum определённое в функции PollingLoop, а делал Return().
Воможно ли так сделать?
Подскажите, а возможно ли узнать из купюрника какой номинал он распознал, когда ёщё не положил купюру в кассету? На сколько я понимаю это можно узнать когда он переходит в состояние: 216 - Акцепт. Мне просто нужно, чтобы он не проглатывал купюру если общее количество принятых купюр превышает значение Sum определённое в функции PollingLoop, а делал Return().
Воможно ли так сделать?
-
Гость
friti писал(а):Здравствуйте testmode. Использую ваш модуль работы с купюроприемником CashCode.
Подскажите, а возможно ли узнать из купюрника какой номинал он распознал, когда ёщё не положил купюру в кассету? На сколько я понимаю это можно узнать когда он переходит в состояние: 216 - Акцепт. Мне просто нужно, чтобы он не проглатывал купюру если общее количество принятых купюр превышает значение Sum определённое в функции PollingLoop, а делал Return().
Воможно ли так сделать?
Это возможно реализовать через систему депонирования купюры, куп может принять одну купюру на депозит и в зависимости от условия либо положить купюру в кассету либо вернуть. В данном модуле депонирование не реализовано (небыло потребности).
-
Гость
-
Гость
Verdana писал(а):Здравсвуйте. Не подскажите как можно узнть статус кассеты. Надо узнать кассета на месте или была снята. Спасибо большое!
1. вариант
Код: Выделить всё
Poll();
FirsByte :=FData[0];
SEcondByte:=FData[1];
if FirsByte = $42
then Showmessage('Кассеты нет');2. Вариант
Код: Выделить всё
PollingLoop(1);а в обработчике события OnProcessMessage в первой переменной CodeMess ловить код 219
Не знаю насколько актуально, но может кому пригодится - есть готовые отлаженные модули работы с купюрниками по ccnet и id003 на java. Работают под все ОС, легко прикручиваются к любому проекту не только на java, а так же и на flash, html/js, php.
Так же есть модули для работы с другими устройствами через com порт на java - монетоприемники (cctalk), термопринтеры различных марок, и прочее...
Если кому интересно - то пишите на denis0372 собака mail точка ru, договоримся!
Так же есть модули для работы с другими устройствами через com порт на java - монетоприемники (cctalk), термопринтеры различных марок, и прочее...
Если кому интересно - то пишите на denis0372 собака mail точка ru, договоримся!
Разработка ПО для киосков/терминалов/автоматов. Работа с всевозможными устройствами через com-порт (rs232), работа с монетоприемниками, купюроприемниками CashCode, JCM и др (ccnet, id-003, cctalk ), работа с термопринтерами, диспенсерами, кардридерами...
-
Multiporocessing_KIT
- Эксперт
- Сообщения: 2363
- Зарегистрирован: 16 авг 2011, 18:22
-
Гость
-
Гость
-
Гость
SergeyBr писал(а):testmode писал(а):Не вижу проблем, описание протокола не привязано к какому либо языку
У меня по протоколу возникло несколько вопросов:
там дается HEXcod как его переводить????
$42 - это, что за зверь и откуда он взялся???????
42H Drop Cassette out of position The Bill Validator has detected the drop cassette to be open or removed.
Не знаю как в C# но в Delphi перевод из 16 в 10 примерно так StrToInt('$42');
P/S/ Для анализа протокола есть замечательная документация от CashCode называется как "CashCode NET Interface"
-
Гость
Доброго времени суток.
Спасибо за проделанную работу, модуль отлично работает. Единственное чего не предусмотрено - работа с купонами. В связи с этим сложилась следующая ситуация: добавить распознавание купона со штрих кодом в функцию PollingLoop проблем не составило, вопрос в другом - если при распознавании купюры, функция присваивает номинал по уже заранее определенному байту, то при распознавании купона со штрих кодом, номер этого самого штрих кода необходимо получить. В документации написано про команду EXTRACT BARCODE DATA. Но что делать дальше после посылки этой команды - ума не приложу. Может у кого нибудь есть идеи?
Спасибо за проделанную работу, модуль отлично работает. Единственное чего не предусмотрено - работа с купонами. В связи с этим сложилась следующая ситуация: добавить распознавание купона со штрих кодом в функцию PollingLoop проблем не составило, вопрос в другом - если при распознавании купюры, функция присваивает номинал по уже заранее определенному байту, то при распознавании купона со штрих кодом, номер этого самого штрих кода необходимо получить. В документации написано про команду EXTRACT BARCODE DATA. Но что делать дальше после посылки этой команды - ума не приложу. Может у кого нибудь есть идеи?
Код: Выделить всё
$81:begin
ProcessMessage(246,'Укладка');
case SEcondByte of
2:BillNominal:=10;
3:BillNominal:=50;
4:BillNominal:=100;
5:BillNominal:=500;
6:BillNominal:=1000;
7:BillNominal:=5000;
23: begin
SendPacket($58,[]); // посыл команды EXTRACT BARCODE DATA
//NumberBarCode:= полученный преобразованный ответ... вот тут я и призадумался
//BillNominal:=NumberBarCode;
end;
end;
end;
-
Гость
flytarget писал(а):Доброго времени суток.
Спасибо за проделанную работу, модуль отлично работает. Единственное чего не предусмотрено - работа с купонами. В связи с этим сложилась следующая ситуация: добавить распознавание купона со штрих кодом в функцию PollingLoop проблем не составило, вопрос в другом - если при распознавании купюры, функция присваивает номинал по уже заранее определенному байту, то при распознавании купона со штрих кодом, номер этого самого штрих кода необходимо получить. В документации написано про команду EXTRACT BARCODE DATA. Но что делать дальше после посылки этой команды - ума не приложу. Может у кого нибудь есть идеи?Код: Выделить всё
$81:begin
ProcessMessage(246,'Укладка');
case SEcondByte of
2:BillNominal:=10;
3:BillNominal:=50;
4:BillNominal:=100;
5:BillNominal:=500;
6:BillNominal:=1000;
7:BillNominal:=5000;
23: begin
SendPacket($58,[]); // посыл команды EXTRACT BARCODE DATA
//NumberBarCode:= полученный преобразованный ответ... вот тут я и призадумался
//BillNominal:=NumberBarCode;
end;
end;
end;
Если правильно задан купон то ответ будет в FData[] от 6 до 18 байт (FLengthData).
Код: Выделить всё
$81:begin
ProcessMessage(246,'Укладка');
case SEcondByte of
2:BillNominal:=10;
3:BillNominal:=50;
4:BillNominal:=100;
5:BillNominal:=500;
6:BillNominal:=1000;
7:BillNominal:=5000;
23:begin
SendPacket($3A,[]); // посыл команды EXTRACT BARCODE DATA
ProcessComand();
for I := 0 to FLengthData - 1 do
begin
//FData[I]; используем наш ответ
end;
end;
end;
end;
-
Гость
Спасибо, разобрался.
Выложу код, может кому пригодится.
Итак, функция считывания бар кода:
Добавляем в общее описание переменную barcodestack типа boolean
Далее:
Функция ExtractBarCodeData(NumberBarCode); вернет значение бар кода в переменную NumberBarCode строкового типа.
Выложу код, может кому пригодится.
Итак, функция считывания бар кода:
Код: Выделить всё
{*******************************************************************************}
function TCashCodeBillValidatorCCNET.ExtractBarCodeData(var s:string): boolean;
var
i:integer;
begin
SendPacket($3A,[$1B,$1C]); // посыл команды EXTRACT BARCODE DATA
ProcessComand();
for I := 0 to FLengthData - 1 do
begin
if (I>=0) and (i<18) then s:=s+Chr(FData[I]);
end;
end;
{*******************************************************************************}
Добавляем в общее описание переменную barcodestack типа boolean
Далее:
Код: Выделить всё
{...}
$81:begin
ProcessMessage(246,*Укладка*);
case SEcondByte of
2:BillNominal:=10;
3:BillNominal:=50;
4:BillNominal:=100;
5:BillNominal:=500;
6:BillNominal:=1000;
7:BillNominal:=5000;
{*****************************Получили купон с бар кодом************************}
23:begin
barcodestack:=true;
BillNominal:=0;
end;
{*******************************************************************************}
end;
StartTime:=Now(); // Сбросим время до ожидания следующей купюры
SendASC(); // Подтвердим прием
{*****************************Считаем бар код***********************************}
if barcodestack then
begin
ExtractBarCodeData(NumberBarCode);
ShowMessage(NumberBarCode);
barcodestack:=false;
BillNominal:=0;
end;
{*******************************************************************************}
result:=result+BillNominal;
{...}
Функция ExtractBarCodeData(NumberBarCode); вернет значение бар кода в переменную NumberBarCode строкового типа.
Может кому пригодится. Есть готовые отлаженные модули работы с купюрниками по ccnet и id003 на java, а так же другими устройствами через com-порт - монетоприемники (cctalk), термопринтеры (av-268 / custom vkp-80 / citizen / star tup-900). Модули легко прикручиваются к жава проекту, а так же без проблем помогу прикрутить и к flash, html/javaScript. Все работает под разными ОС - windows, linux, MacOS.
Если кого интересует, обращайтесь - denis0372 собака mail точка ru
Если кого интересует, обращайтесь - denis0372 собака mail точка ru
Разработка ПО для киосков/терминалов/автоматов. Работа с всевозможными устройствами через com-порт (rs232), работа с монетоприемниками, купюроприемниками CashCode, JCM и др (ccnet, id-003, cctalk ), работа с термопринтерами, диспенсерами, кардридерами...
-
Гость
-
Гость
testmode писал(а):Реализовал "драйвер" для купюроприемника CashCode по протоколу CCNET, среда разработки Delphi 2009. Исходники и демка во вложении.
testmode, добрый день.
Можете написать в личку? У меня есть предложение для вас.
alexey.terekhoff@gmail.com
alexeyterekhoff писал(а):Добрый день.
Нужно разработать ПО для платежника. CashCode+custom. Работу оплачу.
Кто сможет помочь?
alexey.terekhoff@gmail.com
Ответил вам на почту
Разработка ПО для киосков/терминалов/автоматов. Работа с всевозможными устройствами через com-порт (rs232), работа с монетоприемниками, купюроприемниками CashCode, JCM и др (ccnet, id-003, cctalk ), работа с термопринтерами, диспенсерами, кардридерами...
Вернуться в «Купюроприемники CashCode и CashCode GX»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость
