diff --git a/gui_client.py b/gui_client.py index 709d06a..c73475b 100644 --- a/gui_client.py +++ b/gui_client.py @@ -34,7 +34,7 @@ import pyqtgraph as pg pg.setConfigOption("background", "#12121e") pg.setConfigOption("foreground", "#aaaacc") -MAX_PLOT_POINTS = 200 +MAX_PLOT_POINTS = 2880 # 24 h at 30 s polling interval DARK_STYLE = """ QWidget { background:#1a1a2e; color:#aaaacc; font-size:12px; } @@ -198,6 +198,7 @@ class ConnectorTab(QWidget): self._port = QSpinBox() self._port.setRange(1, 65535) self._port.setValue(9999) + self._load_conn_settings() form.addRow("Host:", self._host) form.addRow("Port:", self._port) @@ -217,10 +218,35 @@ class ConnectorTab(QWidget): def _toggle(self): if self._btn.text() == "Connect": + self._save_conn_settings() self.connect_requested.emit(self._host.text(), self._port.value()) else: self.disconnect_requested.emit() + def _save_conn_settings(self): + try: + _SETTINGS_PATH.parent.mkdir(parents=True, exist_ok=True) + data = {} + try: + data = json.loads(_SETTINGS_PATH.read_text()) + except (OSError, json.JSONDecodeError): + pass + data["host"] = self._host.text() + data["port"] = self._port.value() + _SETTINGS_PATH.write_text(json.dumps(data, indent=2)) + except OSError: + pass + + def _load_conn_settings(self): + try: + data = json.loads(_SETTINGS_PATH.read_text()) + if "host" in data: + self._host.setText(data["host"]) + if "port" in data: + self._port.setValue(int(data["port"])) + except (OSError, json.JSONDecodeError, KeyError, ValueError): + pass + def set_connected(self, host: str, port: int): self._btn.setText("Disconnect") self._host.setEnabled(False)