Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Компьютерное железо
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2009, 15:55   #1
Gonzo
Форумчанин
 
Аватар для Gonzo
 
Регистрация: 07.03.2009
Сообщений: 123
Вопрос Купюроприемник CashCode SM + Термопринтер CustomVKP-80II + Siemens MC35i Terminal

Обыскал весь инет. Информация скудная. Подскажите как обеспечить взаимодействие следующего оборудования:
Купюроприемник CashCode SM
Термопринтер CustomVKP-80II
GPRS модем Siemens MC35i Terminal

По купюроприменику:
1. Какова последовательность действий по протоколу ССNET?
2. Как определить, что купюроприемник полон или с ним что-то неладно?

По принтеру:
1. Как взаимодействуют принтер и купюроприемник?
2. Как определить, что закончилась бумага, а лучше что она скоро закончится?
3. Как узнать, распечатался ли чек?

По модему:
1. Как программно настроить соеденение на таком модеме?
2. Какими средствами отправлять мэйл через него, чтобы вероятность успешной отправки была максимальной?

Вопросов уйма, поэтому буду благодарен за любую помощь.
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal
Форум разработчиков Pascal и Delphi
Gonzo вне форума Ответить с цитированием
Старый 28.10.2009, 17:23   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

по 1 и 2 самому стало интересно... буду рыть... если сами найдете, то просьба тут отписать...
только уточняющий вопрос: они будут взаимодействовать через компьютер или предполагается свой контроллер какой?

3: Для осуществления связи по каналу GPRS нужно ототслать следующее:
Код:
AT+CGATT=1
AT#APNSERV="xxxx", где xxxx - APN сервер провайдера сотовой связи.
AT#APNUN="yyyy", где yyyy - имя пользователя;
AT#APNPW="zzzz", где zzzz - пароль;
AT#CONNECTIONSTART
зы: испытывал на терминале mc-75, но AT команды едины (за редким исключением, например у wavecom там есть и расширенные свои)

