Files
cristallina/beamline/i0_chamber.py

36 lines
1.3 KiB
Python

from slic.core.device import Device, SimpleDevice
from slic.core.adjustable import PVAdjustable
from slic.devices.general.motor import Motor
class i0_chamber(Device):
def __init__(self, ID, name="Cristallina I0 chamber with slits and foils", process_time=1, **kwargs):
super().__init__(ID, name=name, **kwargs)
self.foils = Motor(ID+":MCS3")
self.slits = i0_slits_unit(ID,name="Cristallina I0 chamber slits")
class i0_slits_unit(Device):
def __init__(self, ID, **kwargs):
super().__init__(ID, **kwargs)
self.x = SimpleDevice(ID + "-X",
center = PVAdjustable(ID + "-XSLIT:SLIT_POS",units='mm'),
width = PVAdjustable(ID + "-XSLIT:SLIT_WIDTH",units='mm')
)
self.y = SimpleDevice(ID + "-Y",
center = PVAdjustable(ID + "-YSLIT:SLIT_POS",units='mm'),
width = PVAdjustable(ID + "-YSLIT:SLIT_WIDTH",units='mm')
)
self.motors = i0_slits_motors(ID,name='Individual I0 chamber slit motors')
class i0_slits_motors(Device):
def __init__(self, ID, **kwargs):
super().__init__(ID, **kwargs)
self.x1 = Motor(ID + ":MCS4")
self.x2 = Motor(ID + ":MCS5")
self.y1 = Motor(ID + ":MCS2")
self.y2 = Motor(ID + ":MCS1")