From a24035be0fbbbf3e323dcc87c05a8e310cbaee47 Mon Sep 17 00:00:00 2001 From: Sven Sager Date: Thu, 26 Oct 2023 09:03:28 +0200 Subject: [PATCH] fix: Signal connection_recovered when connected via XML-RPC native The signal 'connection_recovered' was only sent when reconnecting SSH connections. Now it is also sent after error if the connection is via the native XML RPC. --- src/revpicommander/helper.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/revpicommander/helper.py b/src/revpicommander/helper.py index 1c1cfe1..019fd72 100644 --- a/src/revpicommander/helper.py +++ b/src/revpicommander/helper.py @@ -225,6 +225,7 @@ class ConnectionManager(QtCore.QThread): self._cli = None self._cli_connect = Queue() self._cycle_time = cycle_time_ms + self._has_error = False self._lck_cli = Lock() self._ps_started = False self._revpi = None @@ -565,6 +566,7 @@ class ConnectionManager(QtCore.QThread): except Exception as e: log.warning(e) self.status_changed.emit(self.tr("SERVER ERROR"), "red") + self._has_error = True self.connection_error_observed.emit("{0} | {1}".format(e, type(e))) if self.ssh_tunnel_server and not self.ssh_tunnel_server.connected: @@ -588,6 +590,10 @@ class ConnectionManager(QtCore.QThread): pass else: + if self._has_error: + self._has_error = False + self.connection_recovered.emit() + if plc_exit_code == -1: self.status_changed.emit(self.tr("RUNNING"), "green") elif plc_exit_code == -2: @@ -641,6 +647,7 @@ class ConnectionManager(QtCore.QThread): if reload_funcs: self.xml_funcs = self._cli.system.listMethods() except Exception as e: + self._has_error = True log.error(e) if raise_exception: self._lck_cli.release()