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
Part of #373 Queue Management & Experiment Control:
Evaluate and build a plan execution queue in the a panel of the interface, supporting plan stacking, insertion, deletion, and deferral.
Goals
Acceptance criteria : What journeys should the user be able to complete to consider your feature done
Be as specific as you can, check them off once they work. Add more if you find more requirements during development. Issue should only be considered done after all of them are checked
The user can assemble a series of bluesky plans, insert new ones, delete queued plans, or defer execution.
Tasks
base on the goals, deduce the tasks required. check them off once they're done
Note
A form of queuing exist as as service that push task to blueapi. Making use of the BlueapiClient which mean it is possible to add callback and get data via blueapi here.
The UI mock in this issue is aspirational. Two specific things it shows are not
confirmed to be supported: the Deferred queue state (see)
Library block editor.
Queue Design Evaluation: Evaluate the data structure (Linked List vs. standard Queue) for optimal insertion, deletion, and deferral performance.
BlueAPI Queue Connection: Connect the UI queue actions to the BlueAPI/RE queue endpoints.
Panel UI: Build the Queue list layout displaying queued, active, and completed plan states.
changed the title [-]Design and integrate the Queue UI component (linked list or event queue) supporting insertion, deletion, and deferral.[/-][+]Queue Data Structure & UI Layout[/+]on Sep 9, 2026
Assumption to confirm: the queue also returns plan state/status, so the UI does not need
a separate status channel. @jacob-williamson: confirmed. It gets task status in the queue - but not BlueAPI status. Queued, in progress, error, success. BlueAPI feedback is 'in progress' or 'finished'. BlueAPI websocket would get more feedback in the queue but not currently a priority. If the queue has a TiledID then that is enough to link up to Tiled instance to get more task information (scan starts etc)
We will need a small queue component in the UI regardless.
Queue capabilities
Known: tasks can be reordered, and inserted (not in front of 'in progress' task) and deleted.
Unknown: whether tasks can be deferred. Needs confirming with the DAQ team (i15-1) the UI
mock in #373 shows a Deferred state, so if the queue does not support it we either need
it added or need to drop it from the design. @jacob-williamson Deferral is possible but not currently implemented - ticket to be made @jacob-williamson: i15-1 plugin allows for alignment to run the experiment plan and calibration tasks prior to a measurement.
Related
If interactive moves from the canvas have to go through the queue (see #380), that changes
what this component needs to display as it would be carrying both scans and one-off moves. ** i-15 is one alignment per data collection which is added automatically in the queue. The transform matrix and offsets will be associated with the 'alignment plan' - not defined - in the csxid case? If alignment happening then it would be 'one plan' which then gets added to the queue.If has manual input because needs to be added to the queue automatically and then a plugin to save the transform/offset matrix.**
Just more note as I trying to make sense what we are building #387:
This is almost like labview ux, so something like blocky would allow us to "script" the plans and send it to the queue and we should be able to stop add insert go back between blocks in the queue, which kind of solve the use case for this and #383
Activity
[-]Design and integrate the Queue UI component (linked list or event queue) supporting insertion, deletion, and deferral.[/-][+]Queue Data Structure & UI Layout[/+]NKatti2011 commentedon Sep 16, 2026
Below include notes from meeting with @EmsArnold.
Current understanding
definition into Bluesky plans. Reference implementation:
_construct_blueapi_tasks_from_experimentini15_1_converter.pya separate status channel. @jacob-williamson: confirmed. It gets task status in the queue - but not BlueAPI status. Queued, in progress, error, success. BlueAPI feedback is 'in progress' or 'finished'. BlueAPI websocket would get more feedback in the queue but not currently a priority. If the queue has a TiledID then that is enough to link up to Tiled instance to get more task information (scan starts etc)
Queue capabilities
Known: tasks can be reordered, and inserted (not in front of 'in progress' task) and deleted.
Unknown: whether tasks can be deferred. Needs confirming with the DAQ team (i15-1) the UI
mock in #373 shows a
Deferredstate, so if the queue does not support it we either needit added or need to drop it from the design. @jacob-williamson Deferral is possible but not currently implemented - ticket to be made
@jacob-williamson: i15-1 plugin allows for alignment to run the experiment plan and calibration tasks prior to a measurement.
Related
If interactive moves from the canvas have to go through the queue (see #380), that changes
what this component needs to display as it would be carrying both scans and one-off moves. ** i-15 is one alignment per data collection which is added automatically in the queue. The transform matrix and offsets will be associated with the 'alignment plan' - not defined - in the csxid case? If alignment happening then it would be 'one plan' which then gets added to the queue.If has manual input because needs to be added to the queue automatically and then a plugin to save the transform/offset matrix.**
NKatti2011 commentedon Sep 16, 2026
@jacob-williamson Deferral is doeable so can create a ticket for that in daq-queing-service
Relm-Arrowny commentedon Sep 25, 2026
Just more note as I trying to make sense what we are building #387:
This is almost like labview ux, so something like blocky would allow us to "script" the plans and send it to the queue and we should be able to stop add insert go back between blocks in the queue, which kind of solve the use case for this and #383