From a48cecee59bfa7e987a7a1aa7741c7b125bf14fb Mon Sep 17 00:00:00 2001 From: AJ Schmidt Date: Mon, 21 Dec 2020 19:44:48 -0500 Subject: [PATCH 1/2] update serial read_line --- alarmdecoder/devices/serial_device.py | 2 +- alarmdecoder/util.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/alarmdecoder/devices/serial_device.py b/alarmdecoder/devices/serial_device.py index c93b86b..7be6ddb 100644 --- a/alarmdecoder/devices/serial_device.py +++ b/alarmdecoder/devices/serial_device.py @@ -229,7 +229,7 @@ class SerialDevice(Device): buf = filter_ad2prot_byte(self._device.read(1)) if buf != b'': - self._buffer += buf[0] + self._buffer += buf if buf == b"\n": self._buffer = self._buffer.rstrip(b"\r\n") diff --git a/alarmdecoder/util.py b/alarmdecoder/util.py index 566f2ae..902b21d 100644 --- a/alarmdecoder/util.py +++ b/alarmdecoder/util.py @@ -97,14 +97,14 @@ def filter_ad2prot_byte(buf): """ Return the byte sent in back if valid visible terminal characters or line terminators. """ - c = buf[0]; + c = buf[0] - if (c == '\n' or c == '\r'): - return c + if (c == 10 or c == 13): + return buf if (c > 31 and c < 127): - return c + return buf else: - return '' + return b'' def read_firmware_file(file_path): """ From 33b20aca8c6f26e61d46950030eb9e13aae10ec8 Mon Sep 17 00:00:00 2001 From: AJ Schmidt Date: Mon, 21 Dec 2020 21:03:13 -0500 Subject: [PATCH 2/2] fix 1 failing unit test --- alarmdecoder/devices/serial_device.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/alarmdecoder/devices/serial_device.py b/alarmdecoder/devices/serial_device.py index 7be6ddb..7d38240 100644 --- a/alarmdecoder/devices/serial_device.py +++ b/alarmdecoder/devices/serial_device.py @@ -189,7 +189,7 @@ class SerialDevice(Device): except serial.SerialException as err: raise CommError('Error reading from device: {0}'.format(str(err)), err) - return data + return data.decode('utf-8') def read_line(self, timeout=0.0, purge_buffer=False): """ @@ -252,7 +252,7 @@ class SerialDevice(Device): finally: timer.cancel() - return ret + return ret.decode('utf-8') def purge(self): """