Good evening list,

I run into the following problem. I have a device that is attached to a serial port (a BlueTooth thingy).

This port is opened in my application as a file, /dev/ser0 or /dev/tty0 or /dev/termios0 or /dev/... I want to control the line speed for the serial connection from the application, so I want to use tcsetattr or cfseti/ospeed. This interface only exists for termios devices ("/dev/termios0"), as defined in packages/io/serial/current/src/common/termiostty.c

Now, this BlueTooth thingy talks to some other device, not a human. So the terminal should NOT be in canonical mode: no special handling of ERASE and KILL (though these can be disabled separately), and of course no buffering -- which /cannot/ be disabled separately. However, if I look at the code (above file, line 656-675 in CVS from a week ago), if the device is not canonical, receive is implemented as *nonblocking*.
This is emphatically not what I want, and I think blockingness should be
specified in another way, by using O_NONBLOCK or O_NDELAY as parameters for open(2).

Any ideas where my reasoning went astray, or how this can be fixed?

Greetings,

Rutger


--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Reply via email to