272 out, err = response[:-2].split(b"\x04") |
272 out, err = response[:-2].split(b"\x04") |
273 result += out |
273 result += out |
274 else: |
274 else: |
275 err = b"invalid response received: " + response |
275 err = b"invalid response received: " + response |
276 if err: |
276 if err: |
277 self.__blockReadyRead = False |
277 result = b"" |
278 return b"", err |
278 break |
279 |
279 |
280 # switch off raw mode |
280 # switch off raw mode |
281 QThread.msleep(10) |
281 QThread.msleep(10) |
282 self.__rawOff() |
282 self.__rawOff() |
283 self.__blockReadyRead = False |
283 self.__blockReadyRead = False |
291 |
291 |
292 @param commandsList list of commands to be execute on the device |
292 @param commandsList list of commands to be execute on the device |
293 @type list of bytes |
293 @type list of bytes |
294 """ |
294 """ |
295 |
295 |
296 def remainingTask(commands): |
|
297 self.executeAsync(commands) |
|
298 |
|
299 if commandsList: |
296 if commandsList: |
300 command = commandsList[0] |
297 command = commandsList.pop(0) |
301 self.__serial.write(command) |
298 self.__serial.write(command) |
302 remainder = commandsList[1:] |
299 QTimer.singleShot(2, lambda: self.executeAsync(commandsList)) |
303 QTimer.singleShot(2, lambda: remainingTask(remainder)) |
|
304 else: |
300 else: |
305 self.executeAsyncFinished.emit() |
301 self.executeAsyncFinished.emit() |
306 |
302 |
307 def __shortError(self, error): |
303 def __shortError(self, error): |
308 """ |
304 """ |