bluesky_adaptive.per_event.adaptive_plan#
- bluesky_adaptive.per_event.adaptive_plan(dets, first_point, *, to_recommender, from_recommender, md=None, take_reading=None)[source]#
Execute an adaptive scan using an per event-run recommendation engine.
The communication pattern here is that there is 1 recommendation for each Event that is generate
- Parameters:
- detsList[OphydObj]
The detector to read at each point. The dependent keys that the recommendation engine is looking for must be provided by these devices.
- first_pointDict[Settable, Any]
The first point of the scan. The motors that will be scanned are extracted from the keys. The independent keys that the recommendation engine is looking for / returning must be provided by these devices.
- to_recommenderCallable[document_name: str, document: dict]
This is the callback that will be registered to the RunEngine.
The expected contract is for each event it will place either a dict mapping independent variable to recommended value or None.
This plan will either move to the new position and take data if the value is a dict or end the run if
None
- from_recommenderQueue
The consumer side of the Queue that the recommendation engine is putting the recommendations onto.
- mddict[str, Any], optional
Any extra meta-data to put in the Start document
- take_readingplan, optional
function to do the actual acquisition
def take_reading(dets, name='primary'): yield from ...
Callable[List[OphydObj], Optional[str]] -> Generator[Msg], optional
Defaults to
bluesky.plan_stubs.trigger_and_read