You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
exit_slit is part of s6 (slit) motors, specifically the ysize component. We can do this by making a simple Motor composite of
s6
xgap
xsize
ygap
ysize
z
I am of the opinion we should mirror epics and the beamline users should use s6.ygap for their scripting so that it is more clear what is actually being moved from a user point of view and support. I will have to speak to beamline scientists to convince them though
I have spoken to beamline staff on this. The reason they call s6.ygap exit_slit is because every APRES beamline has a variable called exit_slit, so make it very convenient for the users.
I have spoken to them about this, they would be fine with using the proposed solution above, on the client they make a variable called exit_slit = sy.ygap and just use that. However, all metadata and logging will refer to it as original s6.ygap.
So we have a couple solutions:
create s6 object as above. Let client rename it for convenience but still use s6.ygap object throughout server
create s6 object as above, but it has a dependency on exit_slit for device creation and we create exit_slit as own device
we just duplicate, we create s6 composite of motor object and we create exit_slit motor object, both using same PV
I personally don't like option 3, I really dislike duplicating multiple objects using the same PV for the same thing, but might best way?
I've tested with blueapi, the issue with option 2 is that device manager will rename the device name to be whatever the new factory was. So I think in this case, we duplicate. But we put a clear doc string of the factory to indicate that it corresponds to s6.ygap device, why we have to duplicate, and this is specifically for ARPES annotation
Activity
[-]`exit_slit`[/-][+]i05 - add `exit_slit` device - s6 motors[/+]oliwenmandiamond commentedon Oct 23, 2026
I have spoken to beamline staff on this. The reason they call
s6.ygapexit_slit is because every APRES beamline has a variable called exit_slit, so make it very convenient for the users.I have spoken to them about this, they would be fine with using the proposed solution above, on the client they make a variable called exit_slit = sy.ygap and just use that. However, all metadata and logging will refer to it as original s6.ygap.
So we have a couple solutions:
I personally don't like option 3, I really dislike duplicating multiple objects using the same PV for the same thing, but might best way?
DG-At-Diamond commentedon Nov 10, 2026
Are you saying you vote for option 3? 2 looks like the best one of these to me but 3 would be fine as well, I'm not that against reusing PVs.
oliwenmandiamond commentedon Nov 13, 2026
I've tested with blueapi, the issue with option 2 is that device manager will rename the device name to be whatever the new factory was. So I think in this case, we duplicate. But we put a clear doc string of the factory to indicate that it corresponds to s6.ygap device, why we have to duplicate, and this is specifically for ARPES annotation