Skip to content

Create a pusher + locking helper

Valentin Valls requested to merge pusher into main

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
  • 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
  • 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() until pusher.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

Merge request reports

Loading