Create a pusher + locking helper
The pusher was commissioned at ID16B.
- The pusher device have a state, and few commands.
- Create locking helper to simplify interlock of devices
- Feature
lock
,unlock
,force_unlock
,lslock
, commands
- Feature
- Use locking on the tomo for few stuffs
- A locking motion hook can be added to
srot
(by configuration) - Sequences lock
srot
by default - The pusher can lock
srot
by configuration
- A locking motion hook can be added to
- Finally the pusher can be described inside the
sample_stage
object
As result the following commands are mutual exclusive:
fulltomo.run()
umv(srot)
-
pusher.move_in()
untilpusher.move_out()
If the user try to use such command while another one is in use, it will be rejected with such exception:
tomo.helpers.locking_helper.AlreadyLockedDevices: Devices 'srot' already owned by 'tomosequence,pid:10578'
Proposal for other PR
-
We could imagine to setup the motion hook by default, instead of the need of setup it in the yaml file (i would prefer) -
We could imagine to lock more tomo axis such way (for now i would prefer not) -
On the owner name, we could image to display bliss
/daiquiri
, it's maybe a bit too much for now -
The autoct have to be reworked with this locking system on the detector/tomodetector
Edited by Valentin Valls