dev modbus err handler

This commit is contained in:
edo-neo 2025-02-06 17:01:48 +01:00
parent 041393ff61
commit 8641a99471
3 changed files with 20 additions and 17 deletions

View File

@ -33,7 +33,7 @@ class ModbusComponent(Component):
self.lock = QMutex()
def config_changed(self):
try:
# Read configuration values
self.method = self.config[self.name].get("method", "rtu").lower()
self.port = self.config[self.name]["port"]
@ -65,16 +65,16 @@ class ModbusComponent(Component):
if not self.client.is_socket_open():
raise ConnectionError(f"Connection socket not open on port {self.port}")
except FileNotFoundError as e:
error_message = f"Serial port error: {self.port} not found. Check your configuration."
#self.log.error(error_message, exc_info=True)
self.modbus_error_signal.emit(error_message)
except Exception as e:
error_message = f"Configuration error: {str(e)}"
#self.log.error(error_message, exc_info=True)
self.modbus_error_signal.emit(error_message)
finally:
self.lock.unlock()
except FileNotFoundError as e:
error_message = f"Serial port error: {self.port} not found. Check your configuration."
#self.log.error(error_message, exc_info=True)
self.modbus_error_signal.emit(error_message)
except Exception as e:
error_message = f"Configuration error: {str(e)}"
#self.log.error(error_message, exc_info=True)
self.modbus_error_signal.emit(error_message)
def _read(self, register, count=1, **kwargs):
"""Read holding registers with error handling."""

View File

@ -28,13 +28,17 @@ class TecnaMarpossProvasetT3(ModbusComponent):
else:
raise NotImplementedError(f"tecna t3 model {self.model!r} not implemented.")
self.set_measure_units()
self.units = self.get_measure_units()
self.max_program_number = self.read("Max number of programs")
self.saver_label_count = min(abs(int(self.config[self.name].get("saver_label_count", 1))), 0b1111)
self.saver_print_on_fail = 1 if self.config[self.name].get("saver_print_on_fail", "no").lower() in {"yes", "y", "on", "true", "1", "x"} else 0
self.saver_label_template = min(abs(int(self.config[self.name].get("saver_label_template", 1))), 0b11111111)
self.model = self.config[self.name]["model"].lower()
self.log.info(f"units: {self.units}")
try:
self.units = self.get_measure_units()
self.max_program_number = self.read("Max number of programs")
self.saver_label_count = min(abs(int(self.config[self.name].get("saver_label_count", 1))), 0b1111)
self.saver_print_on_fail = 1 if self.config[self.name].get("saver_print_on_fail", "no").lower() in {"yes", "y", "on", "true", "1", "x"} else 0
self.saver_label_template = min(abs(int(self.config[self.name].get("saver_label_template", 1))), 0b11111111)
self.model = self.config[self.name]["model"].lower()
self.log.info(f"units: {self.units}")
except Exception as e:
error_message = f"Error during config_changed operation: {str(e)}"
self.tecna_error_signal.emit(True, error_message)
_pressure_units = {"mH2O": 0, "mbar": 1, "kPa": 2, "mmHg": 3, "inH2O": 4, "psi": 5, "mmH2O": 6, } # (se fondoscala <=6 bar)
_leak_units = {"mmH2O": 0, "mbar": 1, "Pa": 2, "mmHg": 3, "inH2O": 4, "psi": 5, }

View File

@ -325,5 +325,4 @@ class Test_Leak(Test_Test):
text=f"ERRORE TECNA TEST INTERROTTO.",
bg_color="red", text_color="white"
)
self.parent.fail_cycle()
self.stop_test()