From 91101126e9d044adb8afa635cca1ab5d5a4c51a6 Mon Sep 17 00:00:00 2001 From: Christian Kolset Date: Wed, 22 Apr 2026 12:21:28 -0600 Subject: Fixed saving profile to include devices and their configuration --- devices/__pycache__/analog_input.cpython-312.pyc | Bin 24176 -> 24808 bytes devices/__pycache__/digital_io.cpython-312.pyc | Bin 21962 -> 22589 bytes devices/__pycache__/serial_device.cpython-312.pyc | Bin 14669 -> 15511 bytes devices/analog_input.py | 27 +++++++++++++++++----- devices/digital_io.py | 25 ++++++++++++++++---- devices/serial_device.py | 13 +++++++++++ 6 files changed, 54 insertions(+), 11 deletions(-) (limited to 'devices') diff --git a/devices/__pycache__/analog_input.cpython-312.pyc b/devices/__pycache__/analog_input.cpython-312.pyc index d285167..f22ffd6 100644 Binary files a/devices/__pycache__/analog_input.cpython-312.pyc and b/devices/__pycache__/analog_input.cpython-312.pyc differ diff --git a/devices/__pycache__/digital_io.cpython-312.pyc b/devices/__pycache__/digital_io.cpython-312.pyc index 5cc1faf..1907cb3 100644 Binary files a/devices/__pycache__/digital_io.cpython-312.pyc and b/devices/__pycache__/digital_io.cpython-312.pyc differ diff --git a/devices/__pycache__/serial_device.cpython-312.pyc b/devices/__pycache__/serial_device.cpython-312.pyc index 03a29f7..53ba302 100644 Binary files a/devices/__pycache__/serial_device.cpython-312.pyc and b/devices/__pycache__/serial_device.cpython-312.pyc differ diff --git a/devices/analog_input.py b/devices/analog_input.py index e1b8b09..c9e5d2a 100644 --- a/devices/analog_input.py +++ b/devices/analog_input.py @@ -73,12 +73,13 @@ class AnalogInputDevice(BaseDevice): ) super().__init__(info) - self._ni_device = ni_device - self._ni_min_v = ni_min_v - self._ni_max_v = ni_max_v - self._ard_port = ard_port - self._ard_baud = ard_baud - self._last_error = "" + self._ni_device = ni_device + self._ni_min_v = ni_min_v + self._ni_max_v = ni_max_v + self._ard_port = ard_port + self._ard_baud = ard_baud + self._num_channels = num_channels + self._last_error = "" self._layer = self._make_layer( backend, simulate, ni_device, ni_min_v, ni_max_v, @@ -170,6 +171,20 @@ class AnalogInputDevice(BaseDevice): # Named parameter / setpoint return self._layer.set_parameter(ch, value) + def get_save_config(self) -> dict: + return { + "device_type": self.DEVICE_TYPE, + "device_id": self.info.device_id, + "num_channels": self._num_channels, + "simulate": self.simulate, + "backend": self.backend, + "ni_device": self._ni_device, + "ni_min_v": self._ni_min_v, + "ni_max_v": self._ni_max_v, + "ard_port": self._ard_port, + "ard_baud": self._ard_baud, + } + def get_config_widget(self) -> QWidget: return AnalogInputConfigWidget(self) diff --git a/devices/digital_io.py b/devices/digital_io.py index 3d24192..96c6ca5 100644 --- a/devices/digital_io.py +++ b/devices/digital_io.py @@ -40,11 +40,13 @@ class DigitalIODevice(BaseDevice): ard_port: str = "COM3", ard_baud: int = 115200, ): - self.simulate = simulate - self.backend = backend - self._ni_device = ni_device - self._ard_port = ard_port - self._ard_baud = ard_baud + self.simulate = simulate + self.backend = backend + self._ni_device = ni_device + self._ard_port = ard_port + self._ard_baud = ard_baud + self._num_inputs = num_inputs + self._num_outputs = num_outputs channels = [] for i in range(num_inputs): @@ -252,6 +254,19 @@ class DigitalIODevice(BaseDevice): if was_running: self.connect() + def get_save_config(self) -> dict: + return { + "device_type": self.DEVICE_TYPE, + "device_id": self.info.device_id, + "num_inputs": self._num_inputs, + "num_outputs": self._num_outputs, + "simulate": self.simulate, + "backend": self.backend, + "ni_device": self._ni_device, + "ard_port": self._ard_port, + "ard_baud": self._ard_baud, + } + def get_config_widget(self) -> QWidget: return DigitalIOConfigWidget(self) diff --git a/devices/serial_device.py b/devices/serial_device.py index a5bf08c..6f54cb5 100644 --- a/devices/serial_device.py +++ b/devices/serial_device.py @@ -109,6 +109,19 @@ class SerialDevice(BaseDevice): def write_channel(self, channel_id: str, value: Any) -> bool: return self._layer.write(channel_id, int(value)) + def get_save_config(self) -> dict: + return { + "device_type": self.DEVICE_TYPE, + "device_id": self.info.device_id, + "port": self._port, + "baud_rate": self._baud, + "num_channels": len(self.info.channels), + "channel_names": [c.channel_id for c in self.info.channels], + "units": [c.unit for c in self.info.channels], + "parse_format": self._parse_format, + "simulate": self.simulate, + } + def get_config_widget(self) -> QWidget: return SerialConfigWidget(self) -- cgit v1.2.3