Re: GPT Aurora vs Linux

Модератор: Guzel

GPT Aurora vs Linux

Сообщение Anton B » 24 окт 2006, 14:29

Доброго времени суток  ;)
Есть такой вот трабл...пишу софт под *nix.
Купюроприемник GPT Aurora, команды шлю такие, которые описаны в протоколе V2.2. Я слышал что их есть несколько версий, может я не потому протоколу работаю?
Вот он исходник...
Код: выделить все
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>
#include <errno.h>
#include <pthread.h>
#include <iostream>
using namespace std;

int fd;
int open_port();
void* status_req(void* ptr);
void* reading_port(void* ptr);
int main()
{
   
   open_port();
   pthread_t thread1, thread2;
   termios options;
   tcgetattr(fd,&options);
   cfsetispeed(&options,B9600);
   cfsetospeed(&options,B9600);
   options.c_cflag |= PARENB;
   options.c_cflag &= ~PARODD;
   options.c_cflag &= ~CSTOPB;
   options.c_cflag &= ~CSIZE;
   options.c_cflag |= CS8;
   options.c_cflag |= (CLOCAL | CREAD);
   tcsetattr(fd,TCSANOW,&options);
   int  iret1, iret2;
   iret1 = pthread_create( &thread1, NULL,reading_port, 0);
   iret2 = pthread_create( &thread2, NULL, status_req, 0);

   unsigned char inhibit[7]={2,0,0,7,240,255,7};
   unsigned char uninhibit[7]={2,0,0,7,241,255,6};
   pthread_join( thread1, NULL);
   pthread_join( thread2, NULL);
   while(1)
   {
      int b=0 ;
      cin>>b;
      int w=0;
      switch(b)
      {
         case 1:
            write(fd,inhibit,7);
            printf("Status request: %d bytes sended\n",w);
            break;
         case 2:
            w=write(fd,uninhibit,7);
            printf("Status request: %d bytes sended\n",w);
            break;
      }
   }
   
   
   printf("Thread 1 returns: %d\n",iret1);
   printf("Thread 2 returns: %d\n",iret2);
   
   
   return 1;
}


int open_port()
{
   fd=open("/dev/ttyS0",O_RDWR|O_NOCTTY|O_NDELAY);
   
   if(fd == -1)
      perror("open_port: Unable to open /dev/ttyS0 -\n");
   else
      fcntl(fd,F_SETFL,0);
   return fd;
}

void* reading_port(void* ptr)
{
   unsigned char buff[255]={0};
   int r=0;
   while(1) {
      
      r = read(fd,&buff,255);
      if(r!=-1) {
         for(int i=0;i<r;i++){
            printf("%X ",buff[i]);
         }
         printf("\n");
      }
      
      bzero(&buff,sizeof(buff));
      tcflush(fd,TCIFLUSH);
   }
}
void* status_req(void* ptr)
{
   unsigned char status_req[7]={2,0,0,7,204,255,43};
   int w =0;
   while(1){
      usleep(1500);
      w=write(fd,status_req,7);
   }
}


Прошу прощение, за неаккуратность кода, ибо нервый уже не пределе :)

Вот что получаю в ответ...
Код: выделить все
2 0 0 A
2 0 0 A
0 0 0 FF
0 0 0 FF 24 2 0 0 7 FF FE F8 2 0 0 A
2 0 0 A
0 0 FF 24 2 0 0 A
2 0 0 A
0 0 FF 24 2 0 0 7 FF FE F8 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 7 FF FE F8 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 1 0 0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 7 FF FE F8 2 0 0 A
FF 24 2 0 0 A
0 0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 7 FF FE F8 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 FF 24 2 0 0 7 FF FE F8 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
1 0 0 0 0 FF 24 2 0 0 7 FF FE F8 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 0 FF 24 2 0 0 7 FF FE F8 2 0 0 A
0 1 0 0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 FF 24 2 0 0 A
CC 0 1 0 0 0 0 FF 24 2 0 0 7 FF FE F8 2 0 0 A
1 0 0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
1 0 0 0 0 FF 24 2 0 0 A
0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
CC 0 1 0 0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 A
0 0 FF 24 2 0 0 A
1 0 0 0 0 FF 24 2 0 0 A
0 0 0 FF 24 2 0 0 7 FF FE F8 2 0 0 A
0 0 0 FF 24 2 0 0 7 FF FE F8 2 0 0 A



