func=lambda: np.array(np.random.random((10, 10))), name="img", labels={"detectors"}, ) RE = RunEngine() # build the pipeline raw_source = Stream() raw_output = SimpleFromEventStream( "event", ("data", "det_a"), raw_source, principle=True ) raw_output2 = SimpleFromEventStream("event", ("data", "noisy_det"), raw_source) raw_output3 = SimpleFromEventStream("event", ("data", "img"), raw_source) pipeline = ( raw_output.union(raw_output2, raw_output3.map(np.sum)) .map(lambda x: x ** 2) .accumulate(lambda x, y: x + y) ) res = SimpleToEventStream(pipeline, ("result",)) merge = AlignEventStreams(raw_source.starmap(StripDepVar()), res) merge.sink(pprint) # send to viz server merge.starsink(p) RE.subscribe(lambda *x: raw_source.emit(x)) RE.subscribe(lambda *x: p(*x)) RE.subscribe(lambda *x: time.sleep(.1)) RE.subscribe(lambda *x: time.sleep(1), "stop")
yield from trigger_and_read(list(detectors) + list(motors)) install_kicker() bec = BestEffortCallback() bec.enable_plots() hw = hw() RE = RunEngine() # build the pipeline raw_source = Stream() raw_output = SimpleFromEventStream('event', ('data', 'det_a'), raw_source, principle=True) raw_output2 = SimpleFromEventStream('event', ('data', 'noisy_det'), raw_source) pipeline = raw_output.union(raw_output2).map(lambda x: 1).accumulate( lambda x, y: x + y) res = SimpleToEventStream(pipeline, ('result', )) merge = AlignEventStreams(res, raw_source) merge.starsink(bec) RE.subscribe(lambda *x: raw_source.emit(x)) RE( pchain( bp.scan([hw.noisy_det], hw.motor, 0, 10, 10), bp.grid_scan([hw.ab_det], hw.motor, 0, 10, 10,
rand_img = SynSignal( func=lambda: np.array(np.random.random((10, 10))), name="img", labels={"detectors"}, ) RE = RunEngine() # build the pipeline raw_source = Stream() raw_output = SimpleFromEventStream("event", ("data", "det_a"), raw_source, principle=True) raw_output2 = SimpleFromEventStream("event", ("data", "noisy_det"), raw_source) raw_output3 = SimpleFromEventStream("event", ("data", "img"), raw_source) pipeline = (raw_output.union(raw_output2, raw_output3.map( np.sum)).map(lambda x: x**2).accumulate(lambda x, y: x + y)) res = SimpleToEventStream(pipeline, ("result", )) merge = AlignEventStreams(raw_source.starmap(StripDepVar()), res) merge.sink(pprint) # send to viz server merge.starsink(p) RE.subscribe(lambda *x: raw_source.emit(x)) RE.subscribe(lambda *x: p(*x)) RE.subscribe(lambda *x: time.sleep(.1)) RE.subscribe(lambda *x: time.sleep(1), "stop") RE( pchain(