Пример #1
0
def test_local_without_defaults_no_string(testdir):
    from ophyd import EpicsSignal

    signal = EpicsSignal(f"{pv_base}.SCAN", name="signal")
    signal.wait_for_connection()
    desc = signal.describe()
    assert not signal.as_string
    assert desc["signal"]["dtype"] == "integer"
Пример #2
0
def pv_scan(detectors, pvname, start, stop, num, events=None):
    """
    Scan over a PV as a UI test utility
    """
    sig = EpicsSignal(pvname, name=pvname)
    mot = PhonyMotor(sig)
    config_in_scan(detectors, [mot], events)

    sig.wait_for_connection()
    return (yield from scan(detectors, sig, start, stop, num))
Пример #3
0
    def trigger(self):
        return self.img.trigger()


ph = Det("mini:ph", name="ph")
edge = Det("mini:edge", name="edge")
slit = Det("mini:slit", name="slit")

motor_ph = EpicsSignal("mini:ph:mtr", name="motor_ph", put_complete=True)
motor_edge = EpicsSignal("mini:edge:mtr", name="motor_edge", put_complete=True)
motor_slit = EpicsSignal("mini:slit:mtr", name="motor_slit", put_complete=True)

spot = Spot("mini:dot", name="spot")
mtr_spotx = EpicsSignal("mini:dot:mtrx", name="motor_spotx", put_complete=True)
mtr_spoty = EpicsSignal("mini:dot:mtry", name="motor_spoty", put_complete=True)

I = EpicsSignal("mini:current", name="I")

# Once https://github.com/bluesky/ophyd/pull/863 is released
# this can be done more succinctly.
ph.wait_for_connection()
edge.wait_for_connection()
slit.wait_for_connection()
motor_ph.wait_for_connection()
motor_edge.wait_for_connection()
spot.wait_for_connection()
mtr_spotx.wait_for_connection()
mtr_spoty.wait_for_connection()
I.wait_for_connection()
import sys

from bluesky import RunEngine
from bluesky.plan_stubs import mvr, read, sleep
from ophyd import EpicsMotor, EpicsSignal

# from bluesky.log import config_bluesky_logging

print = functools.partial(print, file=sys.stderr)

# Create ophyd devices
pm = EpicsMotor("XF:08BMA-OP{Mono:1-Ax:Pico}Mtr", name="pm")
inb = EpicsSignal("XF:08BMES-BI{PSh:1-BPM:1}V-I", name="inb")
outb = EpicsSignal("XF:08BMES-BI{PSh:1-BPM:2}V-I", name="outb")
pm.wait_for_connection()
inb.wait_for_connection()
outb.wait_for_connection()
print(f"pico starting position {pm.position:.6}")
inb_initial = inb.get()
outb_initial = outb.get()
print(f"inboard signal {inb_initial:.6}")
print(f"outboard signal {outb_initial:.6}")
BPMpos = (outb_initial - inb_initial) / (outb_initial + inb_initial) * 1000000
print(f"position {BPMpos:.4}")
source_pos = EpicsSignal("SR:APHLA:SOFB{BUMP:C08-BMB}offset:X-I",
                         name="source_pos")
print(f"source position {source_pos.get():.6}")
print(datetime.now().isoformat())


def plan(FBref):