Is it possible to use python to get True Full Duplex on a Serial port?
Hendrik van Rooyen
hendrik at microcorp.co.za
Fri Aug 14 15:48:08 CEST 2009
On Friday 14 August 2009 14:13:46 greg wrote:
> You can't read and write with the same stdio file object
> at the same time. Odd things tend to happen if you try.
> You need to open *two* file objects, one for reading
> and one for writing:
> fr = open("/dev/ttyS0","rb",0)
> fw = open("/dev/ttyS0","wb",0)
> and give fr to the reading thread and fw to the
> writing thread.
Does this actually work without somehow falling foul of the fact that
the /dev/ttyS0 is only one thing? - I know that there is no physical reason
for not being able to go in and out at the same time - in my embedded stuff I
do that routinely - but that is all assembler running on bare metal so it is
under my own control.
> You could also try avoiding file objects altogether
> and use the raw system calls in the os module. Since
> you're not using any buffering, there's little reason
> to use the stdio layer. If you do that, you should be
> able to use the same file descriptor for reading and
> writing without any trouble.
Thanks for this - I now have my weekend cut out for me...
More information about the Python-list