diff options
| author | Christian Kolset <christian.kolset@gmail.com> | 2026-06-09 21:02:53 -0600 |
|---|---|---|
| committer | Christian Kolset <christian.kolset@gmail.com> | 2026-06-09 21:02:53 -0600 |
| commit | b138e72d6f81cf58f27c6c1e4ce65cfebbb58624 (patch) | |
| tree | db128aebeb2a97bb4f4f4855cf5f7d86fbe1831d /devices | |
| parent | 0fa0568c06fd770ad104b464197b3bb03123f38e (diff) | |
Channels/Signals UX: rename labels, calibration section, splitter, sig# IDs
Naming conventions:
- Devices window: "Channel ID" column → "Signal ID"
- Serial device auto-gen IDs: CH# → sig# (generic, SCPI, Modbus fallbacks)
- Channels window physical section: "Physical Channels" → "Signals"
- Channels window virtual section: "Virtual Channels" → "Channels"
- "Add Virtual" button → "Add Channel"
- New derived channel default name: "Virtual Channel #" → "Channel #"
Signals panel (ChannelPipelineBlock):
- Remove Calibrate header button; add inline Calibration section in body
- Remove Math section (Derivative/Integral) entirely
- scale_offset excluded from filter dropdown; routed to Calibration section
- Existing pipelines: scale_offset loads into Calibration, math filters dropped
- _FILTER_KEYS excludes derivative, integral, scale_offset
Splitter default position:
- Left (Signals) pane initialised to minimum content width via QTimer.singleShot
- setStretchFactor(0,0) / (1,1): left stays narrow, right grows on resize
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'devices')
| -rw-r--r-- | devices/serial_device.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/devices/serial_device.py b/devices/serial_device.py index c3ce65f..458aec8 100644 --- a/devices/serial_device.py +++ b/devices/serial_device.py @@ -241,7 +241,7 @@ class SerialDevice(BaseDevice): def _build_channel_configs(self) -> List[ChannelConfig]: fmt = self._fmt if fmt in _GENERIC_FORMATS: - names = self._chan_names or [f"CH{i}" for i in range(self._num_channels)] + names = self._chan_names or [f"sig{i}" for i in range(self._num_channels)] _units = self._units or [""] * len(names) return [ ChannelConfig( @@ -599,8 +599,8 @@ class _SCPIPanel(QWidget): row = self._table.rowCount() self._table.insertRow(row) n = row - self._table.setItem(row, 0, QTableWidgetItem(sc["channel_id"] if sc else f"CH{n}")) - self._table.setItem(row, 1, QTableWidgetItem(sc.get("name", f"CH{n}") if sc else f"CH{n}")) + self._table.setItem(row, 0, QTableWidgetItem(sc["channel_id"] if sc else f"sig{n}")) + self._table.setItem(row, 1, QTableWidgetItem(sc.get("name", f"sig{n}") if sc else f"sig{n}")) self._table.setItem(row, 2, QTableWidgetItem(sc.get("query", "MEAS:VOLT?") if sc else "MEAS:VOLT?")) self._table.setItem(row, 3, QTableWidgetItem(sc.get("unit", "") if sc else "")) self._table.setItem(row, 4, QTableWidgetItem(str(sc.get("scale", 1.0)) if sc else "1.0")) @@ -619,8 +619,8 @@ class _SCPIPanel(QWidget): except ValueError: scale = 1.0 result.append({ - "channel_id": cell(0) or f"CH{row}", - "name": cell(1) or f"CH{row}", + "channel_id": cell(0) or f"sig{row}", + "name": cell(1) or f"sig{row}", "query": cell(2), "unit": cell(3), "scale": scale, |
