This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Canonical tty (termios) and nonblocking


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]