mirror of
https://github.com/bec-project/ophyd_devices.git
synced 2025-06-06 20:00:41 +02:00
Added device factory
This commit is contained in:
parent
d6da41f5e6
commit
2443269371
67
ophyd_devices/epics/DeviceFactory.py
Normal file
67
ophyd_devices/epics/DeviceFactory.py
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
Created on Wed Oct 13 17:06:51 2021
|
||||||
|
|
||||||
|
@author: mohacsi_i
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import yaml
|
||||||
|
from ophyd.ophydobj import OphydObject
|
||||||
|
from ophyd import EpicsSignal, EpicsSignalRO, EpicsMotor
|
||||||
|
from ophyd.quadem import QuadEM
|
||||||
|
import pathlib
|
||||||
|
|
||||||
|
|
||||||
|
path = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
|
||||||
|
|
||||||
|
from proxies import *
|
||||||
|
|
||||||
|
|
||||||
|
# Load SLS common database
|
||||||
|
fp = open(f"{path}/db/test_database.yml", "r")
|
||||||
|
lut_db = yaml.load(fp, Loader=yaml.Loader)
|
||||||
|
|
||||||
|
# Load SLS common database
|
||||||
|
fp = open(f"{path}/db/machine_database.yml", "r")
|
||||||
|
lut_db = yaml.load(fp, Loader=yaml.Loader)
|
||||||
|
|
||||||
|
# Load beamline specific database
|
||||||
|
bl = os.getenv('BEAMLINE_XNAME', "X12SA")
|
||||||
|
fp = open(f"{path}/db/{bl.lower()}_database.yml", "r")
|
||||||
|
lut_db.update(yaml.load(fp, Loader=yaml.Loader))
|
||||||
|
|
||||||
|
|
||||||
|
def createProxy(name: str, connect=True) -> OphydObject:
|
||||||
|
""" Factory routine to create an ophyd device with a pre-defined schema.
|
||||||
|
Does nothing if the device is already an OphydObject!
|
||||||
|
"""
|
||||||
|
if issubclass(type(name), OphydObject):
|
||||||
|
return name
|
||||||
|
|
||||||
|
entry = lut_db[name]
|
||||||
|
cls_candidate = globals()[entry["type"]]
|
||||||
|
print(f"Device candidate: {cls_candidate}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
if issubclass(cls_candidate, OphydObject):
|
||||||
|
ret = cls_candidate(**entry["config"])
|
||||||
|
if connect:
|
||||||
|
ret.wait_for_connection(timeout=5)
|
||||||
|
return ret
|
||||||
|
else:
|
||||||
|
raise RuntimeError(f"Unsupported return class: {schema}")
|
||||||
|
except TypeError:
|
||||||
|
# Simulated devices
|
||||||
|
if issubclass(type(cls_candidate), OphydObject):
|
||||||
|
return cls_candidate
|
||||||
|
else:
|
||||||
|
raise RuntimeError(f"Unsupported return class: {schema}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
21
ophyd_devices/epics/db/machine_database.yml
Normal file
21
ophyd_devices/epics/db/machine_database.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
ring:
|
||||||
|
desc: 'SLS storage ring status'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: ring, prefix: ''}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: SlsStatus
|
||||||
|
frontendstatus:
|
||||||
|
desc: 'Minimal beamline frontend status'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: frontendstatus, prefix: X06DA}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: FrontEndStatus
|
||||||
|
opticshutchstatus:
|
||||||
|
desc: 'Minimal beamline optics hutch status'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: opticshutchstatus, prefix: X06DA}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: OpticsHutchStatus
|
35
ophyd_devices/epics/db/test_database.yml
Normal file
35
ophyd_devices/epics/db/test_database.yml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
motor1:
|
||||||
|
desc: 'Simulated axis 1'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: motor1}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: SynAxis
|
||||||
|
motor2:
|
||||||
|
desc: 'Simulated axis 2'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: motor2}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: SynAxis
|
||||||
|
det1:
|
||||||
|
desc: 'Simulated signal 1'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: det1}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: SynSignal
|
||||||
|
det2:
|
||||||
|
desc: 'Simulated signal 2'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: det2}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: SynSignal
|
||||||
|
per1:
|
||||||
|
desc: 'Simulated periodic signal 1'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: per1}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: SynPeriodicSignal
|
679
ophyd_devices/epics/db/x12sa_database.yml
Normal file
679
ophyd_devices/epics/db/x12sa_database.yml
Normal file
@ -0,0 +1,679 @@
|
|||||||
|
idgap:
|
||||||
|
desc: 'Undulator gap size [mm]'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: idgap, read_pv: 'X12SA-ID-GAP:READ'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
bm1trx:
|
||||||
|
desc: 'FrontEnd XBPM 1 horizontal movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bm1trx, prefix: 'X12SA-FE-BM1:TRH'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bm1try:
|
||||||
|
desc: 'FrontEnd XBPM 1 vertical movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bm1try, prefix: 'X12SA-FE-BM1:TRV'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bm2trx:
|
||||||
|
desc: 'FrontEnd XBPM 2 horizontal movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bm2trx, prefix: 'X12SA-FE-BM2:TRH'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bm2try:
|
||||||
|
desc: 'FrontEnd XBPM 2 vertical movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bm2try, prefix: 'X12SA-FE-BM2:TRV'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
di2trx:
|
||||||
|
desc: 'FrontEnd diaphragm 2 horizontal movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: di2trx, prefix: 'X12SA-FE-DI2:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
di2try:
|
||||||
|
desc: 'FrontEnd diaphragm 2 vertical movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: di2try, prefix: 'X12SA-FE-BM2:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl0trxo:
|
||||||
|
desc: 'FrontEnd slit outer blade movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl0trxo, prefix: 'X12SA-FE-SH1:TRX2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl0trxi:
|
||||||
|
desc: 'FrontEnd slit inner blade movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl0trxi, prefix: 'X12SA-FE-SH1:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl0h:
|
||||||
|
desc: 'FrontEnd slit virtual movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl0h, prefix: 'X12SA-FE-SH1:'}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: SlitH
|
||||||
|
bm3trx:
|
||||||
|
desc: 'OpticsHutch XBPM 1 horizontal movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bm3trx, prefix: 'X12SA-OP-BM1:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bm3try:
|
||||||
|
desc: 'OpticsHutch XBPM 1 vertical movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bm3try, prefix: 'X12SA-OP-BM1:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl1trxo:
|
||||||
|
desc: 'OpticsHutch slit outer blade movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl1trxo, prefix: 'X12SA-OP-SH1:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl1trxi:
|
||||||
|
desc: 'OpticsHutch slit inner blade movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl1trxi, prefix: 'X12SA-OP-SH1:TRX2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl1tryt:
|
||||||
|
desc: 'OpticsHutch slit top blade movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl1tryt, prefix: 'X12SA-OP-SV1:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl1tryb:
|
||||||
|
desc: 'OpticsHutch slit bottom blade movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl1tryb, prefix: 'X12SA-OP-SV1:TRY2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl1h:
|
||||||
|
desc: 'OpticsHutch slit virtual movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl1h, prefix: 'X12SA-OP-SH1:'}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: SlitH
|
||||||
|
sl1v:
|
||||||
|
desc: 'OpticsHutch slit virtual movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl1v, prefix: 'X12SA-OP-SV1:'}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: SlitV
|
||||||
|
fi1try:
|
||||||
|
desc: 'OpticsHutch filter 1 movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: fi1try, prefix: 'X12SA-OP-FI1:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
fi2try:
|
||||||
|
desc: 'OpticsHutch filter 2 movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: fi2try, prefix: 'X12SA-OP-FI2:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
fi3try:
|
||||||
|
desc: 'OpticsHutch filter 3 movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: fi3try, prefix: 'X12SA-OP-FI3:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
motry:
|
||||||
|
desc: 'OpticsHutch optical table vertical movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: motry, prefix: 'X12SA-OP-OT:TRY'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
motrz1:
|
||||||
|
desc: 'Monochromator crystal 1 axial movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: motrz1, prefix: 'X12SA-OP-MO:TRZ1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mopush1:
|
||||||
|
desc: 'Monochromator crystal 1 angle'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mopush1, prefix: 'X12SA-OP-MO:ROX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
moroll1:
|
||||||
|
desc: 'Monochromator crystal 1 roll'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: moroll1, prefix: 'X12SA-OP-MO:ROZ1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
motrx2:
|
||||||
|
desc: 'Monochromator crystal 2 horizontal movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: motrx2, prefix: 'X12SA-OP-MO:TRX2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
motry2:
|
||||||
|
desc: 'Monochromator crystal 2 vertical movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: motry2, prefix: 'X12SA-OP-MO:TRY2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mopush2:
|
||||||
|
desc: 'Monochromator crystal 2 angle'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mopush2, prefix: 'X12SA-OP-MO:ROX2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
monot:
|
||||||
|
desc: 'Monochromator temperature'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: monot, read_pv: 'X12SA-OP-MO:TC3'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
moyaw2:
|
||||||
|
desc: 'Monochromator crystal 2 yaw movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: moyaw2, prefix: 'X12SA-OP-MO:ROTY2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
moroll2:
|
||||||
|
desc: 'Monochromator crystal 2 roll movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: moroll2, prefix: 'X12SA-OP-MO:ROTZ2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mobdai:
|
||||||
|
desc: 'Monochromator ??? inner motor'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mobdai, prefix: 'X12SA-OP-MO:TRYA'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mobdbo:
|
||||||
|
desc: 'Monochromator ??? outer motor'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mobdbo, prefix: 'X12SA-OP-MO:TRYB'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mobdco:
|
||||||
|
desc: 'Monochromator ??? outer motor'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mobdco, prefix: 'X12SA-OP-MO:TRYC'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mobddi:
|
||||||
|
desc: 'Monochromator ??? inner motor'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mobddi, prefix: 'X12SA-OP-MO:TRYD'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bm4trx:
|
||||||
|
desc: 'OpticsHutch XBPM 2 horizontal movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bm4trx, prefix: 'X12SA-OP-BM2:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bm4try:
|
||||||
|
desc: 'OpticsHutch XBPM 2 vertical movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bm4try, prefix: 'X12SA-OP-BM2:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mitrx:
|
||||||
|
desc: 'Mirror horizontal movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mitrx, prefix: 'X12SA-OP-MI:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mitry1:
|
||||||
|
desc: 'Mirror vertical movement 1'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mitry1, prefix: 'X12SA-OP-MI:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mitry2:
|
||||||
|
desc: 'Mirror vertical movement 2'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mitry2, prefix: 'X12SA-OP-MI:TRY2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mitry3:
|
||||||
|
desc: 'Mirror vertical movement 3'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mitry3, prefix: 'X12SA-OP-MI:TRY3'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mibd1:
|
||||||
|
desc: 'Mirror bender 1'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mibd1, prefix: 'X12SA-OP-MI:TRZ1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
mibd2:
|
||||||
|
desc: 'Mirror bender 2'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: mibd2, prefix: 'X12SA-OP-MI:TRZ2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bm5trx:
|
||||||
|
desc: 'OpticsHutch XBPM 3 horizontal movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bm5trx, prefix: 'X12SA-OP-BM3:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bm5try:
|
||||||
|
desc: 'OpticsHutch XBPM 3 vertical movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bm5try, prefix: 'X12SA-OP-BM3:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl2trxo:
|
||||||
|
desc: 'OpticsHutch slit 2 outer blade movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl2trxo, prefix: 'X12SA-OP-SH2:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl2trxi:
|
||||||
|
desc: 'OpticsHutch slit 2 inner blade movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl2trxi, prefix: 'X12SA-OP-SH2:TRX2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl2tryt:
|
||||||
|
desc: 'OpticsHutch slit 2 top blade movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl2tryt, prefix: 'X12SA-OP-SV2:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl2tryb:
|
||||||
|
desc: 'OpticsHutch slit 2 bottom blade movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl2tryb, prefix: 'X12SA-OP-SV2:TRY2'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
sl2h:
|
||||||
|
desc: 'OpticsHutch slit 2 virtual movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl2h, prefix: 'X12SA-OP-SH2:'}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: SlitH
|
||||||
|
sl2v:
|
||||||
|
desc: 'OpticsHutch slit 2 virtual movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sl2v, prefix: 'X12SA-OP-SV2:'}
|
||||||
|
deviceGroup: epicsDevice
|
||||||
|
status: {enabled: true}
|
||||||
|
type: SlitV
|
||||||
|
aptrx:
|
||||||
|
desc: 'ES aperture horizontal movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: aptrx, prefix: 'X12SA-ES1-PIN1:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
aptry:
|
||||||
|
desc: 'ES aperture vertical movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: aptry, prefix: 'X12SA-ES1-PIN1:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
ebtrx:
|
||||||
|
desc: 'Exposure box 2 horizontal movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: ebtrx, prefix: 'X12SA-ES1-EB:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
ebtry:
|
||||||
|
desc: 'Exposure box 2 vertical movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: ebtry, prefix: 'X12SA-ES1-EB:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
ebtrz:
|
||||||
|
desc: 'Exposure box 2 axial movement'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: ebtrz, prefix: 'X12SA-ES1-EB:TRZ1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
fttrx1:
|
||||||
|
desc: 'Dunno these motors???'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: fttrx1, prefix: 'X12SA-ES1-FTS1:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
fttry1:
|
||||||
|
desc: 'Dunno these motors???'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: fttry1, prefix: 'X12SA-ES1-FTS1:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
fttrz:
|
||||||
|
desc: 'Dunno these motors???'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: fttrz, prefix: 'X12SA-ES1-FTS1:TRZ1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
fttrx2:
|
||||||
|
desc: 'Dunno these motors???'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: fttrx2, prefix: 'X12SA-ES1-FTS2:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
fttry2:
|
||||||
|
desc: 'Dunno these motors???'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: fttry2, prefix: 'X12SA-ES1-FTS2:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bs1x:
|
||||||
|
desc: 'Dunno these motors???'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bs1x, prefix: 'X12SA-ES1-BS1:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bs1y:
|
||||||
|
desc: 'Dunno these motors???'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bs1y, prefix: 'X12SA-ES1-BS1:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bs2x:
|
||||||
|
desc: 'Dunno these motors???'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bs2x, prefix: 'X12SA-ES1-BS2:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
bs2y:
|
||||||
|
desc: 'Dunno these motors???'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bs2y, prefix: 'X12SA-ES1-BS2:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
dttrx:
|
||||||
|
desc: 'Detector tower motion'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: dttrx, prefix: 'X12SA-ES1-DETT:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
dttry:
|
||||||
|
desc: 'Detector tower motion, no encoder'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: dttry, prefix: 'X12SA-ES1-DETT:TRY1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
dttrz:
|
||||||
|
desc: 'Detector tower motion'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: dttrz, prefix: 'X12SA-ES1-DETT:TRZ1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
dtpush:
|
||||||
|
desc: 'Detector tower motion'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: dtpush, prefix: 'X12SA-ES1-DETT:ROX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
dettrx:
|
||||||
|
desc: 'Detector tower motion'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: dettrx, prefix: 'X12SA-ES1-DET1:TRX1'}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
eyex:
|
||||||
|
desc: 'X-ray eye motion'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: eyex, prefix: X12SA-ES2-ES01}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
eyey:
|
||||||
|
desc: 'X-ray eye motion'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: eyey, prefix: X12SA-ES2-ES02}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
eyefoc:
|
||||||
|
desc: 'X-ray eye focusing motor'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: eyefoc, prefix: X12SA-ES2-ES25}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
micfoc:
|
||||||
|
desc: 'Microscope focusing motor'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: micfoc, prefix: X12SA-ES2-ES03}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
samx:
|
||||||
|
desc: 'Sample motion'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: samx, prefix: X12SA-ES2-ES04}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
samy:
|
||||||
|
desc: 'Sample motion'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: samy, prefix: X12SA-ES2-ES05}
|
||||||
|
deviceGroup: beamlineMotor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsMotor
|
||||||
|
curr:
|
||||||
|
desc: 'SLS ring current'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: curr, read_pv: 'ARIDI-PCT:CURRENT'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
sec:
|
||||||
|
desc: 'Some scaler...'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: sec, read_pv: X12SA-ES1-SCALER.S1}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
cyb:
|
||||||
|
desc: 'Some scaler...'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: cyb, read_pv: X12SA-ES1-SCALER.S2}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
diode:
|
||||||
|
desc: 'Some scaler...'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: diode, read_pv: X12SA-ES1-SCALER.S3}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
led:
|
||||||
|
desc: 'Some scaler...'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: led, read_pv: X12SA-ES1-SCALER.S4}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
bpm3:
|
||||||
|
desc: 'XBPM 3: White beam before mono'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bpm3, prefix: 'X12SA-OP-BPM3:'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: QuadEM
|
||||||
|
bpm5:
|
||||||
|
desc: 'XBPM 5: After mirror'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bpm5, prefix: 'X12SA-OP-BPM5:'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: QuadEM
|
||||||
|
bpm6:
|
||||||
|
desc: 'XBPM 6: Not commissioned'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: bpm6, prefix: 'X12SA-OP-BPM6:'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: QuadEM
|
||||||
|
ftp:
|
||||||
|
desc: 'Flight tube pressure'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: ftp, read_pv: 'X12SA-ES1-FT1MT1:PRESSURE'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
eyecenx:
|
||||||
|
desc: 'X-ray eye intensit math'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: eyecenx, read_pv: 'XOMNYI-XEYE-XCEN:0'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
eyeceny:
|
||||||
|
desc: 'X-ray eye intensit math'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: eyeceny, read_pv: 'XOMNYI-XEYE-YCEN:0'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
eyeint:
|
||||||
|
desc: 'X-ray eye intensit math'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: eyeint, read_pv: 'XOMNYI-XEYE-INT_MEAN:0'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
transd:
|
||||||
|
desc: 'Transmission diode'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: transd, read_pv: 'X12SA-OP-BPM1:Current1:MeanValue_RBV'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
YASYM:
|
||||||
|
desc: 'FOFB reference'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: YASYM, read_pv: 'X12SA-LBB:Y-ASYM'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
YSYM:
|
||||||
|
desc: 'FOFB reference'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: YSYM, read_pv: 'X12SA-LBB:Y-SYM'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
XASYM:
|
||||||
|
desc: 'FOFB reference'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: XASYM, read_pv: 'X12SA-LBB:X-ASYM'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
XSYM:
|
||||||
|
desc: 'FOFB reference'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: XSYM, read_pv: 'X12SA-LBB:X-SYM'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
FBPMDX:
|
||||||
|
desc: 'FOFB reference'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: FBPMDX, read_pv: 'X12SA-ID-FBPMD:X'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
FBPMDY:
|
||||||
|
desc: 'FOFB reference'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: FBPMDY, read_pv: 'X12SA-ID-FBPMD:Y'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
FBPMUX:
|
||||||
|
desc: 'FOFB reference'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: FBPMUX, read_pv: 'X12SA-ID-FBPMU:X'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
||||||
|
FBPMUY:
|
||||||
|
desc: 'FOFB reference'
|
||||||
|
acquisition: {schedule: sync}
|
||||||
|
config: {name: FBPMUY, read_pv: 'X12SA-ID-FBPMU:Y'}
|
||||||
|
deviceGroup: monitor
|
||||||
|
status: {enabled: true}
|
||||||
|
type: EpicsSignalRO
|
2
ophyd_devices/epics/proxies/__init__.py
Normal file
2
ophyd_devices/epics/proxies/__init__.py
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
from .DelayGeneratorDG645 import DelayGeneratorDG645
|
||||||
|
from .slits import SlitH, SlitV
|
Loading…
x
Reference in New Issue
Block a user