From 2578a4b7739a3bdafee061a6d5fcfdb3bd92d12a Mon Sep 17 00:00:00 2001 From: matteo porta Date: Tue, 13 Sep 2022 13:36:22 +0200 Subject: [PATCH] wip --- src/components/multicomp_730424.py | 8 ++++++++ src/components/neo_pixels.py | 8 ++++++++ src/components/serial_label_printer.py | 12 ++++++++++-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/components/multicomp_730424.py b/src/components/multicomp_730424.py index b94bb93..cbbae1a 100644 --- a/src/components/multicomp_730424.py +++ b/src/components/multicomp_730424.py @@ -19,6 +19,11 @@ class Multicomp730424(Component): self.stopbits = getattr(serial, self.config[self.name].get("stopbits", "stopbits_one").upper()) self.parity = getattr(serial, self.config[self.name].get("parity", "parity_none").upper()) self.bytesize = getattr(serial, self.config[self.name].get("bytesize", "eightbits").upper()) + self.read_timeout = float(self.config[self.name].get("read_timeout", 1)) + self.write_timeout = float(self.config[self.name].get("write_timeout", 1)) + self.inter_byte_timeout = self.config[self.name].get("inter_byte_timeout", None) + if self.inter_byte_timeout is not None: + self.inter_byte_timeout = float(self.inter_byte_timeout) if self.conn is not None: self.conn.close() self.conn = serial.Serial( @@ -27,6 +32,9 @@ class Multicomp730424(Component): stopbits=self.stopbits, parity=self.parity, bytesize=self.bytesize, + timeout=self.read_timeout, + write_timeout=self.write_timeout, + inter_byte_timeout=self.inter_byte_timeout, ) self.write("FUNC1 \"RES\"") self.write("RATE F") diff --git a/src/components/neo_pixels.py b/src/components/neo_pixels.py index 7f40b2e..537eb76 100644 --- a/src/components/neo_pixels.py +++ b/src/components/neo_pixels.py @@ -26,6 +26,11 @@ class NeoPixels(Component): self.stopbits = getattr(serial, self.config[self.name].get("stopbits", "stopbits_one").upper()) self.parity = getattr(serial, self.config[self.name].get("parity", "parity_none").upper()) self.bytesize = getattr(serial, self.config[self.name].get("bytesize", "eightbits").upper()) + self.read_timeout = float(self.config[self.name].get("read_timeout", 1)) + self.write_timeout = float(self.config[self.name].get("write_timeout", 1)) + self.inter_byte_timeout = self.config[self.name].get("inter_byte_timeout", None) + if self.inter_byte_timeout is not None: + self.inter_byte_timeout = float(self.inter_byte_timeout) if self.conn is not None: self.conn.close() self.conn = serial.Serial( @@ -34,6 +39,9 @@ class NeoPixels(Component): stopbits=self.stopbits, parity=self.parity, bytesize=self.bytesize, + timeout=self.read_timeout, + write_timeout=self.write_timeout, + inter_byte_timeout=self.inter_byte_timeout, ) QThread.msleep(5000) self.set_all_pixel_color("#000000") diff --git a/src/components/serial_label_printer.py b/src/components/serial_label_printer.py index 770bb5e..12b819e 100644 --- a/src/components/serial_label_printer.py +++ b/src/components/serial_label_printer.py @@ -15,11 +15,16 @@ class Serial_Label_Printer(Component): super().__init__(config=config, name=name, threaded=False) def config_changed(self): - self.address = self.config[self.name]["address"] + self.port = self.config[self.name]["port"] self.baudrate = int(self.config[self.name]["baudrate"]) self.stopbits = getattr(serial, self.config[self.name].get("stopbits", "stopbits_one").upper()) self.parity = getattr(serial, self.config[self.name].get("parity", "parity_none").upper()) self.bytesize = getattr(serial, self.config[self.name].get("bytesize", "eightbits").upper()) + self.read_timeout = float(self.config[self.name].get("read_timeout", 1)) + self.write_timeout = float(self.config[self.name].get("write_timeout", 1)) + self.inter_byte_timeout = self.config[self.name].get("inter_byte_timeout", None) + if self.inter_byte_timeout is not None: + self.inter_byte_timeout = float(self.inter_byte_timeout) @Component.reconfig_on_error def print_label(self, template, context=None): @@ -32,11 +37,14 @@ class Serial_Label_Printer(Component): label = label.format(**context) try: conn = serial.Serial( - self.address, + self.port, baudrate=self.baudrate, stopbits=self.stopbits, parity=self.parity, bytesize=self.bytesize, + timeout=self.read_timeout, + write_timeout=self.write_timeout, + inter_byte_timeout=self.inter_byte_timeout, ) conn.write(label.encode(errors="surrogateescape")) conn.close()