On 2009-02-14, John Nagle <na...@animats.com> wrote: > John Nagle wrote: > >> OK, tried to open the port, using Python 2.6, latest PySerial >> and PyWin32: >> >> ser = serial.Serial(port, baudrate=baud, >> bytesize=serial.FIVEBITS, >> parity=serial.PARITY_NONE, >> stopbits=serial.STOPBITS_TWO) >> >> ValueError: Cannot configure port, some setting was wrong. Original >> message: (87, 'SetCommState', 'The parameter is incorrect.') >> >> Something doesn't like "serial.FIVEBITS". That's a valid value, >> according >> to "http://pyserial.wiki.sourceforge.net/pySerial". If changed to >> "serial.EIGHTBITS", the code will execute, but of course does the wrong >> thing. That looks like a bug. > > OK, here's what's wrong. The allowed numbers for stop bits in Windows are > > ONESTOPBIT 0 1 stop bit. > ONE5STOPBITS 1 1.5 stop bits. > TWOSTOPBITS 2 2 stop bits. > > The Python interface, however, only exports STOPBITS_ONE and STOPBITS_TWO. > See "serialutil.py", at line 9, and "serialwin32.py" at lines 141-146.
That should be simple enough to fix. > Linux has a different set of restrictions; Linux offers only 1 or 2 stop > bits, and won't do arbitrary baud rates via the "termios" data structure, > although there are other ways to request that. It can be done via the ioctl that setserial uses, but that's specific to a very few low-level drivers like the 16x50 one -- which is probably the one that matters to the OP, though he hasn't said so. -- Grant -- http://mail.python.org/mailman/listinfo/python-list