dodal.devices.aperturescatterguard.ApertureScatterguard#
- class dodal.devices.aperturescatterguard.ApertureScatterguard[source]#
Move the aperture and scatterguard assembly in a safe way. There are two ways to interact with the device depending on if you want simplicity or move flexibility.
Examples
The simple interface is using:
await aperture_scatterguard.set(ApertureValue.LARGE)
This will move the assembly so that the large aperture is in the beam, regardless of where the assembly currently is.
We may also want to move the assembly out of the beam with:
await aperture_scatterguard.set(ApertureValue.OUT_OF_BEAM)
Note, to make sure we do this as quickly as possible, the scatterguard will stay in the same position relative to the aperture.
We may then want to keep the assembly out of the beam whilst asynchronously preparing the other axes for the aperture that’s to follow:
await aperture_scatterguard.prepare(ApertureValue.LARGE)
Then, at a later time, move back into the beam:
await aperture_scatterguard.set(ApertureValue.LARGE)
Given the prepare has been done this move will now be faster as only the y is left to move.
- Parameters:
loaded_positions (
dict
[ApertureValue
,AperturePosition
])tolerances (
AperturePosition
)prefix (
str
, default:''
)name (
str
, default:''
)
Methods
prepare
(value)Moves the assembly to the position for the specified aperture, whilst keeping it out of the beam if it already is so.
set
(value)This set will move the aperture into the beam or move the whole assembly out
Attributes
- set(value: ApertureValue)[source]#
This set will move the aperture into the beam or move the whole assembly out
- Parameters:
value (
ApertureValue
)
- prepare(value: ApertureValue)[source]#
Moves the assembly to the position for the specified aperture, whilst keeping it out of the beam if it already is so.
Moving the assembly whilst out of the beam has no collision risk so we can just move all the motors together.
- Parameters:
value (
ApertureValue
)