Source code for dodal.devices.p45
from ophyd_async.core import StandardReadable
from ophyd_async.epics.motor import Motor
[docs]
class SampleY(StandardReadable):
"""
Motors for controlling the sample's y position and stretch in the y axis.
"""
def __init__(self, prefix: str, name: str = ""):
with self.add_children_as_readables():
self.base = Motor(prefix + "CS:Y")
self.stretch = Motor(prefix + "CS:Y:STRETCH")
self.top = Motor(prefix + "Y:TOP")
self.bottom = Motor(prefix + "Y:BOT")
super().__init__(name)
[docs]
class SampleTheta(StandardReadable):
"""
Motors for controlling the sample's theta position and skew
"""
def __init__(self, prefix: str, name: str = ""):
with self.add_children_as_readables():
self.base = Motor(prefix + "THETA:POS")
self.skew = Motor(prefix + "THETA:SKEW")
self.top = Motor(prefix + "THETA:TOP")
self.bottom = Motor(prefix + "THETA:BOT")
super().__init__(name)
[docs]
class TomoStageWithStretchAndSkew(StandardReadable):
"""
Grouping of motors for the P45 tomography stage
"""
def __init__(self, prefix: str, name: str = ""):
with self.add_children_as_readables():
self.x = Motor(prefix + "X")
self.y = SampleY(prefix)
self.theta = SampleTheta(prefix)
super().__init__(name)
[docs]
class Choppers(StandardReadable):
"""
Grouping for the P45 chopper motors
"""
def __init__(self, prefix: str, name: str = ""):
with self.add_children_as_readables():
self.x = Motor(prefix + "ENDAT")
self.y = Motor(prefix + "BISS")
super().__init__(name)