made MagnetsScaler fully generic for any number of magnets; added missing tasks.append; removed some prints
This commit is contained in:
14
magnets.py
14
magnets.py
@ -6,16 +6,11 @@ from magnet import Magnet
|
|||||||
|
|
||||||
class MagnetsScaler(Adjustable):
|
class MagnetsScaler(Adjustable):
|
||||||
|
|
||||||
def __init__(self, ID="MAGNETS-SCALER", factor=1):
|
def __init__(self, ID, magnet_names, factor=1):
|
||||||
super().__init__(ID)
|
super().__init__(ID)
|
||||||
self.factor = factor
|
self.factor = factor
|
||||||
mag1 = Magnet("SINEG01-MSOL010")
|
mags = {f"m{i+1}": Magnet(n) for i, n in enumerate(magnet_names)}
|
||||||
# mag2 = Magnet("SINEG01-MSOL010")
|
self.magnets = SimpleDevice(ID, **mags)
|
||||||
self.magnets = SimpleDevice(
|
|
||||||
ID,
|
|
||||||
m1=mag1,
|
|
||||||
# m2=mag2
|
|
||||||
)
|
|
||||||
|
|
||||||
def get_current_value(self):
|
def get_current_value(self):
|
||||||
return self.factor
|
return self.factor
|
||||||
@ -23,12 +18,11 @@ class MagnetsScaler(Adjustable):
|
|||||||
def set_target_value(self, factor):
|
def set_target_value(self, factor):
|
||||||
old_factor = self.factor
|
old_factor = self.factor
|
||||||
self.factor = factor
|
self.factor = factor
|
||||||
print(old_factor, factor)
|
|
||||||
tasks = [] # we collect tasks to run in parallel, ...
|
tasks = [] # we collect tasks to run in parallel, ...
|
||||||
for m in self.magnets:
|
for m in self.magnets:
|
||||||
current = m.get()
|
current = m.get()
|
||||||
print(current, current / old_factor * factor)
|
|
||||||
t = m.set(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
|
for t in tasks: # ... then we need to wait for all tasks to finish
|
||||||
t.wait()
|
t.wait()
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user