from types import SimpleNamespace from slic.devices.device import Device from slic.devices.simpledevice import SimpleDevice from slic.devices.general.motor import Motor from slic.devices.general.smaract import SmarActAxis laser_pitch = SmarActAxis("SARES11-XICM125:ROX1") laser_trans = SmarActAxis("SARES11-XICM125:TRX1") laser_yaw = SmarActAxis("SARES11-XICM125:ROY1") microscope_pitch = SmarActAxis("SARES11-XMI125:ROY1") microscope_yaw = SmarActAxis("SARES11-XMI125:ROZ1") shut_und = Device( "SARFE10-OPSH044", description="Photon shutter after Undulator" ) pbps_und = Device( "SARFE10-PBPS053", z_undulator=44, description="Intensity position monitor after Undulator (PBPS)" ) class TXS(Device): def __init__(self, Id="SAROP11-PTXS128", name="TXS"): super().__init__(Id, name=name) self.x = Motor(Id + ":TRX1") self.y = Motor(Id + ":TRY1") self.z = Motor(Id + ":TRZ1") self.crystals = SimpleDevice("TXS Crystals", left = SimpleDevice("Left Crystals", linear = SmarActAxis(Id + ":TRX11"), rotary = SmarActAxis(Id + ":ROTY11"), gonio1 = SmarActAxis(Id + ":ROTX11"), gonio2 = SmarActAxis(Id + ":ROTX12"), gonio3 = SmarActAxis(Id + ":ROTX13") ), right = SimpleDevice("Right Crystals", linear = SmarActAxis(Id + ":TRX21"), rotary = SmarActAxis(Id + ":ROTY21"), gonio1 = SmarActAxis(Id + ":ROTX21"), gonio2 = SmarActAxis(Id + ":ROTX22"), gonio3 = SmarActAxis(Id + ":ROTX23") ) ) txs = TXS()