added a quick interface for CCTA, i.e., pulse picker burst

This commit is contained in:
2022-10-14 19:01:20 +02:00
parent 9b7bdd76ef
commit fd171535c6

View File

@ -13,7 +13,7 @@ from slic.devices.xoptics.dcm import CoupledDoubleCrystalMonoEnergyWithTimeCorre
from undulator import Undulators from undulator import Undulators
ENERGY_OFFSET = 0 # set the mono-undulators energy offset here! ENERGY_OFFSET = -2.382769246654334 # set the mono-undulators energy offset here!
laser_pitch = SmarActAxis("SARES11-XICM125:ROX1") laser_pitch = SmarActAxis("SARES11-XICM125:ROX1")
@ -33,6 +33,48 @@ XrayShutter = Shutter("SARFE10-OPSH059")
class CCTA:
def __init__(self, ID):
self.ID = ID
self.pv_mode = PV(ID + ":REPETITION-SP")
self.pv_nreps = PV(ID + ":NR-REPETITIONS-SP")
self.pv_go = PV(ID + ":CTA-START-SEQ")
self.pv_pid = PV(ID + ":seq0Ctrl-StartedAt-O")
def burst(n=1):
self.set_nreps(n)
self.set_mode_burst()
self.go()
def set_nreps(self, n):
self.pv_nreps.put(n)
def set_mode_continuous(self):
self.pv_mode.put(0)
def set_mode_burst(self):
self.pv_mode.put(1)
def go(self):
self.pv_go.put(1)
@property
def pid(self):
pid = self.pv_pid.get()
if pid is not None:
pid = int(pid)
return pid
def __repr__(self):
tn = type(self).__name__
return f"{tn} \"{self.ID}\" started at pulse ID {self.pid}"
ccta = CCTA("SAR-CCTA-ESA")
import requests import requests
class UndulatorEnergy(PVAdjustable): class UndulatorEnergy(PVAdjustable):