EcolScaler uses generic MagnetsScaler
This commit is contained in:
65
Ecol.py
65
Ecol.py
@ -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",
|
||||||
|
"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):
|
class EcolScaler(MagnetsScaler):
|
||||||
return self.factor
|
|
||||||
|
|
||||||
def set_target_value(self, factor):
|
def __init__(self, ID="ECOL-SCALER", magnet_names=MAGNET_NAMES, factor=1):
|
||||||
old_factor = self.factor
|
super().__init__(ID, magnet_names, factor=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)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user