EcolScaler uses generic MagnetsScaler

This commit is contained in:
2022-09-17 10:16:07 +02:00
parent 629ef11b92
commit c88503fc4f

63
Ecol.py
View File

@ -1,56 +1,25 @@
from slic.core.adjustable import Adjustable from magnets import MagnetsScaler
from slic.core.device import SimpleDevice
from magnet import Magnet
class EcolScaler(Adjustable): MAGNET_NAMES = (
"SARCL02-MQUA130",
def __init__(self, ID="ECOL-SCALER", factor=1): "SARCL02-MQUA150",
super().__init__(ID) "SARCL02-MQSK160",
self.factor = factor "SARCL02-MQUA210",
mag01 = Magnet("SARCL02-MQUA130") "SARCL02-MQUA250",
mag02 = Magnet("SARCL02-MQUA150") "SARCL02-MQKS300",
mag03 = Magnet("SARCL02-MQSK160") "SARCL02-MQUA310",
mag04 = Magnet("SARCL02-MQUA210") "SARCL02-MQUA350",
mag05 = Magnet("SARCL02-MQUA250") "SARCL02-MQSK420",
mag06 = Magnet("SARCL02-MQKS300") "SARCL02-MQUA430",
mag07 = Magnet("SARCL02-MQUA310") "SARCL02-MQUA460"
mag08 = Magnet("SARCL02-MQUA350")
mag09 = Magnet("SARCL02-MQSK420")
mag10 = Magnet("SARCL02-MQUA430")
mag11 = Magnet("SARCL02-MQUA460")
self.magnets = SimpleDevice(
ID,
m01=mag01,
m02=mag02,
m03=mag03,
m04=mag04,
m05=mag05,
m06=mag06,
m07=mag07,
m08=mag08,
m09=mag09,
m10=mag10,
m11=mag11
) )
def get_current_value(self):
return self.factor
def set_target_value(self, factor): class EcolScaler(MagnetsScaler):
old_factor = self.factor
self.factor = factor
print(old_factor, factor)
tasks = []
for m in self.magnets:
current = m.get()
t = m.set(current / old_factor * factor)
for t in tasks:
t.wait()
def is_moving(self): def __init__(self, ID="ECOL-SCALER", magnet_names=MAGNET_NAMES, factor=1):
return any(m.is_moving() for m in self.magnets) super().__init__(ID, magnet_names, factor=factor)