serial : timeout in prgress
This commit is contained in:
parent
cda7b7f45e
commit
c1652b68e2
|
@ -121,6 +121,8 @@ int getbyte_to (int fd, int to_ms)
|
|||
{
|
||||
unsigned char byte;
|
||||
struct timeval timeout;
|
||||
fd_set rfds;
|
||||
int retval;
|
||||
|
||||
timeout.tv_sec = to_ms / 1000;
|
||||
timeout.tv_usec = (to_ms % 1000) * 1000;
|
||||
|
@ -130,6 +132,31 @@ fprintf(stderr, "timeout %6d is %4ld %6ld\n", to_ms,
|
|||
timeout.tv_sec, timeout.tv_usec);
|
||||
#endif
|
||||
|
||||
FD_ZERO (&rfds);
|
||||
FD_SET (fd, &rfds);
|
||||
|
||||
retval = select(1, &rfds, NULL, NULL, &timeout);
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "%s : select -> %d\n", __func__, retval);
|
||||
#endif
|
||||
|
||||
retval = retval < 0 ? -1 : retval;
|
||||
|
||||
switch (retval) {
|
||||
|
||||
case -1:
|
||||
fprintf(stderr, "omg ?\n"); break;
|
||||
|
||||
case 0:
|
||||
fprintf(stderr, "timeout\n"); break;
|
||||
|
||||
|
||||
|
||||
default:
|
||||
return -99;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "serial.h"
|
||||
|
||||
|
@ -18,9 +19,10 @@ for (foo=0; foo<20; foo++) {
|
|||
if (byte < 0) {
|
||||
fprintf(stderr, "get byte : err is %d\n", byte);
|
||||
}
|
||||
else {
|
||||
printf("%6d %6d %02x\n", foo, to, byte);
|
||||
}
|
||||
// XXX else {
|
||||
printf("%9ld %6d %6d %02x\n",
|
||||
time(NULL), foo, to, byte);
|
||||
// XXX }
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue