[Twisted-Python] Rts/Cts Serial port flow control in twisted

John Santos JOHN at egh.com
Tue Nov 8 10:53:10 EST 2011

On Tue, 8 Nov 2011 exarkun at twistedmatrix.com wrote:

> On 11:59 am, dsturmfels at gmail.com wrote:
> >Hi,
> >Has anyone had much experience with serial flow control in twisted?
> I don't. :)  It sounds like this may not really have much to do with 
> Twisted, though.
> >I've been using a twisted serial port in my gtk+ software for quite a 
> >while
> >now, and I can get xonxoff flow control to work, but for some reason,
> >rtscts flow control isn't working (or I may be using it wrong).
> >
> >I'm connecting the software, via a usb-serial cable, to a Datalogic 
> >barcode
> >scanner cradle.
> >I've been able to replicate this problem with pyserial as well.
> As you perhaps already know, Twisted's serial port support is 
> implemented in terms of pyserial - and the layer Twisted adds is very 
> thin.  So the problem you experience with pyserial is probably exactly 
> the same as the problem you experience with Twisted, since the latter is 
> actually the same code as the former.
> >
> >Without flow control on, I can for example, send a particular serial 
> >string
> >to the cradle, and the cradle replies instantly with it's software 
> >version
> >(as a string).
> >If I scan a barcode, this also instantly shows up in 
> >twisted/pyserial/etc
> >(as a string).
> >
> >With xonxoff flow control on in both the software and cradle, the 
> >serial
> >connection works exactly the same as having no flow control on.
> >
> >With rtscts flow control on in both the software and cradle however, 
> >the
> >cradle doesn't reply instantly with it's software version when the 
> >correct
> >string is sent.
> >However, a scanned barcode shows up instantly in the twisted/pyserial
> >software, and if you've previously requested the cradle software 
> >version,
> >the software version string only shows up directly after receiving a
> >barcode string.
> >
> >Am I doing something wrong, or does anyone know what might be going on 
> >here?
> Do you know that the device supports RTS/CTS?  Do you know that the USB 
> driver for the device supports it?  Do you know that the USB driver 
> support for it is bug free? :)

You also need to know that the serial cable(s) include the necessary 
leads, and that the null modem (or whatever) properly crosses them over.

An RS-232 break-out box (if they are still available) would be very
helpful here.

> Sorry I can't add anything more helpful.  I think you want to be looking 
> for the problem at a pretty low level, though.  Perhaps even at the 
> level of measuring voltage on the RTS pin...
> Jean-Paul

John Santos
Evans Griffiths & Hart, Inc.
781-861-0670 ext 539

More information about the Twisted-Python mailing list