connectors/LPC/LPCProto.py
author Lolitech
Fri, 04 Jun 2010 16:11:19 +0200
changeset 563 c74a37d156df
parent 545 627e5c636a4f
child 571 427bf9130d12
permissions -rw-r--r--
Better serial comm handling in LPC connector
import serial
import exceptions
from threading import Lock

class LPCProtoError(exceptions.Exception):
        """Exception class"""
        def __init__(self, msg):
                self.msg = msg

        def __str__(self):
                return "LPC communication error ! " + str(self.msg)

class LPCProto:
    def __init__(self, port, rate, timeout):
        # serialize access lock
        self.TransactionLock = Lock()
        # open serial port
#        self.serialPort = serial.Serial( port, rate, timeout = timeout )
        # Debugging serial stuff
        self.serialPort = serial.Serial( port, rate, timeout = timeout )
#        class myser:
#            def read(self_,cnt):
#                res = self._serialPort.read(cnt)
#                if len(res) > 16:
#                    print "Recv :", map(hex,map(ord,res[:16])), "[...]"
#                else:
#                    print "Recv :", map(hex,map(ord,res))
#                    
#                return res
#            def write(self_, str):
#                if len(str) > 16:
#                    print "Send :", map(hex,map(ord,str[:16])), "[...]"
#                else:
#                    print "Send :", map(hex,map(ord,str))
#                self._serialPort.write(str)
#            def flush(self_):
#                self._serialPort.flush()
#        self.serialPort = myser()
        # start with empty
        self.serialPort.flush()
    
    def __del__(self):
        if self.serialPort:
            self.serialPort.close()

    def close(self):
        self.serialPort.close()
        self.serialPort = None