summaryrefslogtreecommitdiff
path: root/devices
diff options
context:
space:
mode:
authorChristian Kolset <christian.kolset@gmail.com>2026-04-22 12:21:28 -0600
committerChristian Kolset <christian.kolset@gmail.com>2026-04-22 12:21:28 -0600
commit91101126e9d044adb8afa635cca1ab5d5a4c51a6 (patch)
tree5e8a5de10751e82e76092e37760cc984346f7eb7 /devices
parent38ba9706e43c24a9d882b9d0d627812e01a30744 (diff)
Fixed saving profile to include devices and their configuration
Diffstat (limited to 'devices')
-rw-r--r--devices/__pycache__/analog_input.cpython-312.pycbin24176 -> 24808 bytes
-rw-r--r--devices/__pycache__/digital_io.cpython-312.pycbin21962 -> 22589 bytes
-rw-r--r--devices/__pycache__/serial_device.cpython-312.pycbin14669 -> 15511 bytes
-rw-r--r--devices/analog_input.py27
-rw-r--r--devices/digital_io.py25
-rw-r--r--devices/serial_device.py13
6 files changed, 54 insertions, 11 deletions
diff --git a/devices/__pycache__/analog_input.cpython-312.pyc b/devices/__pycache__/analog_input.cpython-312.pyc
index d285167..f22ffd6 100644
--- a/devices/__pycache__/analog_input.cpython-312.pyc
+++ b/devices/__pycache__/analog_input.cpython-312.pyc
Binary files differ
diff --git a/devices/__pycache__/digital_io.cpython-312.pyc b/devices/__pycache__/digital_io.cpython-312.pyc
index 5cc1faf..1907cb3 100644
--- a/devices/__pycache__/digital_io.cpython-312.pyc
+++ b/devices/__pycache__/digital_io.cpython-312.pyc
Binary files differ
diff --git a/devices/__pycache__/serial_device.cpython-312.pyc b/devices/__pycache__/serial_device.cpython-312.pyc
index 03a29f7..53ba302 100644
--- a/devices/__pycache__/serial_device.cpython-312.pyc
+++ b/devices/__pycache__/serial_device.cpython-312.pyc
Binary files 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)