gui_client: remove diff mode switch, always use diff mode

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-29 21:01:16 +02:00
co-authored by Claude Sonnet 4.6
parent 6e340a9582
commit 78b6108658
+10 -24
View File
@@ -31,7 +31,7 @@ from pathlib import Path
from PyQt5.QtCore import QObject, QTimer, Qt, pyqtSignal from PyQt5.QtCore import QObject, QTimer, Qt, pyqtSignal
from PyQt5.QtGui import QColor, QFont from PyQt5.QtGui import QColor, QFont
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
QApplication, QCheckBox, QComboBox, QFormLayout, QGridLayout, QGroupBox, QApplication, QComboBox, QFormLayout, QGridLayout, QGroupBox,
QHBoxLayout, QLabel, QLineEdit, QMainWindow, QPushButton, QScrollArea, QHBoxLayout, QLabel, QLineEdit, QMainWindow, QPushButton, QScrollArea,
QSizePolicy, QSpinBox, QStatusBar, QTabWidget, QTreeWidget, QTreeWidgetItem, QSizePolicy, QSpinBox, QStatusBar, QTabWidget, QTreeWidget, QTreeWidgetItem,
QVBoxLayout, QWidget, QVBoxLayout, QWidget,
@@ -124,20 +124,18 @@ class TcpReader(QObject):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self._sock = None self._sock = None
self._running = False self._running = False
self._diff_mode = False
self._state: dict = {} self._state: dict = {}
def connect_to(self, host: str, port: int, diff_mode: bool = False) -> str | None: def connect_to(self, host: str, port: int) -> str | None:
"""Open connection; returns error string or None on success.""" """Open connection; returns error string or None on success."""
try: try:
self._sock = socket.create_connection((host, port), timeout=5) self._sock = socket.create_connection((host, port), timeout=5)
self._sock.settimeout(None) self._sock.settimeout(None)
except OSError as exc: except OSError as exc:
return str(exc) return str(exc)
self._diff_mode = diff_mode self._state = {}
self._state = {}
self._running = True self._running = True
threading.Thread(target=self._read_loop, daemon=True).start() threading.Thread(target=self._read_loop, daemon=True).start()
return None return None
@@ -165,11 +163,8 @@ class TcpReader(QObject):
if line: if line:
try: try:
data = json.loads(line) data = json.loads(line)
if self._diff_mode: self._state = jay_merge_full(self._state, data)
self._state = jay_merge_full(self._state, data) self.message.emit(copy.deepcopy(self._state))
self.message.emit(copy.deepcopy(self._state))
else:
self.message.emit(data)
except json.JSONDecodeError: except json.JSONDecodeError:
pass pass
except OSError: except OSError:
@@ -217,11 +212,9 @@ class ConnectorTab(QWidget):
self._port = QSpinBox() self._port = QSpinBox()
self._port.setRange(1, 65535) self._port.setRange(1, 65535)
self._port.setValue(9999) self._port.setValue(9999)
self._diff_cb = QCheckBox("Diff mode")
self._load_conn_settings() self._load_conn_settings()
form.addRow("Host:", self._host) form.addRow("Host:", self._host)
form.addRow("Port:", self._port) form.addRow("Port:", self._port)
form.addRow(self._diff_cb)
btn_row = QHBoxLayout() btn_row = QHBoxLayout()
self._btn = QPushButton("Connect") self._btn = QPushButton("Connect")
@@ -244,10 +237,6 @@ class ConnectorTab(QWidget):
else: else:
self.disconnect_requested.emit() self.disconnect_requested.emit()
@property
def diff_mode(self) -> bool:
return self._diff_cb.isChecked()
def _save_conn_settings(self): def _save_conn_settings(self):
try: try:
_SETTINGS_PATH.parent.mkdir(parents=True, exist_ok=True) _SETTINGS_PATH.parent.mkdir(parents=True, exist_ok=True)
@@ -256,9 +245,8 @@ class ConnectorTab(QWidget):
data = json.loads(_SETTINGS_PATH.read_text()) data = json.loads(_SETTINGS_PATH.read_text())
except (OSError, json.JSONDecodeError): except (OSError, json.JSONDecodeError):
pass pass
data["host"] = self._host.text() data["host"] = self._host.text()
data["port"] = self._port.value() data["port"] = self._port.value()
data["diff_mode"] = self._diff_cb.isChecked()
_SETTINGS_PATH.write_text(json.dumps(data, indent=2)) _SETTINGS_PATH.write_text(json.dumps(data, indent=2))
except OSError: except OSError:
pass pass
@@ -270,8 +258,6 @@ class ConnectorTab(QWidget):
self._host.setText(data["host"]) self._host.setText(data["host"])
if "port" in data: if "port" in data:
self._port.setValue(int(data["port"])) self._port.setValue(int(data["port"]))
if "diff_mode" in data:
self._diff_cb.setChecked(bool(data["diff_mode"]))
except (OSError, json.JSONDecodeError, KeyError, ValueError): except (OSError, json.JSONDecodeError, KeyError, ValueError):
pass pass
@@ -844,7 +830,7 @@ class MainWindow(QMainWindow):
def _connect(self, host: str, port: int): def _connect(self, host: str, port: int):
self._plot.clear_data() self._plot.clear_data()
err = self._reader.connect_to(host, port, self._connector.diff_mode) err = self._reader.connect_to(host, port)
if err: if err:
self._connector.set_disconnected(err) self._connector.set_disconnected(err)
self._statusbar.showMessage(f"Connection failed: {err}") self._statusbar.showMessage(f"Connection failed: {err}")