#!/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()