GUI: fixed tell error flashing - hopefully
This commit is contained in:
@@ -47,6 +47,7 @@ class DAQWorker(QObject):
|
||||
|
||||
def __init__(self, base_url: str | None, token: str, parent=None):
|
||||
super().__init__(parent)
|
||||
self._active_status_error_key = None
|
||||
self.__token = token
|
||||
self.__base_url = base_url
|
||||
self.__net_manager = QNetworkAccessManager()
|
||||
@@ -77,6 +78,7 @@ class DAQWorker(QObject):
|
||||
self._last_error_payloads = deque(maxlen=10)
|
||||
|
||||
self._last_tell_connected: bool | None = None
|
||||
self._last_tell_error: str | None = None
|
||||
self._last_smargon_connected: bool | None = None
|
||||
self._server_connected: bool | None = None
|
||||
self._last_server_error: str | None = None
|
||||
@@ -244,12 +246,19 @@ class DAQWorker(QObject):
|
||||
self._server_connected = True
|
||||
self._last_server_error = None
|
||||
|
||||
tell_conn = bool(getattr(parsed_response, "tell_connected", True))
|
||||
smargon_conn = bool(getattr(parsed_response, "smargon_connected", True))
|
||||
tell_err = getattr(parsed_response, "tell_error", None)
|
||||
smargon_err = getattr(parsed_response, "smargon_error", None)
|
||||
tell_conn = bool(getattr(parsed_response, "tell_connected", True))
|
||||
tell_err = getattr(parsed_response, "tell_error", None)
|
||||
tell_err_text = None if tell_err is None else str(tell_err).strip()
|
||||
|
||||
|
||||
tell_changed = (
|
||||
self._last_tell_connected is None
|
||||
or self._last_tell_connected != tell_conn
|
||||
or self._last_tell_error != tell_err_text
|
||||
)
|
||||
|
||||
tell_changed = self._last_tell_connected is not None and self._last_tell_connected != tell_conn
|
||||
smargon_changed = (
|
||||
self._last_smargon_connected is not None and self._last_smargon_connected != smargon_conn
|
||||
)
|
||||
@@ -449,10 +458,6 @@ class DAQWorker(QObject):
|
||||
def open_shutter(self):
|
||||
self.generic_post(f"beamline/shutter?val=true")
|
||||
|
||||
@Slot()
|
||||
def alc_background(self):
|
||||
self.generic_post("alc/background")
|
||||
|
||||
@Slot()
|
||||
def center_loop(self):
|
||||
self.generic_post("alc/center_loop")
|
||||
|
||||
@@ -11,6 +11,8 @@ class AlertBanner(QFrame):
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
|
||||
self._current_message: str | None = None
|
||||
|
||||
self._clear_timer = QTimer(self)
|
||||
self._clear_timer.setSingleShot(True)
|
||||
self._clear_timer.timeout.connect(self.clear_message)
|
||||
@@ -40,6 +42,9 @@ class AlertBanner(QFrame):
|
||||
self.clear_message()
|
||||
return
|
||||
|
||||
if msg == self._current_message:
|
||||
return
|
||||
|
||||
if is_error:
|
||||
decorated = f"🛑 {msg} 🛑"
|
||||
self.setStyleSheet(
|
||||
@@ -79,6 +84,7 @@ class AlertBanner(QFrame):
|
||||
|
||||
@Slot()
|
||||
def clear_message(self):
|
||||
self._current_message = None
|
||||
self._clear_timer.stop()
|
||||
self._label.clear()
|
||||
self.setVisible(False)
|
||||
|
||||
Reference in New Issue
Block a user