From 91b0b613f0b58498315ef91f6a541dd1089b88de Mon Sep 17 00:00:00 2001 From: Christian Kolset Date: Tue, 9 Jun 2026 23:18:43 -0600 Subject: Derived channels: signal display names as vars, auto-update template code, None op MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Variable names derived from signal display name (e.g. "Acceleration X" → acceleration_x) instead of raw channel ID; all auto-names lowercase with underscores - Template code auto-updates x[0]/x[1] refs to named vars as sources are added/changed; stops updating once user edits the code manually - Derivative wrt-channel mode uses separate template with x[1] substituted to channel var - Added "None" passthrough operation (result = x[0]) - source_names persisted in .labdaq profiles Co-Authored-By: Claude Sonnet 4.6 --- core/profile.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'core/profile.py') diff --git a/core/profile.py b/core/profile.py index 16c923f..d3c7e3a 100644 --- a/core/profile.py +++ b/core/profile.py @@ -197,12 +197,13 @@ class ProfileManager: "unit": dc.unit, "color": dc.color, "kind": dc.kind, - "sources": [list(s) for s in dc.sources], - "expression": dc.expression, - "script": dc.script, - "params": {k: v for k, v in dc.params.items() - if not k.startswith("_")}, - "enabled": dc.enabled, + "sources": [list(s) for s in dc.sources], + "source_names": list(dc.source_names), + "expression": dc.expression, + "script": dc.script, + "params": {k: v for k, v in dc.params.items() + if not k.startswith("_")}, + "enabled": dc.enabled, }) # Plot layout @@ -345,6 +346,7 @@ class ProfileManager: color=dd.get("color", "#f72585"), kind=dd.get("kind", "expression"), sources=sources, + source_names=dd.get("source_names", []), expression=dd.get("expression", ""), script=dd.get("script", ""), params=dd.get("params", {}), -- cgit v1.2.3