58 lines
1.7 KiB
Python
58 lines
1.7 KiB
Python
from time import sleep
|
|
import numpy as np
|
|
from epics import PV
|
|
|
|
from logzero import logger as log
|
|
|
|
from slic.core.adjustable import Adjustable
|
|
from slic.core.adjustable import PVAdjustable
|
|
from slic.core.scanner.scanbackend import wait_for_all #, stop_all
|
|
from slic.devices.general.motor import Motor
|
|
|
|
|
|
class LakeShore(Adjustable):
|
|
|
|
def __init__(self, ID="Temp", units="T", accuracy=0, name="" ):
|
|
super().__init__(ID, name=name, units=units)
|
|
self.SP_RBV_T=PVAdjustable("SATES30-LS336:LOOP1_SP", "SATES30-LS336:A_RBV", name = "Temp")
|
|
self.accuracy=accuracy
|
|
|
|
def set_target_value(self, value):
|
|
t_T= self.SP_RBV_T.set_target_value(value)
|
|
t_T.wait()
|
|
|
|
def get_current_value(self):
|
|
return self.SP_RBV_T.get_current_value()
|
|
|
|
def is_moving(self):
|
|
delta = abs(self.SP_RBV_T.pvs.setvalue.get() - self.SP_RBV_T.pvs.readback.get() )
|
|
return (delta > self.accuracy)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Coupled_tth(Adjustable):
|
|
|
|
|
|
def __init__(self, ID="tth", units="deg", delta=0, name="" ):
|
|
super().__init__(ID, name=name, units=units)
|
|
self.SRY = Motor("SATES30-RIXS:MOT_SRY.VAL")
|
|
self.DRY = Motor("SATES30-RIXS:MOT_DRY.VAL")
|
|
self.delta = delta
|
|
|
|
def set_target_value(self, value):
|
|
s_SRY = 90 - value + self.delta
|
|
s_DRY = -2*value
|
|
t_SRY = self.SRY.set_target_value(s_SRY)
|
|
t_DRY = self.DRY.set_target_value(s_DRY)
|
|
t_SRY.wait()
|
|
t_DRY.wait()
|
|
def get_current_value(self):
|
|
return self.DRY.get_current_value()*(-.5)
|
|
def is_moving(self):
|
|
return any([self.SRY.is_moving(),self.DRY.is_moving()])
|