From c88503fc4ff5956ec1442a06adfa08f89ee81556 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Sat, 17 Sep 2022 10:16:07 +0200 Subject: [PATCH] EcolScaler uses generic MagnetsScaler --- Ecol.py | 65 +++++++++++++++------------------------------------------ 1 file changed, 17 insertions(+), 48 deletions(-) diff --git a/Ecol.py b/Ecol.py index 4af7e86..f6d85fc 100644 --- a/Ecol.py +++ b/Ecol.py @@ -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)