36 lines
1.3 KiB
Python
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")
|