Т.е. купюпроприемник меня понимает прекрасно, а то что он мне шлет в ответ я понять не могу :) либо гдето происходить потеря байт, либо я осел.

Что я не правильно делаю?
Кто с этим сталкивался, будьте добры в асю или на мэйл, пивом не обижу...
Anton B
 
Сообщений: 18
Зарегистрирован: 24 окт 2006, 09:14


Re: GPT Aurora vs Linux

Сообщение Anton B » 25 окт 2006, 11:36

Ау..
Мне кто нибудь подскажет? это очень важно :(
Anton B
 
Сообщений: 18
Зарегистрирован: 24 окт 2006, 09:14

Re: GPT Aurora vs Linux

Сообщение ANY » 25 окт 2006, 14:28

Anton B
У меня есть програмка, для теста GPT по протоколу v.2.2 атм есть вкладка где показываются какие команды отправляются на купюрник, и какие с него приходят, больше ничем помочь немогу в программировании несилен :)

лови на почте!
ANY
 
Сообщений: 171
Зарегистрирован: 23 сен 2006, 14:49
Откуда: гдето в Сибири

Re: GPT Aurora vs Linux

Сообщение ANY » 25 окт 2006, 14:46

Вроде неотправилось письмо ругательное прислали с твоего ящика.
Дай другой адрес.
ANY
 
Сообщений: 171
Зарегистрирован: 23 сен 2006, 14:49
Откуда: гдето в Сибири

Re: GPT Aurora vs Linux

Сообщение Anton B » 25 окт 2006, 14:51

ANY писал(а):Вроде неотправилось письмо ругательное прислали с твоего ящика.
Дай другой адрес.

странно...какой размер файла?
[email protected]
[email protected]

адреса валидные 100%..

Программа под линукс? ;) как я понял у тебя v2e host иль чет такое, у меня она есть, мне бы что нибудь подобное под Linux и в исходникак :))
Anton B
 
Сообщений: 18
Зарегистрирован: 24 окт 2006, 09:14

Re: GPT Aurora vs Linux

Сообщение ANY » 25 окт 2006, 15:50

Не под линукс нету, а програмка называется V2test наверно тожесамое ??? На твои адреса  нехочет отпровлять заведи ящик на mail.ru

А интересно зачем ты под GPT пишеш есть же много других купюрников пиши под Cach Сode по протоколу ID003? Хотя я недавно узнал что и Cach Code бывает по протоколу v.2.2
ANY
 
Сообщений: 171
Зарегистрирован: 23 сен 2006, 14:49
Откуда: гдето в Сибири

Re: GPT Aurora vs Linux

Сообщение Anton B » 25 окт 2006, 15:58

ANY писал(а):А интересно зачем ты под GPT пишеш есть же много других купюрников пиши под Cach Сode по протоколу ID003? Хотя я недавно узнал что и Cach Code бывает по протоколу v.2.2

Хорошо рассуждаешь :))
Начальство сказало под GPT писать... протокол id003 намного проще, я бы сам был рад под него писать. а вод под gpt никак не могу вкурить :((
Anton B
 
Сообщений: 18
Зарегистрирован: 24 окт 2006, 09:14

Re: GPT Aurora vs Linux

Сообщение ANY » 25 окт 2006, 17:36

Да знакомая ситуация. Начальство с технарями нисоветуется и покупает большую партию купюрников, а можноли их приклеить к тому куда они хотят это вопрос  :'( Вот и приходится с помощю топора и какойто матери лепить

А еси не так повлияй на них скажи мол никак это неподружить давайте купим другой
ANY
 
Сообщений: 171
Зарегистрирован: 23 сен 2006, 14:49
Откуда: гдето в Сибири

Re: GPT Aurora vs Linux

Сообщение AR_Favorit » 25 окт 2006, 17:51

Начальство не всегда такое тупое ;)
С уважением, AR
AR_Favorit
Гуру
Гуру
 
Сообщений: 8984
Зарегистрирован: 04 ноя 2005, 20:31
Откуда: г. Тула

Re: GPT Aurora vs Linux

Сообщение Anton B » 26 окт 2006, 08:39

AR_Favorit писал(а):Начальство не всегда такое тупое ;)

Правильно подметил :) Так что вопрос еще остается в силе...
Anton B
 
Сообщений: 18
Зарегистрирован: 24 окт 2006, 09:14

След.

Вернуться в Aurora

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 72