DiamondLightSource / DiamondLightSource/dodal

Create a GDA equivalent checkbeam

Open
#1,974 1 comment 0 reactions 0 assignees View on GitHub
question
Dominant language
Python
Stars
5
Forks
13
Avg merge
3d 2h
Merged PRs (30d)
10

Description

In GDA, there is a checkbeam object. These can be added to `scans` and pause them when certain conditions are met:

- The synchrotron is due a topup, so pause until done.
- The ring current is too low e.g synchrotron loses beam so pause until beam is back up
- The front end shutters are closed, so wait until open
- Access to move insertion device has been taken over by controls, so pause until access is granted again

My gut feeling for Bluesky is to make these plans, but I think you would have to insert these plans into every single other plan for it to work so would lead to lots of custom plans and no standard e.g standard step `scan`

This also wouldn't work with BlueAPI because plans / callables are not serializable, so a user couldn't add it into a plan very easy.

I think making these into `Device`'s is probably still the correct approach. We have them implement Bluesky protocols `Stagable` and either `Readable` or `Triggerable` or both and then we block until a condition is met. Then we can easily pass them into any plan that does stage and read/trigger and "pause" it until ready.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.