> fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY | O_NONBLOCK);
> if (fd <0) {perror(MODEMDEVICE); exit(-1); }
You're using O_NONBLOCK so res will return 0 if no chars are present.
You code doesn't test for this although the processing you do should
not care.
Check /proc (cat /proc/tty/driver/tty*) for the metrics, see if chars
are coming in, are there errors etc.
I use a 7400 with GPS as well, I've found using pthreads with a blocking
read in one thread works best. Other threads do file saving, operator
interfaces etc.
> res = read(fd,buf,255);
> buf[res]=0;
> printf(":%s:%d\n", buf, res);
> if (res==1) STOP=TRUE; /* stop loop if only a CR was
David
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|