Skip to content

Commit a1c63d6

Browse files
authored
Merge pull request #35 from arduino/alvikdev-108
fix: ALVIKDEV-108 UART read extremely slow on bytewise access
2 parents d162167 + 6a69b1f commit a1c63d6

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

arduino_alvik/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
__author__ = "Lucio Rossi <[email protected]>, Giovanni Bruno <[email protected]>"
66
__license__ = "MPL 2.0"
7-
__version__ = "1.1.1"
7+
__version__ = "1.1.2"
88
__maintainer__ = "Lucio Rossi <[email protected]>, Giovanni Bruno <[email protected]>"
99
__required_firmware_version__ = "1.1.0"
1010

arduino_alvik/arduino_alvik.py

+11-11
Original file line numberDiff line numberDiff line change
@@ -278,8 +278,7 @@ def _flush_uart():
278278
Empties the UART buffer
279279
:return:
280280
"""
281-
while uart.any():
282-
uart.read(1)
281+
uart.read(uart.any())
283282

284283
def _begin_update_thread(self):
285284
"""
@@ -647,21 +646,22 @@ def _update(self, delay_=1):
647646
self.set_behaviour(2)
648647
if not ArduinoAlvik._update_thread_running:
649648
break
650-
if self._read_message():
651-
self._parse_message()
649+
self._read_message()
652650
sleep_ms(delay_)
653651

654-
def _read_message(self) -> bool:
652+
def _read_message(self) -> None:
655653
"""
656654
Read a message from the uC
657655
:return: True if a message terminator was reached
658656
"""
659-
while uart.any():
660-
b = uart.read(1)[0]
661-
self._packeter.buffer.push(b)
662-
if b == self._packeter.end_index and self._packeter.checkPayload():
663-
return True
664-
return False
657+
buf = bytearray(uart.any())
658+
uart.readinto(buf)
659+
if len(buf):
660+
uart.readinto(buf)
661+
for b in buf:
662+
self._packeter.buffer.push(b)
663+
if b == self._packeter.end_index and self._packeter.checkPayload():
664+
self._parse_message()
665665

666666
def _parse_message(self) -> int:
667667
"""

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@
1313
["github:arduino/ucPack-mpy", "0.1.7"],
1414
["github:arduino/arduino-runtime-mpy", "0.4.0"]
1515
],
16-
"version": "1.1.1"
16+
"version": "1.1.2"
1717
}

0 commit comments

Comments
 (0)