Example #1
0
 def reset (self):
     self.serial.setDTR (False)
     self.serial.setRTS (False)
     QThread.msleep (250)
     self.serial.setDTR (True)
     self.serial.setRTS (True)
     QThread.msleep (50)
Example #2
0
def wait_for(cond, to):
    """
    Wait for the condition function to return True until the timeout is met.
    The timeout is broken into pieces to make sure the application can continue
    processing without blocking functionality
    :param cond: A function that returns a boolean
    :param to: Timeout in seconds
    :return: The result of the condition function
    """
    watchdog = 0
    msecs = (to / 8.) * 1000

    while cond() is False and watchdog < 8:
        QThread.msleep(msecs)
        watchdog += 1

    return cond()
Example #3
0
    def open (self, port, baudrate = 115200):
        try:
            self.serial.port = port
            self.serial.baudrate = baudrate
            self.serial.parity = serial.PARITY_NONE
            self.serial.stopbits = serial.STOPBITS_ONE
            self.serial.datasize = serial.EIGHTBITS
            self.serial.timeout = self.timeout
            self.serial.open ()

            self.reset ()

            for _i in xrange (10):
                self.serial.write (const.CMD_STK_GET_SYNC + const.SYNC_CRC_EOP)
                self.serial.flushInput ()
                QThread.msleep (10)

            self.waiting = True
            while self.waiting:
                self.serial.flushInput ()
                self.serial.write (const.CMD_STK_GET_SYNC + const.SYNC_CRC_EOP)
                QThread.msleep (random.randrange (500, 1000))
                QApplication.processEvents ()
                if self.serial.inWaiting () < 2:
                    continue
                if self.readBytes (2) == const.RESP_STK_INSYNC + const.RESP_STK_OK:
                    break
            self.changed.emit (_('Connected'))
            self.progressUpdated.emit (0)
            return True
        except Exception as e:
            traceback.print_exc ()
            try:
                self.serial.close ()
            except:
                pass
            self.setError (e)
            return False
Example #4
0
 def execute (self, cmd, resLength = 0):
     #print 'SENT: (%02x):' % len (cmd + const.SYNC_CRC_EOP), dump (cmd + const.SYNC_CRC_EOP)
     self.serial.write (cmd)
     self.serial.write (const.SYNC_CRC_EOP)
     QThread.msleep (50)
     return self.sync (resLength)