summaryrefslogtreecommitdiff
path: root/ui/main_window.py
diff options
context:
space:
mode:
Diffstat (limited to 'ui/main_window.py')
-rw-r--r--ui/main_window.py24
1 files changed, 14 insertions, 10 deletions
diff --git a/ui/main_window.py b/ui/main_window.py
index 483ca49..0bb62f6 100644
--- a/ui/main_window.py
+++ b/ui/main_window.py
@@ -27,8 +27,8 @@ class _WheelBlocker(QObject):
return True
return super().eventFilter(obj, event)
-from devices.analog_input import AnalogInputDevice
-from devices.digital_io import DigitalIODevice
+from devices.arduino_device import ArduinoDevice
+from devices.nidaqmx_device import NidaqmxDevice
from devices.serial_device import SerialDevice
from devices.device_registry import DeviceRegistry
from core.acquisition import AcquisitionEngine
@@ -75,15 +75,10 @@ class MainWindow(QMainWindow):
# ── Demo ──────────────────────────────────────────────────────────────
def _init_demo_devices(self):
- # NOTE: if you have a real Arduino, configure ard_0 and dio_0 to use
- # the same port — port_registry ensures only one serial connection
- # is opened, and both devices share it automatically.
for dev in [
- AnalogInputDevice(device_id="ai_0", num_channels=4, simulate=True, backend="nidaqmx"),
- AnalogInputDevice(device_id="ard_0", num_channels=1, simulate=True, backend="arduino"),
- DigitalIODevice (device_id="dio_0", num_inputs=2, num_outputs=4,
- simulate=True, backend="arduino"),
- SerialDevice (device_id="ser_0", num_channels=3, simulate=True),
+ NidaqmxDevice(device_id="ni_0", num_analog=4, num_di=2, num_do=4, simulate=True),
+ ArduinoDevice(device_id="ard_0", num_analog=4, num_di=2, num_do=4, simulate=True),
+ SerialDevice (device_id="ser_0", num_channels=3, simulate=True),
]:
dev.connect()
self.registry.add_instance(dev)
@@ -217,6 +212,7 @@ class MainWindow(QMainWindow):
self._win_devices.device_added.connect(self._on_device_added)
self._win_devices.device_removed.connect(self._on_device_removed)
self._win_devices.device_reconfigured.connect(self._on_device_reconfigured)
+ self._win_devices.channel_visibility_changed.connect(self._on_channel_visibility_changed)
self._win_devices.closed.connect(lambda: self._btn_devices.setChecked(False))
self._show_win(self._win_devices, "right")
@@ -225,6 +221,7 @@ class MainWindow(QMainWindow):
self._win_signals = SignalsWindow(self.registry, self.processor, self)
self._win_signals.derived_changed.connect(self._on_derived_changed)
self._win_signals.visibility_changed.connect(self._chart.refresh)
+ self._win_signals.channel_toggled.connect(self._on_channel_visibility_changed)
self._win_signals.closed.connect(lambda: self._btn_signals.setChecked(False))
self._show_win(self._win_signals, "right")
@@ -341,6 +338,13 @@ class MainWindow(QMainWindow):
if self._win_plot: self._win_plot.refresh_channels()
self._status.setText(f"Device '{dev_id}' reconfigured.")
+ def _on_channel_visibility_changed(self, dev_id: str, ch_id: str, enabled: bool):
+ self._chart.on_channel_enabled_changed(dev_id, ch_id, enabled)
+ if self._win_signals:
+ self._win_signals.on_channel_enabled_changed(dev_id, ch_id, enabled)
+ if self._win_plot:
+ self._win_plot.refresh_channels()
+
def _on_derived_changed(self):
self._chart.refresh()
if self._win_plot: self._win_plot.refresh_channels()