[Twisted-Python] Selectable SerialPort Windows/Linux
Markus Hubig
mhubig at imko.de
Tue Sep 14 03:24:32 MDT 2010
Hi @all!
I'm trying to write a python library module for a special
serial communication protocol called IMPBUS. To use the serial
interface for sending and receiving packets as for now I'm
sub-classing pyserial. My code looks like this:
from serial import Serial, SerialExceptionfrom serial import
EIGHTBITS, PARITY_ODD, STOPBITS_TWOimport binasciiclass
SerialDevice(Serial): def __init__(self, port):
Serial.__init__(self) self.port = port self.baudrate =
57600 self.bytesize = EIGHTBITS self.parity = PARITY_ODD
self.stopbits = STOPBITS_TWO self.timeout = 0
self.xonxoff = 0 self.rtscts = 0 self.dsrdtr = 0
def _write(self, packet): fileno = self.fileno() while
True: readable, writeable, excepts = select([], [fileno],
[], 0.1) if fileno in writeable: length =
self.write(packet) break return length
def _read(self): fileno = self.fileno() while True:
readable, writeable, excepts = select([], [fileno], [], 0.1)
if fileno in readable: header = self.read(7)
length = int(binascii.b2a_hex(header[3]), 16)
data = self.read(length) packet = header + data
break return packet def talk(self, packet):
self._write(packet) responce = self._read() return
responce
But the problem is that I can't use select with pyserial on Windows,
because it don't provide the fileno() methode. So after some googling
I found twisted.internet.serialport "A select()able serial device, acting
as a transport."
I never used twisted before so I'm a little overwhelmed by how I can
replace pyserial with twisted in the code above ... maybe someone can
point me to the right direction. It seems I need a "Protocol" and a
"receiver" ...
- Markus
--
__________________________________________________________________
IMKO Micromodultechnik GmbH
Markus Hubig
System Administration & Development
Im Stoeck 2
D-76275 Ettlingen / GERMANY
HR: HRB 360936 Amtsgericht Mannheim
President: Dipl.-Ing. (FH) Kurt Koehler
Tel: 0049-(0)7243-5921-26
Fax: 0049-(0)7243-5921-40
e-mail: mhubig at imko.de
internet: www.imko.de
_________________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20100914/337404ea/attachment.html>
More information about the Twisted-Python
mailing list