Re: problem with select() - 2.4.5
Thomas Speck wrote: > > tio.c_cflag = baud | CLOCAL; How about adding CREAD? Ciao, ET. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: problem with select() - 2.4.5
On Fri, 22 Jun 2001, Thomas Speck wrote: > > Hi ! > I have a problem with reading from a serial port using select() under > 2.4.5. What I am doing is basically the following: > > fd_set readfds; > struct timeval timeout; > int s; > > serialfd = open("/dev/ttyS0", O_RDWR ); > > init_serial(B9600); > > timeout.tv_sec = 2; /* ! */ > timeout.tv_usec = 0; > FD_ZERO(); > FD_SET(serialfd,); > > s=select(serialfd+1, , NULL, NULL, ); > ... > > But s is always equal to 0 even when I am sure there are data to read. > If I use > > s=select(serialfd+1, NULL, , NULL, ); > > (with the corresponding initialisation of writefds) it returns s=1 and I > can write to the serial port. I can see that since the lights of the modem > are flashing. > I noticed that behavior since I tried to send some "ATZ" with the > write-function but I never got the "OK" back. > > However, the same programme works under 2.2.19. Probably I should have given the init_serial() as well; So here it is: (it is basically the one from the serial-programming-howto) int init_serial(tcflag_t baud) { struct termios tio; tcgetattr(serialfd,); tio.c_cflag = baud | CLOCAL; tio.c_iflag = IGNPAR; tio.c_oflag = 0; tio.c_lflag = 0; tio.c_cc[VTIME] = 0; tio.c_cc[VMIN] = 1; tcflush(serialfd, TCIFLUSH); tcsetattr(serialfd,TCSANOW,); return 0; } Thank you for any help -- Thomas - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
problem with select() - 2.4.5
Hi ! I have a problem with reading from a serial port using select() under 2.4.5. What I am doing is basically the following: fd_set readfds; struct timeval timeout; int s; serialfd = open("/dev/ttyS0", O_RDWR ); init_serial(B9600); timeout.tv_sec = 2; /* ! */ timeout.tv_usec = 0; FD_ZERO(); FD_SET(serialfd,); s=select(serialfd+1, , NULL, NULL, ); ... But s is always equal to 0 even when I am sure there are data to read. If I use s=select(serialfd+1, NULL, , NULL, ); (with the corresponding initialisation of writefds) it returns s=1 and I can write to the serial port. I can see that since the lights of the modem are flashing. I noticed that behavior since I tried to send some "ATZ" with the write-function but I never got the "OK" back. However, the same programme works under 2.2.19. Any help, please ? -- Thomas - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
problem with select() - 2.4.5
Hi ! I have a problem with reading from a serial port using select() under 2.4.5. What I am doing is basically the following: fd_set readfds; struct timeval timeout; int s; serialfd = open(/dev/ttyS0, O_RDWR ); init_serial(B9600); timeout.tv_sec = 2; /* ! */ timeout.tv_usec = 0; FD_ZERO(readfds); FD_SET(serialfd,readfds); s=select(serialfd+1, readfds, NULL, NULL, timeout); ... But s is always equal to 0 even when I am sure there are data to read. If I use s=select(serialfd+1, NULL, writefds, NULL, timeout); (with the corresponding initialisation of writefds) it returns s=1 and I can write to the serial port. I can see that since the lights of the modem are flashing. I noticed that behavior since I tried to send some ATZ with the write-function but I never got the OK back. However, the same programme works under 2.2.19. Any help, please ? -- Thomas - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: problem with select() - 2.4.5
On Fri, 22 Jun 2001, Thomas Speck wrote: Hi ! I have a problem with reading from a serial port using select() under 2.4.5. What I am doing is basically the following: fd_set readfds; struct timeval timeout; int s; serialfd = open(/dev/ttyS0, O_RDWR ); init_serial(B9600); timeout.tv_sec = 2; /* ! */ timeout.tv_usec = 0; FD_ZERO(readfds); FD_SET(serialfd,readfds); s=select(serialfd+1, readfds, NULL, NULL, timeout); ... But s is always equal to 0 even when I am sure there are data to read. If I use s=select(serialfd+1, NULL, writefds, NULL, timeout); (with the corresponding initialisation of writefds) it returns s=1 and I can write to the serial port. I can see that since the lights of the modem are flashing. I noticed that behavior since I tried to send some ATZ with the write-function but I never got the OK back. However, the same programme works under 2.2.19. Probably I should have given the init_serial() as well; So here it is: (it is basically the one from the serial-programming-howto) int init_serial(tcflag_t baud) { struct termios tio; tcgetattr(serialfd,tio); tio.c_cflag = baud | CLOCAL; tio.c_iflag = IGNPAR; tio.c_oflag = 0; tio.c_lflag = 0; tio.c_cc[VTIME] = 0; tio.c_cc[VMIN] = 1; tcflush(serialfd, TCIFLUSH); tcsetattr(serialfd,TCSANOW,tio); return 0; } Thank you for any help -- Thomas - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: problem with select() - 2.4.5
Thomas Speck wrote: tio.c_cflag = baud | CLOCAL; How about adding CREAD? Ciao, ET. - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/