コード例 #1
0
class GeigerCOMService(IService, SerialPortHandler):
    def __init__(self):
        self.serialPort = None
        pass

    def start(self, config):
        self.serialPort = SerialPort(self, config.get('port_address'), Constants.SERIAL_MESSAGE_DELIMITER)
        self.serialPort.openPort()
        pass

    def stop(self):
        if(self.serialPort != None):
            self.serialPort.abortPort()
        pass

    def commit(self):
        pass

    def port_opened(self, SerialPort):
        """When the port is opened."""
        print("Port linked!")
        pass

    def port_read(self, SerialPort, Data):
        """When str data has been recvd."""
        #Data starting by "N =" characters
        if(Data.startswith(Constants.SERIAL_MESSAGE_HEAD)):
            hitsCount = int(Data[Constants.SERIAL_MESSAGE_HEAD:])
            hits = HitEntity().set(int(time.time()), hitsCount)
            Globals.Application.transact(hits)
        pass

    def port_closed(self, SerialPort):
        """When the port is closed."""
        print("Port closed")
        self.serialPort.openPort()
        pass

    def port_error(self, SerialPort, Error):
        """When error has been encountered."""
        pass

    def port_abort(self, SerialPort):
        """When the port has been aborted."""
        print("Port aborted")
        pass