Цитата:
Какими средствами отправлять мэйл через него, чтобы вероятность успешной отправки была максимальной?
...вот это зависит от ответа на 1 уточняющий вопрос. Куды поключено?
- если к ПК, то какая система? то тут вариантов масса, начиная от собств.вашей программы (заюзать протокол smtp, компонентов тоже масса), заканчивая sms через at команды (как с com- ом общаться и послать русскую sms http://raxp.radioliga.com/forum/inde...d=121335918508)...
- как понимаю sms вы не приветствуете, а хотите инет-канал (Как включить уже сказал)
- мэйл можно отправить и через асько-шлюзы, т.е. вам достаточно реализовать консольный клиент icq или использовать рабочий http://www.programmersforum.ru/showt...&highlight=icq
(кстати последнее предпочтительней- быстрее + управление вашей системой, хотя для mail никто не мешает воспользоваться pop3 для обратной связи)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 28.10.2009 в 17:26.
raxp вне форума Ответить с цитированием
Старый 28.10.2009, 17:27   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

пы-сы: ушел домой. позже буду
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 28.10.2009, 23:36   #4
Gonzo
Форумчанин
 
Аватар для Gonzo
 
Регистрация: 07.03.2009
Сообщений: 123
По умолчанию

Спасибо за помощь. Работает под управлением ПК, ОС Win32.
Что касается CCNET: оказывается он применяется только кэшкодовцами. Поэтому о переносимости программы говорить сложно. Сейчас остановился на ID-003. Нарыл, что CashCode его официально не поддерживают, но есть протокол по командам один-в-один. Это MAN-BDP-FL или BI-Directional Protocol. Сейчас копаю по нему.
-----------------------
Нашел описание.
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal
Форум разработчиков Pascal и Delphi

Последний раз редактировалось Gonzo; 29.10.2009 в 00:28.
Gonzo вне форума Ответить с цитированием
Старый 29.10.2009, 10:12   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Что касается CCNET: оказывается он применяется только кэшкодовцами.
принял к сведению.

по отправке почты, вот код:
http://www.programmersforum.ru/showp...08&postcount=2
http://www.programmersforum.ru/showp...24&postcount=3
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 29.10.2009 в 12:33.
raxp вне форума Ответить с цитированием
Старый 29.10.2009, 14:08   #6
Gonzo
Форумчанин
 
Аватар для Gonzo
 
Регистрация: 07.03.2009
Сообщений: 123
По умолчанию

Нашел исходники CyberPlat, все на C++, а я с ним не дружу - приходится разбираться.
Насколько я понял, последовательность работы следующая:
1. получить дескриптор Сom-порта
2. получить адрес dcb
3. установить новые параметры dcb
4. послать установленные параметры в порт
5. приступить к чтению принимаемых данных
Если формат пакета принятых данных соответствует протоколу, в нашем случае (FL BDP Interface):
LNG : 1 byte
C/R : 1 byte
DATA: 0 to 250 byte
CRC: 2 byte
,то
6. следует расчет контрольной суммы CRC:
Код:
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;
Если CRC верна, то:
7. следует команда перезагрузки
8. иннициализации купюроприемника.
Интересует посыл самих команд и главное! тайминги.
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal
Форум разработчиков Pascal и Delphi
Gonzo вне форума Ответить с цитированием
Старый 29.10.2009, 14:18   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Нашел исходники CyberPlat, все на C++, а я с ним не дружу - приходится разбираться. ...Насколько я понял, последовательность работы следующая...
да, все так...
на delphi...
Код:
implementation

function SetCommTiming: Boolean;
var Timeouts: TCommTimeOuts;
begin
with TimeOuts do begin
ReadIntervalTimeout := 1;
ReadTotalTimeoutMultiplier := 0;
ReadTotalTimeoutConstant := 1;
WriteTotalTimeoutMultiplier := 2;
WriteTotalTimeoutConstant := 2;
end;
Result:= SetCommTimeouts(Com,Timeouts)
end;

function SetCommBuffer(InQueue, OutQueue: LongInt): Boolean;
begin
Result:= SetupComm(Com, InQueue, OutQueue)
end;

function SetCommStatus(Baud: Integer): Boolean;
var DCB: TDCB;
begin
with DCB do begin
DCBlength:=SizeOf(Tdcb);
BaudRate := Baud;
Flags:=12305;
wReserved:=0;
XonLim:=600;
XoffLim:=150;
ByteSize:=8;
Parity:=0;
StopBits:=0;
XonChar:=#17;
XoffChar:=#19;
ErrorChar:=#0;
EofChar:=#0;
EvtChar:=#0;
wReserved1:=65;
end;
Result:= SetCommState(Com, DCB)
end;

function opencom(comPort:string; InQueue,OutQueue,Baud: LongInt): Boolean;
begin
if Com > 0 then closecom;
Com:= CreateFile(PChar(comPort),
GENERIC_READ or GENERIC_WRITE,
0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Result:= (Com > 0) and SetCommTiming and
SetCommBuffer(InQueue,OutQueue) and
SetCommStatus(Baud)
end;

procedure sendcom(s: string);
var TempArray: array[1..255] of Byte;
Count : Integer;
TX_Count : cardinal;
begin
for Count:= 1 to Length(S) do TempArray[Count]:= Ord(S[Count]);
WriteFile(Com, TempArray,Length(S),TX_Count,nil)
end;

function readcom: string;
var RX_Count : cardinal;
TempArray: array[1..255] of Byte;
Count : Integer;
begin
result:= '';
ReadFile(Com, TempArray, 255, RX_Count, nil);
for Count:= 1 to RX_Count do result:= result + Chr(TempArray[Count])
end;

procedure closecom;
begin
CloseHandle(Com) //Com:= -1
end;

end.
по ссылке на -CyberPlat там много всего, какая именно?

Цитата:
Интересует посыл самих команд и главное! тайминги
посылку привел, можно даже в гипертерминале сначала... тайминги и скорость работы долны быть указаны в доках на прибор (иногда не указывается, если там автоматом идет)... начните с 9600,8bit,аппарат.управление...
главное сейчас, проверьте отвечает-ли он вам (в гипертерминале)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 30.10.2009, 01:01   #8
Gonzo
Форумчанин
 
Аватар для Gonzo
 
Регистрация: 07.03.2009
Сообщений: 123
Сообщение

Огромное спасибо Вам за помощь!
Цитата:
Сообщение от raxp Посмотреть сообщение
по ссылке на - CyberPlat там много всего, какая именно?
Сcылка на исходники CyberPlat
Цитата:
Сообщение от raxp Посмотреть сообщение
главное сейчас, проверьте отвечает-ли он вам
Пока всё идет гладко (с Вашей помощью). Разбираюсь с командами обработки номинала банкнтот и с принтером.
Не говорите что мне делать, и я не скажу куда Вам идти.
Пишу программы на заказ на Delphi и Pascal
Форум разработчиков Pascal и Delphi
Gonzo вне форума Ответить с цитированием
Старый 30.10.2009, 09:17   #9
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Сcылка на исходники CyberPlat
учел.

Цитата:
Пока всё идет гладко (с Вашей помощью). Разбираюсь с командами обработки номинала банкнтот и с принтером
радует
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 28.03.2012, 15:27   #10
hos
java кодер
Пользователь
 
Аватар для hos
 
Регистрация: 10.05.2011
Сообщений: 13
По умолчанию

Добрый день! Не знаю на сколько актуально, но может кому пригодится...
Есть большой опыт работы с всевозможными устройствами на java и написания ПО для терминалов и киосков. В том числе и опыт работы с cashcode под протоколы ccnet и id-003. Есть готовые отлаженные модули на java, которые впринципе можно приделать к любому проекту - к html/js, flash, java и прочему...
Если кого интересует - с удовольствием помогу в разработке ПО и работе с железяками через com под любые ОС.

Кроме купюроприемников так же помогу с монетоприемниками, термопринтерами, картридерами и прочими устройствами... почта: denis0372 собака mail точка ru
Помощь в разработке ПО для терминалов/киосков/автоматов. Работа с устройствами через com-порт
hos вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование купюроприёмников CashCode SM СТРАННИК Общие вопросы Delphi 21 02.04.2014 17:14
Вывод печати на термопринтер Custom VKP-80 СТРАННИК Общие вопросы Delphi 3 21.06.2010 20:01
Текст в формате Terminal Dunpeal Общие вопросы Delphi 1 19.12.2007 08:17