From ba71e6e4d2fb29d8df551aec3d0fc2765e5744d9 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Sat, 17 Sep 2022 10:09:29 +0200 Subject: [PATCH] made MagnetsScaler fully generic for any number of magnets; added missing tasks.append; removed some prints --- magnets.py | 14 ++++---------- sfop.py | 2 +- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/magnets.py b/magnets.py index 7d65dd4..5ee87b7 100644 --- a/magnets.py +++ b/magnets.py @@ -6,16 +6,11 @@ from magnet import Magnet class MagnetsScaler(Adjustable): - def __init__(self, ID="MAGNETS-SCALER", factor=1): + def __init__(self, ID, magnet_names, factor=1): super().__init__(ID) self.factor = factor - mag1 = Magnet("SINEG01-MSOL010") -# mag2 = Magnet("SINEG01-MSOL010") - self.magnets = SimpleDevice( - ID, - m1=mag1, -# m2=mag2 - ) + mags = {f"m{i+1}": Magnet(n) for i, n in enumerate(magnet_names)} + self.magnets = SimpleDevice(ID, **mags) def get_current_value(self): return self.factor @@ -23,12 +18,11 @@ class MagnetsScaler(Adjustable): def set_target_value(self, factor): old_factor = self.factor self.factor = factor - print(old_factor, factor) tasks = [] # we collect tasks to run in parallel, ... for m in self.magnets: current = m.get() - print(current, current / old_factor * factor) t = m.set(current / old_factor * factor) + tasks.append(t) for t in tasks: # ... then we need to wait for all tasks to finish t.wait() diff --git a/sfop.py b/sfop.py index 5876602..7234380 100644 --- a/sfop.py +++ b/sfop.py @@ -3,7 +3,7 @@ from magnets import MagnetsScaler ecol = EcolScaler() -mags = MagnetsScaler() +mags = MagnetsScaler("MAGNETS_SCALER", ["SINEG01-MSOL010"])