Skip to content

writer: missing data and lima mode

Sebastien Petitdemange requested to merge lima_nosaving_enum into master

This MR provides:

  • an additional NOSAVING lima mode: images might be collected but will not be saved. Lima URI's cannot be derived from the stream event (ImageNotSaved exception). Already provided by !3538 (merged)

  • lima mode MANUAL: images might be collected and might be saved. Lima URI's can be derived from the stream event. Already provided by !3538 (merged)

  • llima status events (affects Flint as well): trying to get the image URI's from a lima event raises ImageNotSaved when mode is NOSAVING. When mode is MANUAL, it tries to reconstruct the URI from the status event. Already provided by !3538 (merged)

  • Nexus writer: it no longer rejects lima events based on the mode. If it gets events, it will make links to the lima files, regardless of what the mode is and whether those files actually exist or not

  • Nexus writer: it will no longer create empty datasets. Empty datasets existed before when

    • CTRL-C of the scan before some nodes could emit any data
    • lima image when scan_saving=False

    It is arguably more convenient for data processing to have an empty dataset than a missing dataset. But as the writer cannot be absolutely sure whether lima data is expected or not, we can't create an empty dataset.

  • Nexus writer: when it thinks a channel should have data but does not have data, it adds a warning to the logs (not visible on the Bliss side)

  • Nexus writer: the NXdetector group is always created when lima is involved. It may miss the data (i.e. VDS to lima files) but it will contain the lima parameters.

  • Nexus writer: softlinks in the measurement group are created just after the destination is created. If a channel has no data, no link will be created.

Note: all these changes make the writer more forgiving towards missing data. This does mean that it will not be immediately obvious, by looking at the file or the Bliss REPL, when data is missing (unless it is caused by an error in the writer itself). The writer saves what it gets and basta.

Edited by Wout De Nolf

Merge request reports