On Thu, Oct 25, 2007 at 08:52:48AM -0700, Brooks Talley wrote: > Thanks to everyone who applied. The OpenBSD approach to setting UFTDI baud > rates is definitely superior. > > However, the root of my problem turned out to be Python. Even with the new > baud rate hardcoded in the UFTDI kernel module and manually added to > termios.h, Python was refusing to admit that it was a valid baud rate. > > The issue is that Python (2.5.1) compiles its own termios interface module, > which builds a list of allowed baud rates from the defines in termios.h. > Python's termios.c does something like this: > > include <termios.h> > termios_constants[] = { > {"B300",B300}, > {"B1200",B1200}, > {"B2400",B2400}, > . > . > . > #ifdef B115200 > {"B115200",B115200} > #endif > #ifdef B230400 > {"B230400",B230400} > #endif > > So of course my new buad rate never got added to the list. It's a fairly > ugly problem, because the valud baud rates are set in #defines in termios.h > and Python wants an array of them, and of course there's no way (that I know > of) to enumerate defines and get a list of those that start with "B" followed > by numbers (and, of course, for all I know there's some other BXXXXX define > somewhere that is not intended to indicate an allowed baud rate). > > The real solution would be to use the OpenBSD UFTDI baud rate generator and > update Python's termios.c to avoid the list of valid baud rates and have it > just ask the serial port to set the requested rate and report back any error. > But that requires far more than my meager skills. I just added another > hardcoded #ifdef to Python's termios.c and it is all working now.
I will take care about the ftdi driver within the next days, but will not MFC it until the releases are done. The python part is left for someone else. -- B.Walter http://www.bwct.de http://www.fizon.de [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"