EcolScaler uses generic MagnetsScaler

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

65
Ecol.py
View File

@ -1,56 +1,25 @@
from slic.core.adjustable import Adjustable
from slic.core.device import SimpleDevice
from magnet import Magnet
from magnets import MagnetsScaler
class EcolScaler(Adjustable):
MAGNET_NAMES = (
"SARCL02-MQUA130",
"SARCL02-MQUA150",
"SARCL02-MQSK160",
"SARCL02-MQUA210",
"SARCL02-MQUA250",
"SARCL02-MQKS300",
"SARCL02-MQUA310",
"SARCL02-MQUA350",
"SARCL02-MQSK420",
"SARCL02-MQUA430",
"SARCL02-MQUA460"
)
def __init__(self, ID="ECOL-SCALER", factor=1):
super().__init__(ID)
self.factor = factor
mag01 = Magnet("SARCL02-MQUA130")
mag02 = Magnet("SARCL02-MQUA150")
mag03 = Magnet("SARCL02-MQSK160")
mag04 = Magnet("SARCL02-MQUA210")
mag05 = Magnet("SARCL02-MQUA250")
mag06 = Magnet("SARCL02-MQKS300")
mag07 = Magnet("SARCL02-MQUA310")
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
class EcolScaler(MagnetsScaler):
def set_target_value(self, factor):
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):
return any(m.is_moving() for m in self.magnets)
def __init__(self, ID="ECOL-SCALER", magnet_names=MAGNET_NAMES, factor=1):
super().__init__(ID, magnet_names, factor=factor)