diff --git a/arduino_alvik/__init__.py b/arduino_alvik/__init__.py index a5353de..dbdfc6a 100644 --- a/arduino_alvik/__init__.py +++ b/arduino_alvik/__init__.py @@ -4,7 +4,7 @@ __author__ = "Lucio Rossi , Giovanni Bruno " __license__ = "MPL 2.0" -__version__ = "1.1.1" +__version__ = "1.1.2" __maintainer__ = "Lucio Rossi , Giovanni Bruno " __required_firmware_version__ = "1.1.0" diff --git a/arduino_alvik/arduino_alvik.py b/arduino_alvik/arduino_alvik.py index d83305a..4ec339e 100644 --- a/arduino_alvik/arduino_alvik.py +++ b/arduino_alvik/arduino_alvik.py @@ -272,8 +272,7 @@ def _flush_uart(): Empties the UART buffer :return: """ - while uart.any(): - uart.read(1) + uart.read(uart.any()) def _begin_update_thread(self): """ @@ -641,21 +640,22 @@ def _update(self, delay_=1): self.set_behaviour(2) if not ArduinoAlvik._update_thread_running: break - if self._read_message(): - self._parse_message() + self._read_message() sleep_ms(delay_) - def _read_message(self) -> bool: + def _read_message(self) -> None: """ Read a message from the uC :return: True if a message terminator was reached """ - while uart.any(): - b = uart.read(1)[0] - self._packeter.buffer.push(b) - if b == self._packeter.end_index and self._packeter.checkPayload(): - return True - return False + buf = bytearray(uart.any()) + uart.readinto(buf) + if len(buf): + uart.readinto(buf) + for b in buf: + self._packeter.buffer.push(b) + if b == self._packeter.end_index and self._packeter.checkPayload(): + self._parse_message() def _parse_message(self) -> int: """ diff --git a/package.json b/package.json index 52b08a2..134ac1b 100644 --- a/package.json +++ b/package.json @@ -13,5 +13,5 @@ ["github:arduino/ucPack-mpy", "0.1.7"], ["github:arduino/arduino-runtime-mpy", "0.4.0"] ], - "version": "1.1.1" + "version": "1.1.2" }