From 9bcad5d3af258eb72bc9c8ac87e3f1713e1b8b80 Mon Sep 17 00:00:00 2001 From: Christian Kolset Date: Mon, 3 Aug 2026 15:32:56 -0600 Subject: Fix acquisition pipeline stutter with many channels Batches per-tick device readings into one signal emit instead of one per channel, evaluates derived channels once per tick instead of once per raw sample, and makes ChannelBuffer.window() cost scale with the window size instead of total buffer history. Strip chart X-range now scrolls on an independent ~30fps timer instead of only snapping when new data lands, which was the main visible cause of the stutter. Co-Authored-By: Claude Sonnet 5 --- ui/main_window.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ui/main_window.py') diff --git a/ui/main_window.py b/ui/main_window.py index 8f7a3be..616f16d 100644 --- a/ui/main_window.py +++ b/ui/main_window.py @@ -304,7 +304,7 @@ class MainWindow(QMainWindow): self._ctrl_dock.raise_() def _connect_signals(self): - self.engine.new_data.connect(self.processor.on_raw_data) + self.engine.new_data.connect(self.processor.on_raw_batch) self.processor.processed_data.connect(self._chart.on_new_data) self.engine.log_started.connect(lambda p: self._log_lbl.setText(f"● {p}")) self.engine.log_stopped.connect(lambda p: self._log_lbl.setText(f"✓ {p}")) -- cgit v1.2.3