On Tue, 8 Nov 2011 email@example.com wrote:
On 11:59 am, firstname.lastname@example.org 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...