made MagnetsScaler fully generic for any number of magnets; added missing tasks.append; removed some prints

This commit is contained in:
2022-09-17 10:09:29 +02:00
parent 08ac0c408e
commit ba71e6e4d2
2 changed files with 5 additions and 11 deletions

View File

@ -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()

View File

@ -3,7 +3,7 @@ from magnets import MagnetsScaler
ecol = EcolScaler()
mags = MagnetsScaler()
mags = MagnetsScaler("MAGNETS_SCALER", ["SINEG01-MSOL010"])