Re: problem with select() - 2.4.5

2001-06-22 Thread Edgar Toernig

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

2001-06-22 Thread Thomas Speck

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

2001-06-22 Thread Thomas Speck


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

2001-06-22 Thread Thomas Speck


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

2001-06-22 Thread Thomas Speck

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

2001-06-22 Thread Edgar Toernig

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/