#!/usr/bin/env python3 from ophyd import Signal, Device, Component as Cpt from ophyd import DeviceStatus import threading import numpy import random from bluesky import RunEngine from databroker.v2 import temp from bluesky.plans import count from bluesky.callbacks import CallbackBase from pprint import pprint from ophyd.sim import motor1, det1 from bluesky.plans import scan class MyCallback(CallbackBase): def start(self, doc): print("\n\nI got a new 'start' Document") pprint(doc) # Do something def descriptor(self, doc): print("I got a new 'descriptor' Document") pprint(doc) # Do something def event(self, doc): print("I got a new 'event' Document") pprint(doc) # Do something def stop(self, doc): print("I got a new 'stop' Document") pprint(doc) # Do something def main(): RE = RunEngine() db = temp() RE.subscribe(db.v1.insert) RE(count([det1],10)) RE.subscribe(MyCallback()) #RE(count([rand1], num=10)) dets = [det1] RE( scan( dets, motor1, -1, 1, 5)) run = db[-1] print( "primary.read") print( repr(run.primary.read())) print( "primary.config") print( repr(run.primary.config())) return if __name__ == "__main__": main()