Files
furka/tth.py
2022-07-26 15:04:23 +02:00

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()])