termios question
Carey Evans
c.evans at clear.net.nz
Tue Feb 29 06:28:32 EST 2000
"Allen W. Ingling" <ingling at ctrvax.vanderbilt.edu> writes:
> I can't seem to set the serial port baud rate using the termios
> module. Permissions on ttyS0 are both read and write for root, and
> I run Python as root. I'm running Python 1.5.2 on RedHat 6.1, if
> that's any help.
[snip non-working code]
I seem to have fallen behind in reading clp... Better late than
never, though.
You should be setting the bps using the numbers at indexes 4 and 5 in
the list returned by tcgetattr, which tcsetattr will then use in calls
to tcsetospeed() and tcsetispeed(), instead of trying to change
c_cflag.
For example:
>>> import os, termios, TERMIOS
>>> fd = os.open('/dev/ttyS1', os.O_RDWR | os.O_NOCTTY | os.O_NDELAY)
>>> a = termios.tcgetattr(fd)
>>> a[4:6]
[4098, 4098] # = B115200, B115200
>>> b = a[:]
>>> b[4:6] = [0, TERMIOS.B1200]
>>> termios.tcsetattr(fd, TERMIOS.TCSANOW, b)
>>> c = termios.tcgetattr(fd)
>>> c[4:6]
[9, 9] # = B1200, B1200
>>> termios.tcsetattr(a) # Leave things as we found them.
--
Carey Evans http://home.clear.net.nz/pages/c.evans/
"*South Park* is another movie straight from the smoking pits of Hell."
- http://www.capalert.com/capreports/southpark.htm
More information about the Python-list
mailing list