X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/4cf24de229090b1ab6279570a564d224e13dd706..786c7d54e8d820e89997e507c29ea716c0d55fd9:/lincan/utils/readburst.c diff --git a/lincan/utils/readburst.c b/lincan/utils/readburst.c index 139e558..8c61069 100644 --- a/lincan/utils/readburst.c +++ b/lincan/utils/readburst.c @@ -1,14 +1,32 @@ #include #include #include +#include #include #include +#include #include #include "../include/can.h" int fd; +int can_fd_wait(int fd, int wait_sec) +{ + int ret; + struct timeval timeout; + fd_set set; + + FD_ZERO (&set); + FD_SET (fd, &set); + timeout.tv_sec = wait_sec; + timeout.tv_usec = 0; + while ((ret=select(FD_SETSIZE,&set, NULL, NULL,&timeout))==-1 + &&errno==-EINTR); + return ret; +} + + /*--- handler on SIGINT signal : the program quit with CTL-C ---*/ void sortie(int sig) { @@ -43,11 +61,19 @@ int main(void) readmsg.flags=0; readmsg.cob=0; readmsg.timestamp=0; + #if 1 + ret=can_fd_wait(fd, 5); + printf("can_fd_wait returnet %d\n",ret); + #endif ret=read(fd,&readmsg,sizeof(struct canmsg_t)); if(ret <0) { printf("Error reading message\n"); } + else if(ret == 0) + { + printf("No message arrived\n"); + } else { printf("Received message #%lu: id=%lX dlc=%u",i,readmsg.id,readmsg.length);