Allow to circumvent the problem of blocking calls in callbacks.
Be aware that the generator execution ("next" and "send") will
happen in separate threads, but sequentially.
BREAKING CHANGE: This commit changes the scan definition to use unique device instruction ids and ScanStubStatus objects. This is a breaking change and will require updates to the scan definitions.
BREAKING CHANGE: baseline data and async data is no longer cached on the client and instead provided through file references. To this end, the data access through scan_item.data has been generalized. Live data (i.e. monitored data) is now accessible through scan_item.live_data
This commit adds support for interactive scans. This is a new feature that allows users to interactively define scans in the BEC client. The user can specify the scan parameters in a context manager and then run the scan interactively by accessing the device objects directly. Dedicated trigger and read function are provided to perform larger actions.
Failed config updates should only lead to config flush if the object initialization fails. If we simply can't connect to the signals, the device should be disabled.