From afa2b4d045d1186c0c0d03ec862f88539ed9c625 Mon Sep 17 00:00:00 2001 From: x10sa Date: Thu, 19 Mar 2026 11:26:18 +0100 Subject: [PATCH] migrated from last deployment --- pxii_bec/device_configs.backup/__init__.py | 0 .../device_configs.backup/device_config.yaml | 792 ++++++ .../report_device_config.txt | 150 + .../report_x10sa_device_config.txt | 118 + .../pxii-autogenerated.yaml | 1934 +++++++++++++ .../x10sa_device_config.yaml | 58 + .../x10sa_device_config_testing.yaml | 99 + .../device_configs/pxii-autogenerated.yaml | 2488 ++++++++--------- pxii_bec/device_configs/pxii-devices-new.csv | 169 ++ .../device_configs/x10sa_device_config.yaml | 35 +- pxii_bec/macros/APscripts.py | 259 +- pxii_bec/macros/findattr.py | 49 + pxii_bec/macros/mx_basics.py | 72 +- pxii_bec/macros/mx_methods.py | 80 +- pxii_bec/macros/pxii_energy.py | 1 + pxii_bec/macros/pxii_guards.py | 280 ++ pxii_bec/macros/pxii_parameters.py | 168 +- pxii_bec/macros/set_kbox.sh | 75 + pxii_bec/macros/test.py_txt | 6 + pxii_bec/macros/update_PD_from_yaml.py | 59 + 20 files changed, 5226 insertions(+), 1666 deletions(-) create mode 100644 pxii_bec/device_configs.backup/__init__.py create mode 100644 pxii_bec/device_configs.backup/device_config.yaml create mode 100644 pxii_bec/device_configs.backup/device_test_reports/report_device_config.txt create mode 100644 pxii_bec/device_configs.backup/device_test_reports/report_x10sa_device_config.txt create mode 100644 pxii_bec/device_configs.backup/pxii-autogenerated.yaml create mode 100644 pxii_bec/device_configs.backup/x10sa_device_config.yaml create mode 100644 pxii_bec/device_configs.backup/x10sa_device_config_testing.yaml create mode 100644 pxii_bec/device_configs/pxii-devices-new.csv create mode 100644 pxii_bec/macros/findattr.py create mode 100644 pxii_bec/macros/pxii_guards.py create mode 100755 pxii_bec/macros/set_kbox.sh create mode 100644 pxii_bec/macros/test.py_txt create mode 100644 pxii_bec/macros/update_PD_from_yaml.py diff --git a/pxii_bec/device_configs.backup/__init__.py b/pxii_bec/device_configs.backup/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/pxii_bec/device_configs.backup/device_config.yaml b/pxii_bec/device_configs.backup/device_config.yaml new file mode 100644 index 0000000..7926fec --- /dev/null +++ b/pxii_bec/device_configs.backup/device_config.yaml @@ -0,0 +1,792 @@ +sls_current: + description: SLS current + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'ARS07-DPCT-0100:CURR', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - SLS + readOnly: true + softwareTrigger: false +ps1_press: + description: Photon shutter 1 pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-FE-PSH1-VMCC-1010:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +abs_press: + description: Absorber pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-FE-VMCC-0000:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +lu_bpmsum: + description: LU BPM Summed + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-LUBPM:SumAll:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +ss_bpmsum: + description: SS BPM Summed + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-SSBPM1:SumAll:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +ps3_press: + description: Pumpstand 3 pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-FE-PUM3-VMCC-2010:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +bsf_press: + description: BSF pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-BSF-VMFR-0010:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +bb1_press: + description: BB1 pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-BBU-VMFR-1010:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +dcm_press: + description: DCM pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-DCM-VMFR-3010:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +bb2_press: + description: BB2 pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-BBD-VMFR-4010:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +lu_press: + description: LU pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-LU-VMFR-5010:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +ps2_press: + description: Photon shutter 2 pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-PSH1-VMFR-7010:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +ss_press: + description: SS pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-SS1-VMFR-0010:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +kb_press: + description: KBV pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-KBV-VMFR-0010:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +bcu_press: + description: BCU pressure + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-BCU-VMFR-0010:PRESSURE', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - press + readOnly: true + softwareTrigger: false +fe_sxr: + description: 'FE Slit X Ring' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-FE-SLDI:TRXR'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_syt: + description: 'FE Slit Y top' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-FE-SLDI:TRYT'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_sxw: + description: 'FE Slit X Wall' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-FE-SLDI:TRXW'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_syb: + description: 'FE SlitY Bottom' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-FE-SLDI:TRYB'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_sxcen: + description: 'FE Slit X Centre' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-FE-SLDI:CENTERX'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_sxsize: + description: 'FE Slit X Size' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-FE-SLDI:SIZEX'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_sycen: + description: 'FE Slit Y Centre' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-FE-SLDI:CENTERY'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_sysize: + description: 'FE Slit Y Size' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-FE-SLDI:SIZEY'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - fe + readOnly: false + softwareTrigger: false +s1_xw: + description: 'BSF slit outboard' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-SLH:TRXW'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_xr: + description: 'BSF slit inboard' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-SLH:TRXR'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_yt: + description: 'BSF slit top' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-SLV:TRYT'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_yb: + description: 'BSF slit bottom' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-SLV:TRYB'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_xcen: + description: 'BSF X centre' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-SLH:CENTER'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_xsize: + description: 'BSF X size' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-SLH:SIZE'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_ycen: + description: 'BSF Y centre' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-SLV:CENTER'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +opf1_y: + description: 'BSF Filter 1 Y' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-FI1:TRY'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +opf2_y: + description: 'BSF Filter 2 Y' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-FI2:TRY'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +dcm_bragg: + description: 'DCM Bragg angle' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-DCM:ROTY'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +dcm_x: + description: 'DCM lateral' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-DCM:TRX'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +dcm_perp: + description: 'DCM Perp' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-DCM:TRX-C2'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +dcm_pitch: + description: 'DCM 2nd crystal pitch' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-DCM:ROTY-C2'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +ssbpm_x: + description: 'SS BPM X' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSBPM1:TRX1'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +ssbpm_y: + description: 'SS BPM Y' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSBPM1:TRY1'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +s2_xw: + description: 'SS slit wall' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSSH1:TRXW'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +s2_xr: + description: 'SS slit ring' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSSH1:TRXR'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +s2_xcen: + description: 'SS slit X centre' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSSH1:CENTER'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +s2_xsize: + description: 'SS slit X size' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSSH1:CENTER'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +s2_yt: + description: 'SS slit top' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSSV1:TRYT'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +s2_yb: + description: 'SS slit bottom' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSSV1:TRYB'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +s2_ycen: + description: 'SS slit Y centre' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSSV1:CENTER'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +s2_ysize: + description: 'SS slit Y size' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSSV1:SIZE'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +xeye_x: + description: 'SS X-ray eye X' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSXI1:TRX1'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +xeye_y: + description: 'SS X-ray eye Y' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-SSXI1:TRY1'} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: false + softwareTrigger: false +vfm_xu: + description: 'VFM Upstream X' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:TRXU'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_xd: + description: 'VFM Downstream X' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:TRXD'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_yur: + description: 'VFM Upstream Ring Y' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:TRYUR'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_yw: + description: 'VFM Wall Y' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:TRYW'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_ydr: + description: 'VFM Downstream Ring Y' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:TRYDR'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_bu: + description: 'VFM Upstream Bender' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:BNDU'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_bd: + description: 'VFM Downstream Bender' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:BNDD'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_yaw: + description: 'VFM Virtual Yaw' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:YAW'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_roll: + description: 'VFM Virtual Roll' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:ROLL'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_pitch: + description: 'VFM Virtual Pitch' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:PITCH'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_lat: + description: 'VFM Virtual X' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:TRX'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_vert: + description: 'VFM Virtual Y ' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-VFM:TRY'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +hfm_xu: + description: 'HFM Upstream X' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:TRXU'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_xd: + description: 'HFM Downstream X' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:TRXD'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_yuw: + description: 'HFM Upstream Wall Y' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:TRYUW'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_yr: + description: 'HFM Ring Y' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:TRYR'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_ydw: + description: 'HFM Downstream Wall Y' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:TRYDW'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_bu: + description: 'HFM Upstream Bender' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:BNDU'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_bd: + description: 'HFM Downstream Bender' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:BNDD'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_yaw: + description: 'HFM Virtual Yaw' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:YAW'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_roll: + description: 'HFM Virtual Roll' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:ROLL'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_pitch: + description: 'HFM Virtual Pitch' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:PITCH'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_lat: + description: 'HFM Virtual X' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:TRX'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_vert: + description: 'HFM Virtual Y ' + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-HFM:TRY'} + onFailure: buffer + enabled: False + readoutPriority: monitored + deviceTags: + - hfm + readOnly: false + softwareTrigger: false diff --git a/pxii_bec/device_configs.backup/device_test_reports/report_device_config.txt b/pxii_bec/device_configs.backup/device_test_reports/report_device_config.txt new file mode 100644 index 0000000..f426b47 --- /dev/null +++ b/pxii_bec/device_configs.backup/device_test_reports/report_device_config.txt @@ -0,0 +1,150 @@ +Checking sls_current... +OK +Checking ps1_press... +OK +Checking abs_press... +OK +Checking lu_bpmsum... +OK +Checking ss_bpmsum... +OK +Checking ps3_press... +OK +Checking bsf_press... +OK +Checking bb1_press... +OK +Checking dcm_press... +OK +Checking bb2_press... +OK +Checking lu_press... +OK +Checking ps2_press... +OK +Checking ss_press... +OK +Checking kb_press... +OK +Checking bcu_press... +OK +Checking fe_sxr... +OK +Checking fe_syt... +OK +Checking fe_sxw... +OK +Checking fe_syb... +OK +Checking fe_sxcen... +OK +Checking fe_sxsize... +OK +Checking fe_sycen... +OK +Checking fe_sysize... +OK +Checking s1_xw... +OK +Checking s1_xr... +OK +Checking s1_yt... +OK +Checking s1_yb... +OK +Checking s1_xcen... +OK +Checking s1_xsize... +OK +Checking s1_ycen... +OK +Checking opf1_y... +OK +Checking opf2_y... +OK +Checking dcm_bragg... +OK +Checking dcm_x... +OK +Checking dcm_perp... +OK +Checking dcm_pitch... +OK +Checking ssbpm_x... +OK +Checking ssbpm_y... +OK +Checking s2_xw... +OK +Checking s2_xr... +OK +Checking s2_xcen... +OK +Checking s2_xsize... +OK +Checking s2_yt... +OK +Checking s2_yb... +OK +Checking s2_ycen... +OK +Checking s2_ysize... +OK +Checking xeye_x... +OK +Checking xeye_y... +OK +Checking vfm_xu... +OK +Checking vfm_xd... +OK +Checking vfm_yur... +OK +Checking vfm_yw... +OK +Checking vfm_ydr... +OK +Checking vfm_bu... +OK +Checking vfm_bd... +OK +Checking vfm_yaw... +OK +Checking vfm_roll... +OK +Checking vfm_pitch... +OK +Checking vfm_lat... +OK +Checking vfm_vert... +OK +Checking hfm_xu... +OK +Checking hfm_xd... +OK +Checking hfm_yuw... +OK +Checking hfm_yr... +OK +Checking hfm_ydw... +OK +Checking hfm_bu... +OK +Checking hfm_bd... +OK +Checking hfm_yaw... +OK +Checking hfm_roll... +OK +Checking hfm_pitch... +OK +Checking hfm_lat... +OK +Checking hfm_vert... +OK + + + +======================================== +Summary: +All devices passed the test. diff --git a/pxii_bec/device_configs.backup/device_test_reports/report_x10sa_device_config.txt b/pxii_bec/device_configs.backup/device_test_reports/report_x10sa_device_config.txt new file mode 100644 index 0000000..e5e5795 --- /dev/null +++ b/pxii_bec/device_configs.backup/device_test_reports/report_x10sa_device_config.txt @@ -0,0 +1,118 @@ +Checking sls_current... +OK +Checking ps1_press... +OK +Checking fes_press... +OK +Checking fe_sxr... +OK +Checking fe_syt... +OK +Checking fe_sxw... +OK +Checking fe_syb... +OK +Checking fe_sxcen... +OK +Checking fe_sxsize... +OK +Checking fe_sycen... +OK +Checking fe_sysize... +OK +Checking s1_xw... +OK +Checking s1_xr... +OK +Checking s1_yt... +OK +Checking s1_yb... +OK +Checking s1_xcen... +OK +Checking s1_xsize... +OK +Checking s1_ycen... +OK +Checking opf1_y... +OK +Checking opf2_y... +OK +Checking ssbpm_x... +OK +Checking ssbpm_y... +OK +Checking s2_xw... +OK +Checking s2_xr... +OK +Checking s2_xcen... +OK +Checking s2_xsize... +OK +Checking s2_yt... +OK +Checking s2_yb... +OK +Checking s2_ycen... +OK +Checking s2_ysize... +OK +Checking xeye_x... +OK +Checking xeye_y... +OK +Checking vfm_xu... +OK +Checking vfm_xd... +OK +Checking vfm_yur... +OK +Checking vfm_yw... +OK +Checking vfm_ydr... +OK +Checking vfm_bu... +OK +Checking vfm_bd... +OK +Checking vfm_yaw... +OK +Checking vfm_roll... +OK +Checking vfm_pitch... +OK +Checking vfm_lat... +OK +Checking vfm_vert... +OK +Checking hfm_xu... +OK +Checking hfm_xd... +OK +Checking hfm_yuw... +OK +Checking hfm_yr... +OK +Checking hfm_ydw... +OK +Checking hfm_bu... +OK +Checking hfm_bd... +OK +Checking hfm_yaw... +OK +Checking hfm_roll... +OK +Checking hfm_pitch... +OK +Checking hfm_lat... +OK +Checking hfm_vert... +OK + + + +======================================== +Summary: +All devices passed the test. diff --git a/pxii_bec/device_configs.backup/pxii-autogenerated.yaml b/pxii_bec/device_configs.backup/pxii-autogenerated.yaml new file mode 100644 index 0000000..e5078d6 --- /dev/null +++ b/pxii_bec/device_configs.backup/pxii-autogenerated.yaml @@ -0,0 +1,1934 @@ +sls_current: + description: SLS current + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: ARS07-DPCT-0100:CURR + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - SLS + readOnly: true + softwareTrigger: false +fe_bpm1: + description: FE XBPM Signal 1 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-FE-XBPM1:Current1:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +fe_bpm2: + description: FE XBPM Signal 2 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-FE-XBPM1:Current2:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +fe_bpm3: + description: FE XBPM Signal 3 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-FE-XBPM1:Current3:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +fe_bpm4: + description: FE XBPM Signal 4 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-FE-XBPM1:Current4:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +fe_bpmsum: + description: FE XBPM Summed + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-FE-XBPM1:SumAll:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +lu_bpm1: + description: LU BPM Signal 1 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-OP-LUBPM:Current1:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +lu_bpm2: + description: LU BPM Signal 2 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-OP-LUBPM:Current2:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +lu_bpm3: + description: LU BPM Signal 3 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-OP-LUBPM:Current3:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +lu_bpm4: + description: LU BPM Signal 4 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-OP-LUBPM:Current4:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +lu_bpmsum: + description: LU BPM Summed + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-OP-LUBPM:SumAll:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +bsc_bpm1: + description: BSC BPM Signal 1 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-SSBPM1:Current1:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +bsc_bpm2: + description: BSC BPM Signal 2 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-SSBPM1:Current2:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +bsc_bpm3: + description: BSC BPM Signal 3 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-SSBPM1:Current3:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +bsc_bpm4: + description: BSC BPM Signal 4 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-SSBPM1:Current4:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +bsc_bpmsum: + description: BSC BPM Summed + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-SSBPM1:SumAll:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +bcu_bpm1: + description: BCU BPM Signal 1 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-ESBPM1:Current1:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +bcu_bpm2: + description: BCU BPM Signal 2 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-ESBPM1:Current2:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +bcu_bpm3: + description: BCU BPM Signal 3 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-ESBPM1:Current3:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +bcu_bpm4: + description: BCU BPM Signal 4 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-ESBPM1:Current4:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +bcu_bpmsum: + description: BCU BPM Summed + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-ESBPM1:SumAll:MeanValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +i1: + description: i1 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-KBOX_K:READOUT + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +i2: + description: i2 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-XEYE_K:READOUT + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bpm + readOnly: true + softwareTrigger: false +samcam_x: + description: sample cam X + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-SAMCAM:Stats5:CentroidX_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - scam + readOnly: true + softwareTrigger: false +samcam_xsig: + description: sample cam X sigma + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-SAMCAM:Stats5:SigmaX_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - scam + readOnly: true + softwareTrigger: false +samcam_y: + description: sample cam Y + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-SAMCAM:Stats5:CentroidY_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - scam + readOnly: true + softwareTrigger: false +samcam_ysig: + description: sample cam Y sigma + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-SAMCAM:Stats5:SigmaY_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - scam + readOnly: true + softwareTrigger: false +samcam_max: + description: sample cam max value + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-SAMCAM:Stats5:MaxValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - scam + readOnly: true + softwareTrigger: false +samcam_exp: + description: sample cam exp time + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-SAMCAM:cam1:AcquireTime + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - scam + readOnly: false + softwareTrigger: false +samcam_gain: + description: sample cam gain + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-SAMCAM:cam1:Gain + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - scam + readOnly: false + softwareTrigger: false +bsccam_x: + description: BSC cam X + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-SSCAM:Stats5:CentroidX_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: true + softwareTrigger: false +bsccam_y: + description: BSC cam Y + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-SSCAM:Stats5:CentroidY_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: true + softwareTrigger: false +bsccam_max: + description: BSC cam max value + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + read_pv: X10SA-ES-SSCAM:Stats5:MaxValue_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: monitored + deviceTags: + - bsc + readOnly: true + softwareTrigger: false +bsccam_exp: + description: BSC camera exposure + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-ES-SSCAM:cam1:AcquireTime + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +bsccam_gain: + description: BSC camera gain + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-ES-SSCAM:cam1:Gain + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +bsccam_xsig: + description: BSC cam x sigma + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-ES-SSCAM:Stats5:SigmaX_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: true + softwareTrigger: false +bsccam_ysig: + description: BSC can y sigma + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-ES-SSCAM:Stats5:SigmaY_RBV + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: true + softwareTrigger: false +cryo_pos: + description: Cryojet in/out + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-ES-CJ:POS-SET + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false +xrf_pos: + description: XRF det in/out + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-ES-KETEK:POS-SET + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false +bs_pos: + description: Beamstop positioner + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-ES-BS:POS-SET + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false + userParameter: + in: 1 + out: 0 +blight_pos: + description: Backlight positioner + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-ES-BL:POS-SET + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false + userParameter: + in: 1 + out: 0 +blight: + description: Backlight brightness + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-ES-BL:SET + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false +flight: + description: Frontlight brightness + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-ES-FL:SET + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false +det_cov: + description: Detector cover + deviceClass: ophyd.EpicsSignal + deviceConfig: + read_pv: X10SA-ES-DETCOV:SET + auto_monitor: true + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - det + readOnly: false + softwareTrigger: false +fe_bpm_x: + description: FE BPM X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-FE-XBPM1:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_bpm_y: + description: FE BPM Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-FE-XBPM1:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_sxr: + description: FE Slit X Ring + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-FE-SL1:TRXR + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_syt: + description: FE Slit Y top + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-FE-SL1:TRYT + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_sxw: + description: FE Slit X Wall + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-FE-SL1:TRXW + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_syb: + description: FE SlitY Bottom + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-FE-SL1:TRYB + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_sxcen: + description: FE Slit X Centre + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-FE-SL1:CENTERX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_sxsize: + description: FE Slit X Size + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-FE-SL1:SIZEX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_sycen: + description: FE Slit Y Centre + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-FE-SL1:CENTERY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - fe + readOnly: false + softwareTrigger: false +fe_sysize: + description: FE Slit Y Size + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-FE-SL1:SIZEY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - fe + readOnly: false + softwareTrigger: false +s1_xw: + description: BSF slit outboard + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-SLH:TRXW + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_xr: + description: BSF slit inboard + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-SLH:TRXR + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_yt: + description: BSF slit top + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-SLV:TRYT + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_yb: + description: BSF slit bottom + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-SLV:TRYB + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_xcen: + description: BSF X centre + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-SLH:CENTER + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_xsize: + description: BSF X size + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-SLH:SIZE + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_ycen: + description: BSF Y centre + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-SLV:CENTER + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +s1_ysize: + description: BSF Y size + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-SLV:SIZE + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +bsf_f1_y: + description: BSF Filter 1 Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-FI1:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +bsf_f2_y: + description: BSF Filter 2 Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-FI2:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsf + readOnly: false + softwareTrigger: false +dcm_bragg: + description: DCM Bragg angle + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-DCM:ROTY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +dcm_x: + description: DCM lateral + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-DCM:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +dcm_perp: + description: DCM Perp + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-DCM:TRX-C2 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +dcm_pitch: + description: DCM 2nd crystal pitch + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-DCM:ROTY-C2 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +dcm_fpitch: + description: DCM 2nd crystal fine pitch + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-DCM:PITCH-C2 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +dcm_froll: + description: DCM 2nd crystal fine roll + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-DCM:ROLL-C2 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +lu_bpm_x: + description: BPM2 X translation + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUBPM:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +lu_bpm_y: + description: BPM2 Y translation + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUBPM:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +lens_zu: + description: Up lens Z + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUMCS1:TRZ + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +lens_zd: + description: Down lens Z + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUMCS2:TRZ + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_xu: + description: Up Hexapod X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD1:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_yu: + description: Up Hexapod Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD1:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_zu: + description: Up Hexapod Z + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD1:TRZ + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_rotxu: + description: Up Hexapod RotX + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD1:ROTX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_rotyu: + description: Up Hexapod RotY + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD1:ROTY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_rotzu: + description: Up Hexapod RotZ + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD1:ROTZ + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_xd: + description: Down Hexapod X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD2:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_yd: + description: Down Hexapod Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD2:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_zd: + description: Down Hexapod Z + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD2:TRZ + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_rotxd: + description: Down Hexapod RotX + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD2:ROTX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_rotyd: + description: Down Hexapod RotY + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD2:ROTY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +hex_rotzd: + description: Down Hexapod RotZ + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-OP-LUPOD2:ROTZ + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - lu + readOnly: false + softwareTrigger: false +bsc_bpm_x: + description: BSC BPM X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSBPM1:TRX1 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +bsc_bpm_y: + description: BSC BPM Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSBPM1:TRY1 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +bsc_f1_x: + description: BSC Filter 1 X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSFI1:TRX1 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +bsc_f2_x: + description: BSC Filter 2 X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSFI2:TRX1 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +bsc_f3_x: + description: BSC Filter 2 X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSFI3:TRX1 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +bsc_f4_x: + description: BSC Filter 4 X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSFI4:TRX1 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +s2_xw: + description: BSC slit wall + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSSH1:TRXW + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +s2_xr: + description: BSC slit ring + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSSH1:TRXR + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +s2_xcen: + description: BSC slit X centre + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSSH1:CENTER + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +s2_xsize: + description: BSC slit X size + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSSH1:SIZE + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +s2_yt: + description: BSC slit top + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSSV1:TRYT + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +s2_yb: + description: BSC slit bottom + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSSV1:TRYB + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +s2_ycen: + description: BSC slit Y centre + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSSV1:CENTER + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +s2_ysize: + description: BSC slit Y size + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSSV1:SIZE + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +xeye_x: + description: BSC X-ray eye X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSXI1:TRX1 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false + userParameter: + in: 7.5 + out: -2.1 + tol: 1.0 +xeye_y: + description: BSC X-ray eye Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SSXI1:TRY1 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bsc + readOnly: false + softwareTrigger: false +vfm_xu: + description: VFM Upstream X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:TRXU + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_xd: + description: VFM Downstream X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:TRXD + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_yur: + description: VFM Upstream Ring Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:TRYUR + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_yw: + description: VFM Wall Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:TRYW + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_ydr: + description: VFM Downstream Ring Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:TRYDR + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_bu: + description: VFM Upstream Bender + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:BNDU + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_bd: + description: VFM Downstream Bender + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:BNDD + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_yaw: + description: VFM Virtual Yaw + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:YAW + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_roll: + description: VFM Virtual Roll + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:ROLL + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_pitch: + description: VFM Virtual Pitch + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:PITCH + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_lat: + description: VFM Virtual X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +vfm_vert: + description: VFM Virtual Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-VFM:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - vfm + readOnly: false + softwareTrigger: false +hfm_xu: + description: HFM Upstream X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:TRXU + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_xd: + description: HFM Downstream X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:TRXD + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_yuw: + description: HFM Upstream Wall Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:TRYUW + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_yr: + description: HFM Ring Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:TRYR + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_ydw: + description: HFM Downstream Wall Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:TRYDW + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_bu: + description: HFM Upstream Bender + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:BNDU + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_bd: + description: HFM Downstream Bender + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:BNDD + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_yaw: + description: HFM Virtual Yaw + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:YAW + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_roll: + description: HFM Virtual Roll + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:ROLL + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_pitch: + description: HFM Virtual Pitch + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:PITCH + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_lat: + description: HFM Virtual X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +hfm_vert: + description: HFM Virtual Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-HFM:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - hfm + readOnly: false + softwareTrigger: false +bcu_bpm_x: + description: BCU BPM X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-BPM:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bcu + readOnly: false + softwareTrigger: false +bcu_bpm_y: + description: BCU BPM Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-BPM:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bcu + readOnly: false + softwareTrigger: false +s3_xw: + description: BCU slit wall + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SLH:TRXW + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bcu + readOnly: false + softwareTrigger: false +s3_xr: + description: BCU slit ring + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SLH:TRXR + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bcu + readOnly: false + softwareTrigger: false +s3_xcen: + description: BCU slit X centre + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SLH:CENTER + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bcu + readOnly: false + softwareTrigger: false +s3_xsize: + description: BCU slit X size + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SLH:SIZE + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bcu + readOnly: false + softwareTrigger: false +s3_yt: + description: BCU slit top + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SLV:TRYT + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bcu + readOnly: false + softwareTrigger: false +s3_yb: + description: BCU slit bottom + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SLV:TRYB + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bcu + readOnly: false + softwareTrigger: false +s3_ycen: + description: BCU slit Y centre + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SLV:CENTER + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bcu + readOnly: false + softwareTrigger: false +s3_ysize: + description: BCU slit Y size + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SLV:SIZE + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - bcu + readOnly: false + softwareTrigger: false +scam_zoom: + description: Sample cam zoom + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SAMCAM:ZOOM + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - scam + readOnly: false + softwareTrigger: false +coll_x: + description: Collimator X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-COL:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false +coll_y: + description: Collimator Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-COL:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false + userParameter: + in: 41.5 + out: 20.0 + tol: 0.01 +scin_y: + description: Scintillator Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SCL:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false + userParameter: + in: 38.62 + out: 20.0 + tol: 0.2 +i1_y: + description: I1 Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SCL:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false + userParameter: + in: 44.0 + out: 20.0 + tol: 0.1 +scin_z: + description: Scintillator/diode Z + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-SCL:TRZ + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false +cryo_x: + description: Cryojet X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-CJ:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false +bs_x: + description: Beamstop X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-BS:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false + userParameter: + in: 2.45 + out: 2.45 + tol: 0.01 +bs_y: + description: Beamstop Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-BS:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false + userParameter: + in: 0.1 + out: -0.9 + tol: 0.01 +bs_z: + description: Beamstop Z + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-BS:TRZ + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false +xeye2_focus: + description: X-ray eye 2 Focus + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-XEYE:FOCUS + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - det + readOnly: false + softwareTrigger: false +xeye2_zoom: + description: X-ray eye 2 Zoom + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-XEYE:ZOOM + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - det + readOnly: false + softwareTrigger: false +xeye2_x: + description: X-ray eye 2 X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-XEYE:TRX + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - det + readOnly: false + softwareTrigger: false +det_y: + description: Detector Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-DET:TRY + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - det + readOnly: false + softwareTrigger: false +det_z: + description: Detector Z + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-DET:TRZ + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - det + readOnly: false + softwareTrigger: false +gon_x: + description: Goniometer X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-DF1:TRX1 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - det + readOnly: false + softwareTrigger: false +gon_y: + description: Goniometer Y + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-DF1:TRY1 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - det + readOnly: false + softwareTrigger: false +gon_z: + description: Goniometer X + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-DF1:TRZ1 + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - det + readOnly: false + softwareTrigger: false +omega: + description: Omega + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: X10SA-ES-DF1:ROTU + onFailure: buffer + enabled: true + readoutPriority: baseline + deviceTags: + - det + readOnly: false + softwareTrigger: false diff --git a/pxii_bec/device_configs.backup/x10sa_device_config.yaml b/pxii_bec/device_configs.backup/x10sa_device_config.yaml new file mode 100644 index 0000000..e41ad8e --- /dev/null +++ b/pxii_bec/device_configs.backup/x10sa_device_config.yaml @@ -0,0 +1,58 @@ +base_config: + - !include ./pxii-autogenerated.yaml +id_gap: + readoutPriority: baseline + description: undulator gap + deviceClass: pxii_bec.devices.undulator.UndulatorGap + deviceConfig: + prefix: 'X10SA-UIND:' + onFailure: buffer + enabled: true + readOnly: false + softwareTrigger: false +coll_x: + description: Collimator X + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-COL:TRX'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false +dcm_fpitch: + description: DCM 2nd crystal fine pitch + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-DCM:PITCH-C2'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +dcm_froll: + description: DCM 2nd crystal fine roll + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-DCM:ROLL-C2'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - dcm + readOnly: false + softwareTrigger: false + +smargon: + description: REST-based device which connects to Smargopolo + deviceClass: pxii_bec.devices.smargopolo_smargon.Smargon + deviceConfig: {prefix: 'http://x10sa-smargopolo.psi.ch:3000'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - smargon + - motors + readOnly: false + softwareTrigger: false \ No newline at end of file diff --git a/pxii_bec/device_configs.backup/x10sa_device_config_testing.yaml b/pxii_bec/device_configs.backup/x10sa_device_config_testing.yaml new file mode 100644 index 0000000..85c6592 --- /dev/null +++ b/pxii_bec/device_configs.backup/x10sa_device_config_testing.yaml @@ -0,0 +1,99 @@ +base_config: + - !include ./pxii-autogenerated.yaml +id_gap: + readoutPriority: baseline + description: undulator gap + deviceClass: pxii_bec.devices.undulator.UndulatorGap + deviceConfig: + prefix: 'X10SA-UIND:' + onFailure: buffer + enabled: true + readOnly: false + softwareTrigger: false +coll_x: + description: Collimator X + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-COL:TRX'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - se + readOnly: false + softwareTrigger: false +dcm_fpitch: + description: DCM 2nd crystal fine pitch + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-DCM:PITCH-C2'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - dcm + readOnly: false + softwareTrigger: false +dcm_froll: + description: DCM 2nd crystal fine roll + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-OP-DCM:ROLL-C2'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - dcm + readOnly: false + softwareTrigger: false + +bcu_xasym: + description: horizontal asymmetry + deviceClass: ophyd_devices.ComputedSignal + deviceConfig: + compute_method: "def compute_xasym(signal1, signal2, signal3, signal4):\n return (signal3.get()+signal4.get() - signal1.get()- signal2.get())/(sum((signal1.get(), signal2.get(), signal3.get(), signal4.get())))" + input_signals: + - "bcu_bpm1" + - "bcu_bpm2" + - "bcu_bpm3" + - "bcu_bpm4" + enabled: true + readOnly: false + readoutPriority: baseline + +bcu_yasym: + description: vertical asymmetry + deviceClass: ophyd_devices.ComputedSignal + deviceConfig: + compute_method: "def compute_xasym(signal1, signal2, signal3, signal4):\n return (signal1.get()+signal2.get() - signal3.get()- signal4.get())/(sum((signal1.get(), signal2.get(), signal3.get(), signal4.get())))" + input_signals: + - "bcu_bpm1" + - "bcu_bpm2" + - "bcu_bpm3" + - "bcu_bpm4" + enabled: true + readOnly: false + readoutPriority: baseline + +bcu_xpos: + description: horizontal position + deviceClass: ophyd_devices.ComputedSignal + deviceConfig: + compute_method: "def compute_xpos(signal1):\n import numpy as np\n return 0.131786+ np.arctanh((signal1.get()-0.007105) /0.99342) / 9.5597 " + input_signals: + - "bcu_xasym" + enabled: true + readOnly: false + readoutPriority: baseline + +bcu_ypos: + description: vertical position + deviceClass: ophyd_devices.ComputedSignal + deviceConfig: + compute_method: "def compute_ypos(signal1):\n import numpy as np\n return -0.20283 + np.arctanh((signal1.get()- (-0.19936)) /0.80653) / (-13.18539)" + input_signals: + - "bcu_yasym" + enabled: true + readOnly: false + readoutPriority: baseline + + + + diff --git a/pxii_bec/device_configs/pxii-autogenerated.yaml b/pxii_bec/device_configs/pxii-autogenerated.yaml index e5078d6..b6ae89b 100644 --- a/pxii_bec/device_configs/pxii-autogenerated.yaml +++ b/pxii_bec/device_configs/pxii-autogenerated.yaml @@ -1,1934 +1,1918 @@ sls_current: description: SLS current deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: ARS07-DPCT-0100:CURR - auto_monitor: true + deviceConfig: {read_pv: 'ARS07-DPCT-0100:CURR', auto_monitor: true} onFailure: buffer - enabled: true + enabled: True readoutPriority: monitored deviceTags: - - SLS - readOnly: true + - SLS + readOnly: True softwareTrigger: false + fe_bpm1: description: FE XBPM Signal 1 deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-FE-XBPM1:Current1:MeanValue_RBV - auto_monitor: true + deviceConfig: {read_pv: 'X10SA-FE-XBPM1:Current1:MeanValue_RBV', auto_monitor: true} onFailure: buffer - enabled: true + enabled: True readoutPriority: monitored deviceTags: - - bpm - readOnly: true + - bpm + readOnly: True softwareTrigger: false + fe_bpm2: description: FE XBPM Signal 2 deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-FE-XBPM1:Current2:MeanValue_RBV - auto_monitor: true + deviceConfig: {read_pv: 'X10SA-FE-XBPM1:Current2:MeanValue_RBV', auto_monitor: true} onFailure: buffer - enabled: true + enabled: True readoutPriority: monitored deviceTags: - - bpm - readOnly: true + - bpm + readOnly: True softwareTrigger: false + fe_bpm3: description: FE XBPM Signal 3 deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-FE-XBPM1:Current3:MeanValue_RBV - auto_monitor: true + deviceConfig: {read_pv: 'X10SA-FE-XBPM1:Current3:MeanValue_RBV', auto_monitor: true} onFailure: buffer - enabled: true + enabled: True readoutPriority: monitored deviceTags: - - bpm - readOnly: true + - bpm + readOnly: True softwareTrigger: false + fe_bpm4: description: FE XBPM Signal 4 deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-FE-XBPM1:Current4:MeanValue_RBV - auto_monitor: true + deviceConfig: {read_pv: 'X10SA-FE-XBPM1:Current4:MeanValue_RBV', auto_monitor: true} onFailure: buffer - enabled: true + enabled: True readoutPriority: monitored deviceTags: - - bpm - readOnly: true + - bpm + readOnly: True softwareTrigger: false + fe_bpmsum: description: FE XBPM Summed deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-FE-XBPM1:SumAll:MeanValue_RBV - auto_monitor: true + deviceConfig: {read_pv: 'X10SA-FE-XBPM1:SumAll:MeanValue_RBV', auto_monitor: true} onFailure: buffer - enabled: true + enabled: True readoutPriority: monitored deviceTags: - - bpm - readOnly: true - softwareTrigger: false -lu_bpm1: - description: LU BPM Signal 1 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-OP-LUBPM:Current1:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -lu_bpm2: - description: LU BPM Signal 2 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-OP-LUBPM:Current2:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -lu_bpm3: - description: LU BPM Signal 3 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-OP-LUBPM:Current3:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -lu_bpm4: - description: LU BPM Signal 4 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-OP-LUBPM:Current4:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -lu_bpmsum: - description: LU BPM Summed - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-OP-LUBPM:SumAll:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -bsc_bpm1: - description: BSC BPM Signal 1 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-SSBPM1:Current1:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -bsc_bpm2: - description: BSC BPM Signal 2 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-SSBPM1:Current2:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -bsc_bpm3: - description: BSC BPM Signal 3 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-SSBPM1:Current3:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -bsc_bpm4: - description: BSC BPM Signal 4 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-SSBPM1:Current4:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -bsc_bpmsum: - description: BSC BPM Summed - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-SSBPM1:SumAll:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -bcu_bpm1: - description: BCU BPM Signal 1 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-ESBPM1:Current1:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -bcu_bpm2: - description: BCU BPM Signal 2 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-ESBPM1:Current2:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -bcu_bpm3: - description: BCU BPM Signal 3 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-ESBPM1:Current3:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -bcu_bpm4: - description: BCU BPM Signal 4 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-ESBPM1:Current4:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -bcu_bpmsum: - description: BCU BPM Summed - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-ESBPM1:SumAll:MeanValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -i1: - description: i1 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-KBOX_K:READOUT - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -i2: - description: i2 - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-XEYE_K:READOUT - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bpm - readOnly: true - softwareTrigger: false -samcam_x: - description: sample cam X - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-SAMCAM:Stats5:CentroidX_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - scam - readOnly: true - softwareTrigger: false -samcam_xsig: - description: sample cam X sigma - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-SAMCAM:Stats5:SigmaX_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - scam - readOnly: true - softwareTrigger: false -samcam_y: - description: sample cam Y - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-SAMCAM:Stats5:CentroidY_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - scam - readOnly: true - softwareTrigger: false -samcam_ysig: - description: sample cam Y sigma - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-SAMCAM:Stats5:SigmaY_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - scam - readOnly: true - softwareTrigger: false -samcam_max: - description: sample cam max value - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-SAMCAM:Stats5:MaxValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - scam - readOnly: true - softwareTrigger: false -samcam_exp: - description: sample cam exp time - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-SAMCAM:cam1:AcquireTime - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - scam - readOnly: false - softwareTrigger: false -samcam_gain: - description: sample cam gain - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-SAMCAM:cam1:Gain - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - scam - readOnly: false - softwareTrigger: false -bsccam_x: - description: BSC cam X - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-SSCAM:Stats5:CentroidX_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - bsc - readOnly: true - softwareTrigger: false -bsccam_y: - description: BSC cam Y - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-SSCAM:Stats5:CentroidY_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - bsc - readOnly: true - softwareTrigger: false -bsccam_max: - description: BSC cam max value - deviceClass: ophyd.EpicsSignalRO - deviceConfig: - read_pv: X10SA-ES-SSCAM:Stats5:MaxValue_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: monitored - deviceTags: - - bsc - readOnly: true - softwareTrigger: false -bsccam_exp: - description: BSC camera exposure - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-ES-SSCAM:cam1:AcquireTime - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - bsc - readOnly: false - softwareTrigger: false -bsccam_gain: - description: BSC camera gain - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-ES-SSCAM:cam1:Gain - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - bsc - readOnly: false - softwareTrigger: false -bsccam_xsig: - description: BSC cam x sigma - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-ES-SSCAM:Stats5:SigmaX_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - bsc - readOnly: true - softwareTrigger: false -bsccam_ysig: - description: BSC can y sigma - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-ES-SSCAM:Stats5:SigmaY_RBV - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - bsc - readOnly: true - softwareTrigger: false -cryo_pos: - description: Cryojet in/out - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-ES-CJ:POS-SET - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - se - readOnly: false - softwareTrigger: false -xrf_pos: - description: XRF det in/out - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-ES-KETEK:POS-SET - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - se - readOnly: false - softwareTrigger: false -bs_pos: - description: Beamstop positioner - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-ES-BS:POS-SET - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - se - readOnly: false - softwareTrigger: false - userParameter: - in: 1 - out: 0 -blight_pos: - description: Backlight positioner - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-ES-BL:POS-SET - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - se - readOnly: false - softwareTrigger: false - userParameter: - in: 1 - out: 0 -blight: - description: Backlight brightness - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-ES-BL:SET - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - se - readOnly: false - softwareTrigger: false -flight: - description: Frontlight brightness - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-ES-FL:SET - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - se - readOnly: false - softwareTrigger: false -det_cov: - description: Detector cover - deviceClass: ophyd.EpicsSignal - deviceConfig: - read_pv: X10SA-ES-DETCOV:SET - auto_monitor: true - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - det - readOnly: false + - bpm + readOnly: True softwareTrigger: false + fe_bpm_x: description: FE BPM X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-FE-XBPM1:TRX + deviceConfig: {prefix: 'X10SA-FE-XBPM1:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - fe - readOnly: false + - fe + readOnly: False softwareTrigger: false + fe_bpm_y: description: FE BPM Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-FE-XBPM1:TRY + deviceConfig: {prefix: 'X10SA-FE-XBPM1:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - fe - readOnly: false + - fe + readOnly: False softwareTrigger: false -fe_sxr: + +fe_sl_xr: description: FE Slit X Ring deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-FE-SL1:TRXR + deviceConfig: {prefix: 'X10SA-FE-SL1:TRXR'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - fe - readOnly: false + - fe + readOnly: False softwareTrigger: false -fe_syt: + +fe_sl_yt: description: FE Slit Y top deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-FE-SL1:TRYT + deviceConfig: {prefix: 'X10SA-FE-SL1:TRYT'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - fe - readOnly: false + - fe + readOnly: False softwareTrigger: false -fe_sxw: + +fe_sl_xw: description: FE Slit X Wall deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-FE-SL1:TRXW + deviceConfig: {prefix: 'X10SA-FE-SL1:TRXW'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - fe - readOnly: false + - fe + readOnly: False softwareTrigger: false -fe_syb: + +fe_sl_yb: description: FE SlitY Bottom deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-FE-SL1:TRYB + deviceConfig: {prefix: 'X10SA-FE-SL1:TRYB'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - fe - readOnly: false + - fe + readOnly: False softwareTrigger: false -fe_sxcen: + +fe_sl_xcen: description: FE Slit X Centre deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-FE-SL1:CENTERX + deviceConfig: {prefix: 'X10SA-FE-SL1:CENTERX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - fe - readOnly: false + - fe + readOnly: False softwareTrigger: false -fe_sxsize: + +fe_sl_xsize: description: FE Slit X Size deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-FE-SL1:SIZEX + deviceConfig: {prefix: 'X10SA-FE-SL1:SIZEX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - fe - readOnly: false + - fe + readOnly: False softwareTrigger: false -fe_sycen: + +fe_sl_ycen: description: FE Slit Y Centre deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-FE-SL1:CENTERY + deviceConfig: {prefix: 'X10SA-FE-SL1:CENTERY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - fe - readOnly: false + - fe + readOnly: False softwareTrigger: false -fe_sysize: + +fe_sl_ysize: description: FE Slit Y Size deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-FE-SL1:SIZEY + deviceConfig: {prefix: 'X10SA-FE-SL1:SIZEY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - fe - readOnly: false + - fe + readOnly: False softwareTrigger: false -s1_xw: + +bsf_sl_xw: description: BSF slit outboard deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-SLH:TRXW + deviceConfig: {prefix: 'X10SA-OP-BSFSLH:TRXW'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsf - readOnly: false + - bsf + readOnly: False softwareTrigger: false -s1_xr: + +bsf_sl_xr: description: BSF slit inboard deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-SLH:TRXR + deviceConfig: {prefix: 'X10SA-OP-BSFSLH:TRXR'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsf - readOnly: false + - bsf + readOnly: False softwareTrigger: false -s1_yt: + +bsf_sl_yt: description: BSF slit top deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-SLV:TRYT + deviceConfig: {prefix: 'X10SA-OP-BSFSLV:TRYT'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsf - readOnly: false + - bsf + readOnly: False softwareTrigger: false -s1_yb: + +bsf_sl_yb: description: BSF slit bottom deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-SLV:TRYB + deviceConfig: {prefix: 'X10SA-OP-BSFSLV:TRYB'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsf - readOnly: false + - bsf + readOnly: False softwareTrigger: false -s1_xcen: + +bsf_sl_xcen: description: BSF X centre deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-SLH:CENTER + deviceConfig: {prefix: 'X10SA-OP-BSFSLH:CENTER'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsf - readOnly: false + - bsf + readOnly: False softwareTrigger: false -s1_xsize: + +bsf_sl_xsize: description: BSF X size deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-SLH:SIZE + deviceConfig: {prefix: 'X10SA-OP-BSFSLH:SIZE'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsf - readOnly: false + - bsf + readOnly: False softwareTrigger: false -s1_ycen: + +bsf_sl_ycen: description: BSF Y centre deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-SLV:CENTER + deviceConfig: {prefix: 'X10SA-OP-BSFSLV:CENTER'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsf - readOnly: false + - bsf + readOnly: False softwareTrigger: false -s1_ysize: + +bsf_sl_ysize: description: BSF Y size deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-SLV:SIZE + deviceConfig: {prefix: 'X10SA-OP-BSFSLV:SIZE'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsf - readOnly: false + - bsf + readOnly: False softwareTrigger: false + bsf_f1_y: description: BSF Filter 1 Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-FI1:TRY + deviceConfig: {prefix: 'X10SA-OP-BSFFI1:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsf - readOnly: false + - bsf + readOnly: False softwareTrigger: false + bsf_f2_y: description: BSF Filter 2 Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-FI2:TRY + deviceConfig: {prefix: 'X10SA-OP-BSFFI2:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsf - readOnly: false + - bsf + readOnly: False softwareTrigger: false + dcm_bragg: description: DCM Bragg angle deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-DCM:ROTY + deviceConfig: {prefix: 'X10SA-OP-DCM:ROTY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - dcm - readOnly: false + - dcm + readOnly: False softwareTrigger: false + dcm_x: description: DCM lateral deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-DCM:TRX + deviceConfig: {prefix: 'X10SA-OP-DCM:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - dcm - readOnly: false + - dcm + readOnly: False softwareTrigger: false + dcm_perp: description: DCM Perp deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-DCM:TRX-C2 + deviceConfig: {prefix: 'X10SA-OP-DCM:TRX-CR2'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - dcm - readOnly: false + - dcm + readOnly: False softwareTrigger: false + dcm_pitch: description: DCM 2nd crystal pitch deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-DCM:ROTY-C2 + deviceConfig: {prefix: 'X10SA-OP-DCM:ROTY-CR2-PITCH'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - dcm - readOnly: false + - dcm + readOnly: False softwareTrigger: false + dcm_fpitch: description: DCM 2nd crystal fine pitch deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-DCM:PITCH-C2 + deviceConfig: {prefix: 'X10SA-OP-DCM:ROTY-CR2-FINEPITCH'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - dcm - readOnly: false + - dcm + readOnly: False softwareTrigger: false + dcm_froll: description: DCM 2nd crystal fine roll deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-DCM:ROLL-C2 + deviceConfig: {prefix: 'X10SA-OP-DCM:ROTZ-CR2-FINEROLL'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - dcm - readOnly: false + - dcm + readOnly: False softwareTrigger: false + +lu_bpm1: + description: LU BPM Signal 1 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-LUBPM:Current1:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +lu_bpm2: + description: LU BPM Signal 2 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-LUBPM:Current2:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +lu_bpm3: + description: LU BPM Signal 3 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-LUBPM:Current3:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +lu_bpm4: + description: LU BPM Signal 4 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-LUBPM:Current4:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +lu_bpmsum: + description: LU BPM Summed + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-OP-LUBPM:SumAll:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + lu_bpm_x: description: BPM2 X translation deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUBPM:TRX + deviceConfig: {prefix: 'X10SA-OP-LUBPM:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false + lu_bpm_y: description: BPM2 Y translation deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUBPM:TRY + deviceConfig: {prefix: 'X10SA-OP-LUBPM:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -lens_zu: - description: Up lens Z + +lu_z1: + description: Lens Z1 Motion deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUMCS1:TRZ + deviceConfig: {prefix: 'X10SA-OP-LUTRZ1:TRZ'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -lens_zd: - description: Down lens Z + +lu_z2: + description: Lens Z2 Motion deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUMCS2:TRZ + deviceConfig: {prefix: 'X10SA-OP-LUTRZ2:TRZ'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -hex_xu: - description: Up Hexapod X + +lu_pod1_y: + description: SmarPod1 Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD1:TRX + deviceConfig: {prefix: 'X10SA-OP-LUPOD1:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -hex_yu: - description: Up Hexapod Y + +lu_pod1_z: + description: SmarPod1 Z deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD1:TRY + deviceConfig: {prefix: 'X10SA-OP-LUPOD1:TRZ'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -hex_zu: - description: Up Hexapod Z + +lu_pod1_rotx: + description: SmarPod1 RX deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD1:TRZ + deviceConfig: {prefix: 'X10SA-OP-LUPOD1:ROTX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -hex_rotxu: - description: Up Hexapod RotX + +lu_pod1_roty: + description: SmarPod1 RY deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD1:ROTX + deviceConfig: {prefix: 'X10SA-OP-LUPOD1:ROTY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -hex_rotyu: - description: Up Hexapod RotY + +lu_pod1_rotz: + description: SmarPod1 RZ deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD1:ROTY + deviceConfig: {prefix: 'X10SA-OP-LUPOD1:ROTZ'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -hex_rotzu: - description: Up Hexapod RotZ + +lu_pod2_y: + description: SmarPod2 Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD1:ROTZ + deviceConfig: {prefix: 'X10SA-OP-LUPOD2:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -hex_xd: - description: Down Hexapod X + +lu_pod2_z: + description: SmarPod2 Z deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD2:TRX + deviceConfig: {prefix: 'X10SA-OP-LUPOD2:TRZ'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -hex_yd: - description: Down Hexapod Y + +lu_pod2_rotx: + description: SmarPod2 RX deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD2:TRY + deviceConfig: {prefix: 'X10SA-OP-LUPOD2:ROTX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -hex_zd: - description: Down Hexapod Z + +lu_pod2_roty: + description: SmarPod2 RY deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD2:TRZ + deviceConfig: {prefix: 'X10SA-OP-LUPOD2:ROTY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -hex_rotxd: - description: Down Hexapod RotX + +lu_pod2_rotz: + description: SmarPod2 RZ deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD2:ROTX + deviceConfig: {prefix: 'X10SA-OP-LUPOD2:ROTZ'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - lu + readOnly: False softwareTrigger: false -hex_rotyd: - description: Down Hexapod RotY + +ss_bpm1: + description: SS BPM Signal 1 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-SSBPM:Current1:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +ss_bpm2: + description: SS BPM Signal 2 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-SSBPM:Current2:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +ss_bpm3: + description: SS BPM Signal 3 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-SSBPM:Current3:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +ss_bpm4: + description: SS BPM Signal 4 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-SSBPM:Current4:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +ss_bpmsum: + description: SS BPM Summed + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-SSBPM:SumAll:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +ss_bpm_x: + description: SS BPM X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD2:ROTY + deviceConfig: {prefix: 'X10SA-ES-SSBPM:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - ss + readOnly: False softwareTrigger: false -hex_rotzd: - description: Down Hexapod RotZ + +ss_bpm_y: + description: SS BPM Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-OP-LUPOD2:ROTZ + deviceConfig: {prefix: 'X10SA-ES-SSBPM:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - lu - readOnly: false + - ss + readOnly: False softwareTrigger: false -bsc_bpm_x: - description: BSC BPM X + +ss_f1_x: + description: SS Filter 1 X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSBPM1:TRX1 + deviceConfig: {prefix: 'X10SA-ES-SSFI1:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -bsc_bpm_y: - description: BSC BPM Y + +ss_f2_x: + description: SS Filter 2 X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSBPM1:TRY1 + deviceConfig: {prefix: 'X10SA-ES-SSFI2:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -bsc_f1_x: - description: BSC Filter 1 X + +ss_f3_x: + description: SS Filter 2 X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSFI1:TRX1 + deviceConfig: {prefix: 'X10SA-ES-SSFI3:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -bsc_f2_x: - description: BSC Filter 2 X + +ss_f4_x: + description: SS Filter 4 X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSFI2:TRX1 + deviceConfig: {prefix: 'X10SA-ES-SSFI4:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -bsc_f3_x: - description: BSC Filter 2 X + +ss_sl_xw: + description: SS slit wall deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSFI3:TRX1 + deviceConfig: {prefix: 'X10SA-ES-SSSLH:TRXW'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -bsc_f4_x: - description: BSC Filter 4 X + +ss_sl_xr: + description: SS slit ring deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSFI4:TRX1 + deviceConfig: {prefix: 'X10SA-ES-SSSLH:TRXR'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -s2_xw: - description: BSC slit wall + +ss_sl_xcen: + description: SS slit X centre deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSSH1:TRXW + deviceConfig: {prefix: 'X10SA-ES-SSSLH:CENTER'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -s2_xr: - description: BSC slit ring + +ss_sl_xsize: + description: SS slit X size deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSSH1:TRXR + deviceConfig: {prefix: 'X10SA-ES-SSSLH:SIZE'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -s2_xcen: - description: BSC slit X centre + +ss_sl_yt: + description: SS slit top deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSSH1:CENTER + deviceConfig: {prefix: 'X10SA-ES-SSSLV:TRYT'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -s2_xsize: - description: BSC slit X size + +ss_sl_yb: + description: SS slit bottom deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSSH1:SIZE + deviceConfig: {prefix: 'X10SA-ES-SSSLV:TRYB'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -s2_yt: - description: BSC slit top + +ss_sl_ycen: + description: SS slit Y centre deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSSV1:TRYT + deviceConfig: {prefix: 'X10SA-ES-SSSLV:CENTER'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -s2_yb: - description: BSC slit bottom + +ss_sl_ysize: + description: SS slit Y size deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSSV1:TRYB + deviceConfig: {prefix: 'X10SA-ES-SSSLV:SIZE'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -s2_ycen: - description: BSC slit Y centre + +ss_xi_x: + description: SS X-ray eye X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSSV1:CENTER + deviceConfig: {prefix: 'X10SA-ES-SSXI:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -s2_ysize: - description: BSC slit Y size + userParameter: {"type": multi-position,"in": 7.5, "out": -2.1} + +ss_xi_y: + description: SS X-ray eye Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSSV1:SIZE + deviceConfig: {prefix: 'X10SA-ES-SSXI:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: False softwareTrigger: false -xeye_x: - description: BSC X-ray eye X - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSXI1:TRX1 + +ss_xicam_x: + description: ss cam X + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-SSCAM:Stats5:CentroidX_RBV', auto_monitor: true} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: True softwareTrigger: false - userParameter: - in: 7.5 - out: -2.1 - tol: 1.0 -xeye_y: - description: BSC X-ray eye Y - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SSXI1:TRY1 + +ss_xicam_y: + description: ss cam Y + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-SSCAM:Stats5:CentroidY_RBV', auto_monitor: true} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bsc - readOnly: false + - ss + readOnly: True softwareTrigger: false + +ss_xicam_max: + description: ss cam max value + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-SSCAM:Stats5:MaxValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - ss + readOnly: True + softwareTrigger: false + +ss_xicam_exp: + description: ss camera exposure + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-SSCAM:cam1:AcquireTime', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - ss + readOnly: False + softwareTrigger: false + +ss_xicam_gain: + description: ss camera gain + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-SSCAM:cam1:Gain', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - ss + readOnly: False + softwareTrigger: false + +ss_xicam_xsig: + description: ss camera x sigma + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-SSCAM:Stats5:SigmaX_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - ss + readOnly: True + softwareTrigger: false + +ss_xicam_ysig: + description: ss camera y sigma + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-SSCAM:Stats5:SigmaY_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - ss + readOnly: True + softwareTrigger: false + vfm_xu: description: VFM Upstream X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:TRXU + deviceConfig: {prefix: 'X10SA-ES-VFM:TRXU'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false + vfm_xd: description: VFM Downstream X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:TRXD + deviceConfig: {prefix: 'X10SA-ES-VFM:TRXD'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false + vfm_yur: description: VFM Upstream Ring Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:TRYUR + deviceConfig: {prefix: 'X10SA-ES-VFM:TRYUR'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false + vfm_yw: description: VFM Wall Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:TRYW + deviceConfig: {prefix: 'X10SA-ES-VFM:TRYW'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false + vfm_ydr: description: VFM Downstream Ring Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:TRYDR + deviceConfig: {prefix: 'X10SA-ES-VFM:TRYDR'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false + vfm_bu: description: VFM Upstream Bender deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:BNDU + deviceConfig: {prefix: 'X10SA-ES-VFM:BNDU'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false + vfm_bd: description: VFM Downstream Bender deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:BNDD + deviceConfig: {prefix: 'X10SA-ES-VFM:BNDD'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false + vfm_yaw: description: VFM Virtual Yaw deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:YAW + deviceConfig: {prefix: 'X10SA-ES-VFM:YAW'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false + vfm_roll: description: VFM Virtual Roll deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:ROLL + deviceConfig: {prefix: 'X10SA-ES-VFM:ROLL'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false + vfm_pitch: description: VFM Virtual Pitch deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:PITCH + deviceConfig: {prefix: 'X10SA-ES-VFM:PITCH'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false -vfm_lat: + +vfm_x: description: VFM Virtual X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:TRX + deviceConfig: {prefix: 'X10SA-ES-VFM:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false -vfm_vert: - description: VFM Virtual Y + +vfm_y: + description: VFM Virtual Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-VFM:TRY + deviceConfig: {prefix: 'X10SA-ES-VFM:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - vfm - readOnly: false + - vfm + readOnly: False softwareTrigger: false + hfm_xu: description: HFM Upstream X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:TRXU + deviceConfig: {prefix: 'X10SA-ES-HFM:TRXU'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false + hfm_xd: description: HFM Downstream X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:TRXD + deviceConfig: {prefix: 'X10SA-ES-HFM:TRXD'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false + hfm_yuw: description: HFM Upstream Wall Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:TRYUW + deviceConfig: {prefix: 'X10SA-ES-HFM:TRYUW'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false + hfm_yr: description: HFM Ring Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:TRYR + deviceConfig: {prefix: 'X10SA-ES-HFM:TRYR'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false + hfm_ydw: description: HFM Downstream Wall Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:TRYDW + deviceConfig: {prefix: 'X10SA-ES-HFM:TRYDW'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false + hfm_bu: description: HFM Upstream Bender deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:BNDU + deviceConfig: {prefix: 'X10SA-ES-HFM:BNDU'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false + hfm_bd: description: HFM Downstream Bender deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:BNDD + deviceConfig: {prefix: 'X10SA-ES-HFM:BNDD'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false + hfm_yaw: description: HFM Virtual Yaw deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:YAW + deviceConfig: {prefix: 'X10SA-ES-HFM:YAW'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false + hfm_roll: description: HFM Virtual Roll deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:ROLL + deviceConfig: {prefix: 'X10SA-ES-HFM:ROLL'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false + hfm_pitch: description: HFM Virtual Pitch deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:PITCH + deviceConfig: {prefix: 'X10SA-ES-HFM:PITCH'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false -hfm_lat: + +hfm_x: description: HFM Virtual X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:TRX + deviceConfig: {prefix: 'X10SA-ES-HFM:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false -hfm_vert: - description: HFM Virtual Y + +hfm_y: + description: HFM Virtual Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-HFM:TRY + deviceConfig: {prefix: 'X10SA-ES-HFM:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - hfm - readOnly: false + - hfm + readOnly: False softwareTrigger: false + +bcu_bpm1: + description: BCU BPM Signal 1 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-BCBPM:Current1:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +bcu_bpm2: + description: BCU BPM Signal 2 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-BCBPM:Current2:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +bcu_bpm3: + description: BCU BPM Signal 3 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-BCBPM:Current3:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +bcu_bpm4: + description: BCU BPM Signal 4 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-BCBPM:Current4:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +bcu_bpmsum: + description: BCU BPM Summed + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-BCBPM:SumAll:MeanValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + bcu_bpm_x: description: BCU BPM X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-BPM:TRX + deviceConfig: {prefix: 'X10SA-ES-BCBPM:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bcu - readOnly: false + - bcu + readOnly: False softwareTrigger: false + bcu_bpm_y: - description: BCU BPM Y + description: BCU BPM Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-BPM:TRY + deviceConfig: {prefix: 'X10SA-ES-BCBPM:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bcu - readOnly: false + - bcu + readOnly: False softwareTrigger: false -s3_xw: + +bcu_sl_xw: description: BCU slit wall deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SLH:TRXW + deviceConfig: {prefix: 'X10SA-ES-BCSLH:TRXW'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bcu - readOnly: false + - bcu + readOnly: False softwareTrigger: false -s3_xr: + +bcu_sl_xr: description: BCU slit ring deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SLH:TRXR + deviceConfig: {prefix: 'X10SA-ES-BCSLH:TRXR'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bcu - readOnly: false + - bcu + readOnly: False softwareTrigger: false -s3_xcen: + +bcu_sl_xcen: description: BCU slit X centre deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SLH:CENTER + deviceConfig: {prefix: 'X10SA-ES-BCSLH:CENTER'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bcu - readOnly: false + - bcu + readOnly: False softwareTrigger: false -s3_xsize: + +bcu_sl_xsize: description: BCU slit X size deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SLH:SIZE + deviceConfig: {prefix: 'X10SA-ES-BCSLH:SIZE'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bcu - readOnly: false + - bcu + readOnly: False softwareTrigger: false -s3_yt: + +bcu_sl_yt: description: BCU slit top deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SLV:TRYT + deviceConfig: {prefix: 'X10SA-ES-BCSLV:TRYT'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bcu - readOnly: false + - bcu + readOnly: False softwareTrigger: false -s3_yb: + +bcu_sl_yb: description: BCU slit bottom deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SLV:TRYB + deviceConfig: {prefix: 'X10SA-ES-BCSLV:TRYB'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bcu - readOnly: false + - bcu + readOnly: False softwareTrigger: false -s3_ycen: + +bcu_sl_ycen: description: BCU slit Y centre deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SLV:CENTER + deviceConfig: {prefix: 'X10SA-ES-BCSLV:CENTER'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bcu - readOnly: false + - bcu + readOnly: False softwareTrigger: false -s3_ysize: + +bcu_sl_ysize: description: BCU slit Y size deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SLV:SIZE + deviceConfig: {prefix: 'X10SA-ES-BCSLV:SIZE'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - bcu - readOnly: false + - bcu + readOnly: False softwareTrigger: false + +xrf_pos: + description: XRF det in/out + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-XRF:POS-SET', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - se + readOnly: False + softwareTrigger: false + userParameter: {"type":positioner} + +samcam_x: + description: sample cam X + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-MS:Stats5:CentroidX_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - scam + readOnly: True + softwareTrigger: false + +samcam_xsig: + description: sample cam X sigma + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-MS:Stats5:SigmaX_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - scam + readOnly: True + softwareTrigger: false + +samcam_y: + description: sample cam Y + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-MS:Stats5:CentroidY_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - scam + readOnly: True + softwareTrigger: false + +samcam_ysig: + description: sample cam Y sigma + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-MS:Stats5:SigmaY_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - scam + readOnly: True + softwareTrigger: false + +samcam_max: + description: sample cam max value + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-MS:Stats5:MaxValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - scam + readOnly: True + softwareTrigger: false + +samcam_exp: + description: sample cam exp time + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-MS:cam1:AcquireTime', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - scam + readOnly: False + softwareTrigger: false + +samcam_gain: + description: sample cam gain + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-MS:cam1:Gain', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - scam + readOnly: False + softwareTrigger: false + scam_zoom: description: Sample cam zoom deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SAMCAM:ZOOM + deviceConfig: {prefix: 'X10SA-ES-MS:ZOOM'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - scam - readOnly: false + - scam + readOnly: False softwareTrigger: false + +fl_bright: + description: Frontlight brightness + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-FL:SET', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - se + readOnly: False + softwareTrigger: false + coll_x: description: Collimator X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-COL:TRX + deviceConfig: {prefix: 'X10SA-ES-COL:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - se - readOnly: false + - se + readOnly: False softwareTrigger: false + coll_y: description: Collimator Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-COL:TRY + deviceConfig: {prefix: 'X10SA-ES-COL:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - se - readOnly: false + - se + readOnly: False softwareTrigger: false - userParameter: - in: 41.5 - out: 20.0 - tol: 0.01 -scin_y: - description: Scintillator Y + userParameter: {"type": multi-position, "in": 41.5, "out": 20.0, "park": 0,"tol":0.05} + +diag_y: + description: Scintillator/diode Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SCL:TRY + deviceConfig: {prefix: 'X10SA-ES-SCL:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - se - readOnly: false + - se + readOnly: False softwareTrigger: false - userParameter: - in: 38.62 - out: 20.0 - tol: 0.2 -i1_y: - description: I1 Y - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SCL:TRY - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - se - readOnly: false - softwareTrigger: false - userParameter: - in: 44.0 - out: 20.0 - tol: 0.1 -scin_z: + userParameter: {"type": multi-position, "scint": 38.62, "i1": 44.0, "out": 20.0,"park": 0,"tol":0.3} + +diag_z: description: Scintillator/diode Z deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-SCL:TRZ + deviceConfig: {prefix: 'X10SA-ES-SCL:TRZ'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - se - readOnly: false + - se + readOnly: False softwareTrigger: false -cryo_x: - description: Cryojet X - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-CJ:TRX + +i1: + description: i1 diode reading + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-SCLDI:READOUT', auto_monitor: true} onFailure: buffer - enabled: true + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +bl_pos: + description: Backlight positioner + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-BL:POS-SET', auto_monitor: true} + onFailure: buffer + enabled: True readoutPriority: baseline deviceTags: - - se - readOnly: false + - se + readOnly: False softwareTrigger: false + userParameter: {"type":positioner} + +bl_bright: + description: Backlight brightness + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-BL:SET', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - se + readOnly: False + softwareTrigger: false + bs_x: description: Beamstop X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-BS:TRX + deviceConfig: {prefix: 'X10SA-ES-BS:TRX'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - se - readOnly: false + - se + readOnly: False softwareTrigger: false - userParameter: - in: 2.45 - out: 2.45 - tol: 0.01 + bs_y: description: Beamstop Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-BS:TRY + deviceConfig: {prefix: 'X10SA-ES-BS:TRY'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - se - readOnly: false + - se + readOnly: False softwareTrigger: false - userParameter: - in: 0.1 - out: -0.9 - tol: 0.01 + bs_z: description: Beamstop Z deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-BS:TRZ + deviceConfig: {prefix: 'X10SA-ES-BS:TRZ'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - se - readOnly: false + - se + readOnly: False softwareTrigger: false -xeye2_focus: - description: X-ray eye 2 Focus - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-XEYE:FOCUS + userParameter: {"type": guarded, "min": 13, "samp": 15, "work_min": 20, "safe": 41, "max_blin": 42, "max_blout": 70} + +bs_pos: + description: Beamstop positioner + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-BS:POS-SET', auto_monitor: true} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - det - readOnly: false - softwareTrigger: false -xeye2_zoom: - description: X-ray eye 2 Zoom - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-XEYE:ZOOM - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - det - readOnly: false - softwareTrigger: false -xeye2_x: - description: X-ray eye 2 X - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-XEYE:TRX - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - det - readOnly: false - softwareTrigger: false -det_y: - description: Detector Y - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-DET:TRY - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - det - readOnly: false - softwareTrigger: false -det_z: - description: Detector Z - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-DET:TRZ - onFailure: buffer - enabled: true - readoutPriority: baseline - deviceTags: - - det - readOnly: false + - se + readOnly: False softwareTrigger: false + userParameter: {"type":positioner} + gon_x: description: Goniometer X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-DF1:TRX1 + deviceConfig: {prefix: 'X10SA-ES-DF1:TRX1'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - det - readOnly: false + - det + readOnly: False softwareTrigger: false + userParameter: {"type": guarded, "in": 18.0, "out": -10.0, "safe": -100,"tol":0.5} + gon_y: description: Goniometer Y deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-DF1:TRY1 + deviceConfig: {prefix: 'X10SA-ES-DF1:TRY1'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - det - readOnly: false + - det + readOnly: False softwareTrigger: false + gon_z: description: Goniometer X deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-DF1:TRZ1 + deviceConfig: {prefix: 'X10SA-ES-DF1:TRZ1'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - det - readOnly: false + - det + readOnly: False softwareTrigger: false + omega: description: Omega deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: X10SA-ES-DF1:ROTU + deviceConfig: {prefix: 'X10SA-ES-DF1:ROTU'} onFailure: buffer - enabled: true + enabled: True readoutPriority: baseline deviceTags: - - det - readOnly: false + - det + readOnly: False softwareTrigger: false + +cryo_pos: + description: Cryo positioner + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-CS:POS-SET', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - se + readOnly: False + softwareTrigger: false + userParameter: {"type":positioner} + +cryo_x: + description: Cryojet X + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-CS:TRX'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - se + readOnly: False + softwareTrigger: false + +det_xi_focus: + description: X-ray eye 2 Focus + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-XEYE:FOCUS'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - detxi + readOnly: False + softwareTrigger: false + +det_xi_zoom: + description: X-ray eye 2 Zoom + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-XEYE:ZOOM'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - detxi + readOnly: False + softwareTrigger: false + +det_xi_x: + description: X-ray eye X + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-XEYE:TRX'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - detxi + readOnly: False + softwareTrigger: false + +i2: + description: i2 + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-XEYEDI:READOUT', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - bpm + readOnly: True + softwareTrigger: false + +det_xicam_x: + description: sample cam X + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-XEYE:Stats5:CentroidX_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - detxi + readOnly: True + softwareTrigger: false + +det_xicam_xsig: + description: sample cam X sigma + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-XEYE:Stats5:SigmaX_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - detxi + readOnly: True + softwareTrigger: false + +det_xicam_y: + description: sample cam Y + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-XEYE:Stats5:CentroidY_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - detxi + readOnly: True + softwareTrigger: false + +det_xicam_ysig: + description: sample cam Y sigma + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-XEYE:Stats5:SigmaY_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - detxi + readOnly: True + softwareTrigger: false + +det_xicam_max: + description: sample cam max value + deviceClass: ophyd.EpicsSignalRO + deviceConfig: {read_pv: 'X10SA-ES-XEYE:Stats5:MaxValue_RBV', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: monitored + deviceTags: + - detxi + readOnly: True + softwareTrigger: false + +det_xicam_exp: + description: sample cam exp time + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-XEYE:cam1:AcquireTime', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - detxi + readOnly: False + softwareTrigger: false + +det_xicam_gain: + description: sample cam gain + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-XEYE:cam1:Gain', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - detxi + readOnly: False + softwareTrigger: false + +det_cov: + description: Detector cover + deviceClass: ophyd.EpicsSignal + deviceConfig: {read_pv: 'X10SA-ES-DETCOV:SET', auto_monitor: true} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - det + readOnly: False + softwareTrigger: false + userParameter: {"type":positioner} + +det_y: + description: Detector Y + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-DET:TRY'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - det + readOnly: False + softwareTrigger: false + +det_z: + description: Detector Z + deviceClass: ophyd.EpicsMotor + deviceConfig: {prefix: 'X10SA-ES-DET:TRZ'} + onFailure: buffer + enabled: True + readoutPriority: baseline + deviceTags: + - det + readOnly: False + softwareTrigger: false + diff --git a/pxii_bec/device_configs/pxii-devices-new.csv b/pxii_bec/device_configs/pxii-devices-new.csv new file mode 100644 index 0000000..4a2a020 --- /dev/null +++ b/pxii_bec/device_configs/pxii-devices-new.csv @@ -0,0 +1,169 @@ +name,description,deviceClass,PV,readoutPriority,tag,readOnly,include,userParameter, +sls_current,SLS current,SignalRO,ARS07-DPCT-0100:CURR,monitored,SLS,yes,yes,, +fe_bpm1,FE XBPM Signal 1,SignalRO,X10SA-FE-XBPM1:Current1:MeanValue_RBV,monitored,bpm,yes,yes,, +fe_bpm2,FE XBPM Signal 2,SignalRO,X10SA-FE-XBPM1:Current2:MeanValue_RBV,monitored,bpm,yes,yes,, +fe_bpm3,FE XBPM Signal 3,SignalRO,X10SA-FE-XBPM1:Current3:MeanValue_RBV,monitored,bpm,yes,yes,, +fe_bpm4,FE XBPM Signal 4,SignalRO,X10SA-FE-XBPM1:Current4:MeanValue_RBV,monitored,bpm,yes,yes,, +fe_bpmsum,FE XBPM Summed,SignalRO,X10SA-FE-XBPM1:SumAll:MeanValue_RBV,monitored,bpm,yes,yes,, +fe_bpm_x,FE BPM X,Motor,X10SA-FE-XBPM1:TRX,baseline,fe,no,yes,, +fe_bpm_y,FE BPM Y,Motor,X10SA-FE-XBPM1:TRY,baseline,fe,no,yes,, +fe_sl_xr,FE Slit X Ring,Motor,X10SA-FE-SL1:TRXR,baseline,fe,no,yes,, +fe_sl_yt,FE Slit Y top,Motor,X10SA-FE-SL1:TRYT,baseline,fe,no,yes,, +fe_sl_xw,FE Slit X Wall,Motor,X10SA-FE-SL1:TRXW,baseline,fe,no,yes,, +fe_sl_yb,FE SlitY Bottom,Motor,X10SA-FE-SL1:TRYB,baseline,fe,no,yes,, +fe_sl_xcen,FE Slit X Centre,Motor,X10SA-FE-SL1:CENTERX,baseline,fe,no,yes,, +fe_sl_xsize,FE Slit X Size,Motor,X10SA-FE-SL1:SIZEX,baseline,fe,no,yes,, +fe_sl_ycen,FE Slit Y Centre,Motor,X10SA-FE-SL1:CENTERY,baseline,fe,no,yes,, +fe_sl_ysize,FE Slit Y Size,Motor,X10SA-FE-SL1:SIZEY,baseline,fe,no,yes,, +bsf_bpm1,BSF BPM Signal 1,SignalRO,X10SA-OP-BSFBPM:SIGNAL1,monitored,bpm,yes,no,, +bsf_bpm2,BSF BPM Signal 2,SignalRO,X10SA-OP-BSFBPM:SIGNAL2,monitored,bpm,yes,no,, +bsf_bpm3,BSF BPM Signal 3,SignalRO,X10SA-OP-BSFBPM:SIGNAL3,monitored,bpm,yes,no,, +bsf_bpm4,BSF BPM Signal 4,SignalRO,X10SA-OP-BSFBPM:SIGNAL4,monitored,bpm,yes,no,, +bsf_bpmsum,BSF BPM Summed,SignalRO,X10SA-OP-BSFBPM:SUM,monitored,bpm,yes,no,, +bsf_sl_xw,BSF slit outboard,Motor,X10SA-OP-BSFSLH:TRXW,baseline,bsf,no,yes,, +bsf_sl_xr,BSF slit inboard,Motor,X10SA-OP-BSFSLH:TRXR,baseline,bsf,no,yes,, +bsf_sl_yt,BSF slit top,Motor,X10SA-OP-BSFSLV:TRYT,baseline,bsf,no,yes,, +bsf_sl_yb,BSF slit bottom,Motor,X10SA-OP-BSFSLV:TRYB,baseline,bsf,no,yes,, +bsf_sl_xcen,BSF X centre,Motor,X10SA-OP-BSFSLH:CENTER,baseline,bsf,no,yes,, +bsf_sl_xsize,BSF X size,Motor,X10SA-OP-BSFSLH:SIZE,baseline,bsf,no,yes,, +bsf_sl_ycen,BSF Y centre,Motor,X10SA-OP-BSFSLV:CENTER,baseline,bsf,no,yes,, +bsf_sl_ysize,BSF Y size,Motor,X10SA-OP-BSFSLV:SIZE,baseline,bsf,no,yes,, +bsf_f1_y,BSF Filter 1 Y,Motor,X10SA-OP-BSFFI1:TRY,baseline,bsf,no,yes,, +bsf_f2_y,BSF Filter 2 Y,Motor,X10SA-OP-BSFFI2:TRY,baseline,bsf,no,yes,, +dcm_bragg,DCM Bragg angle,Motor,X10SA-OP-DCM:ROTY,baseline,dcm,no,yes,, +dcm_x,DCM lateral,Motor,X10SA-OP-DCM:TRX,baseline,dcm,no,yes,, +dcm_perp,DCM Perp,Motor,X10SA-OP-DCM:TRX-CR2,baseline,dcm,no,yes,, +dcm_pitch,DCM 2nd crystal pitch,Motor,X10SA-OP-DCM:ROTY-CR2-PITCH,baseline,dcm,no,yes,, +dcm_fpitch,DCM 2nd crystal fine pitch,Motor,X10SA-OP-DCM:ROTY-CR2-FINEPITCH,baseline,dcm,no,yes,, +dcm_froll,DCM 2nd crystal fine roll,Motor,X10SA-OP-DCM:ROTZ-CR2-FINEROLL,baseline,dcm,no,yes,, +lu_bpm1,LU BPM Signal 1,SignalRO,X10SA-OP-LUBPM:Current1:MeanValue_RBV,monitored,bpm,yes,yes,, +lu_bpm2,LU BPM Signal 2,SignalRO,X10SA-OP-LUBPM:Current2:MeanValue_RBV,monitored,bpm,yes,yes,, +lu_bpm3,LU BPM Signal 3,SignalRO,X10SA-OP-LUBPM:Current3:MeanValue_RBV,monitored,bpm,yes,yes,, +lu_bpm4,LU BPM Signal 4,SignalRO,X10SA-OP-LUBPM:Current4:MeanValue_RBV,monitored,bpm,yes,yes,, +lu_bpmsum,LU BPM Summed,SignalRO,X10SA-OP-LUBPM:SumAll:MeanValue_RBV,monitored,bpm,yes,yes,, +lu_bpm_x,BPM2 X translation,Motor,X10SA-OP-LUBPM:TRX,baseline,lu,no,yes,, +lu_bpm_y,BPM2 Y translation,Motor,X10SA-OP-LUBPM:TRY,baseline,lu,no,yes,, +lu_z1,Lens Z1 Motion,Motor,X10SA-OP-LUTRZ1:TRZ,baseline,lu,no,yes,, +lu_z2,Lens Z2 Motion,Motor,X10SA-OP-LUTRZ2:TRZ,baseline,lu,no,yes,, +lu_pod1_x,SmarPod1 X,Motor,X10SA-OP-LUPOD1:TRX1,baseline,lu,no,no,, +lu_lens1_x2,Lenses1 X,Motor,X10SA-OP-LUPOD1:TRX2,baseline,lu,no,no,, +lu_pod1_y,SmarPod1 Y,Motor,X10SA-OP-LUPOD1:TRY,baseline,lu,no,yes,, +lu_pod1_z,SmarPod1 Z,Motor,X10SA-OP-LUPOD1:TRZ,baseline,lu,no,yes,, +lu_pod1_rotx,SmarPod1 RX,Motor,X10SA-OP-LUPOD1:ROTX,baseline,lu,no,yes,, +lu_pod1_roty,SmarPod1 RY,Motor,X10SA-OP-LUPOD1:ROTY,baseline,lu,no,yes,, +lu_pod1_rotz,SmarPod1 RZ,Motor,X10SA-OP-LUPOD1:ROTZ,baseline,lu,no,yes,, +lu_pod2_x,SmarPod2 X,Motor,X10SA-OP-LUPOD2:TRX1,baseline,lu,no,no,, +lu_lens2_x2,Lenses2 X,Motor,X10SA-OP-LUPOD2:TRX2,baseline,lu,no,no,, +lu_pod2_y,SmarPod2 Y,Motor,X10SA-OP-LUPOD2:TRY,baseline,lu,no,yes,, +lu_pod2_z,SmarPod2 Z,Motor,X10SA-OP-LUPOD2:TRZ,baseline,lu,no,yes,, +lu_pod2_rotx,SmarPod2 RX,Motor,X10SA-OP-LUPOD2:ROTX,baseline,lu,no,yes,, +lu_pod2_roty,SmarPod2 RY,Motor,X10SA-OP-LUPOD2:ROTY,baseline,lu,no,yes,, +lu_pod2_rotz,SmarPod2 RZ,Motor,X10SA-OP-LUPOD2:ROTZ,baseline,lu,no,yes,, +ss_bpm1,SS BPM Signal 1,SignalRO,X10SA-ES-SSBPM:Current1:MeanValue_RBV,monitored,bpm,yes,yes,, +ss_bpm2,SS BPM Signal 2,SignalRO,X10SA-ES-SSBPM:Current2:MeanValue_RBV,monitored,bpm,yes,yes,, +ss_bpm3,SS BPM Signal 3,SignalRO,X10SA-ES-SSBPM:Current3:MeanValue_RBV,monitored,bpm,yes,yes,, +ss_bpm4,SS BPM Signal 4,SignalRO,X10SA-ES-SSBPM:Current4:MeanValue_RBV,monitored,bpm,yes,yes,, +ss_bpmsum,SS BPM Summed,SignalRO,X10SA-ES-SSBPM:SumAll:MeanValue_RBV,monitored,bpm,yes,yes,, +ss_bpm_x,SS BPM X,Motor,X10SA-ES-SSBPM:TRX,baseline,ss,no,yes,, +ss_bpm_y,SS BPM Y,Motor,X10SA-ES-SSBPM:TRY,baseline,ss,no,yes,, +ss_f1_x,SS Filter 1 X,Motor,X10SA-ES-SSFI1:TRX,baseline,ss,no,yes,, +ss_f2_x,SS Filter 2 X,Motor,X10SA-ES-SSFI2:TRX,baseline,ss,no,yes,, +ss_f3_x,SS Filter 2 X,Motor,X10SA-ES-SSFI3:TRX,baseline,ss,no,yes,, +ss_f4_x,SS Filter 4 X,Motor,X10SA-ES-SSFI4:TRX,baseline,ss,no,yes,, +ss_sl_xw,SS slit wall,Motor,X10SA-ES-SSSLH:TRXW,baseline,ss,no,yes,, +ss_sl_xr,SS slit ring,Motor,X10SA-ES-SSSLH:TRXR,baseline,ss,no,yes,, +ss_sl_xcen,SS slit X centre,Motor,X10SA-ES-SSSLH:CENTER,baseline,ss,no,yes,, +ss_sl_xsize,SS slit X size,Motor,X10SA-ES-SSSLH:SIZE,baseline,ss,no,yes,, +ss_sl_yt,SS slit top,Motor,X10SA-ES-SSSLV:TRYT,baseline,ss,no,yes,, +ss_sl_yb,SS slit bottom,Motor,X10SA-ES-SSSLV:TRYB,baseline,ss,no,yes,, +ss_sl_ycen,SS slit Y centre,Motor,X10SA-ES-SSSLV:CENTER,baseline,ss,no,yes,, +ss_sl_ysize,SS slit Y size,Motor,X10SA-ES-SSSLV:SIZE,baseline,ss,no,yes,, +ss_xi_x,SS X-ray eye X,Motor,X10SA-ES-SSXI:TRX,baseline,ss,no,yes,"{""type"": multi-position,""in"": 7.5, ""out"": -2.1}", +ss_xi_y,SS X-ray eye Y,Motor,X10SA-ES-SSXI:TRY,baseline,ss,no,yes,, +ss_xicam_x,ss cam X,SignalRO,X10SA-ES-SSXI:cam1:Stats5:CentroidX_RBV,baseline,ss,yes,yes,, +ss_xicam_y,ss cam Y,SignalRO,X10SA-ES-SSXI:cam1:Stats5:CentroidY_RBV,baseline,ss,yes,yes,, +ss_xicam_max,ss cam max value,SignalRO,X10SA-ES-SSXI:cam1:Stats5:MaxValue_RBV,monitored,ss,yes,yes,, +ss_xicam_exp,ss camera exposure,Signal,X10SA-ES-SSXI:cam1:AcquireTime,baseline,ss,no,yes,, +ss_xicam_gain,ss camera gain,Signal,X10SA-ES-SSXI:cam1:cam1:Gain,baseline,ss,no,yes,, +ss_xicam_xsig,ss camera x sigma,Signal,X10SA-ES-SSXI:cam1:Stats5:SigmaX_RBV,baseline,ss,yes,yes,, +ss_xicam_ysig,ss camera y sigma,Signal,X10SA-ES-SSXI:cam1:Stats5:SigmaY_RBV,baseline,ss,yes,yes,, +vfm_xu,VFM Upstream X,Motor,X10SA-ES-KBV:TRXU,baseline,vfm,no,no,, +vfm_xd,VFM Downstream X,Motor,X10SA-ES-KBV:TRXD,baseline,vfm,no,no,, +vfm_yur,VFM Upstream Ring Y,Motor,X10SA-ES-KBV:TRYUR,baseline,vfm,no,no,, +vfm_yw,VFM Wall Y,Motor,X10SA-ES-KBV:TRYW,baseline,vfm,no,no,, +vfm_ydr,VFM Downstream Ring Y,Motor,X10SA-ES-KBV:TRYDR,baseline,vfm,no,no,, +vfm_bu,VFM Upstream Bender,Motor,X10SA-ES-KBV:BNDU,baseline,vfm,no,no,, +vfm_bd,VFM Downstream Bender,Motor,X10SA-ES-KBV:BNDD,baseline,vfm,no,no,, +vfm_yaw,VFM Virtual Yaw,Motor,X10SA-ES-KBV:YAW,baseline,vfm,no,no,, +vfm_roll,VFM Virtual Roll,Motor,X10SA-ES-KBV:ROLL,baseline,vfm,no,no,, +vfm_pitch,VFM Virtual Pitch,Motor,X10SA-ES-KBV:PITCH,baseline,vfm,no,no,, +vfm_x,VFM Virtual X,Motor,X10SA-ES-KBV:TRX,baseline,vfm,no,no,, +vfm_y,VFM Virtual Y ,Motor,X10SA-ES-KBV:TRY,baseline,vfm,no,no,, +hfm_xu,HFM Upstream X,Motor,X10SA-ES-KBH:TRXU,baseline,hfm,no,no,, +hfm_xd,HFM Downstream X,Motor,X10SA-ES-KBH:TRXD,baseline,hfm,no,no,, +hfm_yuw,HFM Upstream Wall Y,Motor,X10SA-ES-KBH:TRYUW,baseline,hfm,no,no,, +hfm_yr,HFM Ring Y,Motor,X10SA-ES-KBH:TRYR,baseline,hfm,no,no,, +hfm_ydw,HFM Downstream Wall Y,Motor,X10SA-ES-KBH:TRYDW,baseline,hfm,no,no,, +hfm_bu,HFM Upstream Bender,Motor,X10SA-ES-KBH:BNDU,baseline,hfm,no,no,, +hfm_bd,HFM Downstream Bender,Motor,X10SA-ES-KBH:BNDD,baseline,hfm,no,no,, +hfm_yaw,HFM Virtual Yaw,Motor,X10SA-ES-KBH:YAW,baseline,hfm,no,no,, +hfm_roll,HFM Virtual Roll,Motor,X10SA-ES-KBH:ROLL,baseline,hfm,no,no,, +hfm_pitch,HFM Virtual Pitch,Motor,X10SA-ES-KBH:PITCH,baseline,hfm,no,no,, +hfm_x,HFM Virtual X,Motor,X10SA-ES-KBH:TRX,baseline,hfm,no,no,, +hfm_y,HFM Virtual Y ,Motor,X10SA-ES-KBH:TRY,baseline,hfm,no,no,, +bcu_bpm1,BCU BPM Signal 1 ,SignalRO,X10SA-ES-BCBPM:Current1:MeanValue_RBV,monitored,bpm,yes,yes,, +bcu_bpm2,BCU BPM Signal 2,SignalRO,X10SA-ES-BCBPM:Current2:MeanValue_RBV,monitored,bpm,yes,yes,, +bcu_bpm3,BCU BPM Signal 3,SignalRO,X10SA-ES-BCBPM:Current3:MeanValue_RBV,monitored,bpm,yes,yes,, +bcu_bpm4,BCU BPM Signal 4,SignalRO,X10SA-ES-BCBPM:Current4:MeanValue_RBV,monitored,bpm,yes,yes,, +bcu_bpmsum,BCU BPM Summed,SignalRO,X10SA-ES-BCBPM:SumAll:MeanValue_RBV,monitored,bpm,yes,yes,, +bcu_bpm_x,BCU BPM X,Motor,X10SA-ES-BCBPM:TRX,baseline,bcu,no,yes,, +bcu_bpm_y,BCU BPM Y ,Motor,X10SA-ES-BCBPM:TRY,baseline,bcu,no,yes,, +bcu_sl_xw,BCU slit wall,Motor,X10SA-ES-BCSLH:TRXW,baseline,bcu,no,no,, +bcu_sl_xr,BCU slit ring,Motor,X10SA-ES-BCSLH:TRXR,baseline,bcu,no,no,, +bcu_sl_xcen,BCU slit X centre,Motor,X10SA-ES-BCSLH:CENTER,baseline,bcu,no,no,, +bcu_sl_xsize,BCU slit X size,Motor,X10SA-ES-BCSLH:SIZEX,baseline,bcu,no,no,, +bcu_sl_yt,BCU slit top,Motor,X10SA-ES-BCSLV:TRYT,baseline,bcu,no,no,, +bcu_sl_yb,BCU slit bottom,Motor,X10SA-ES-BCSLV:TRYB,baseline,bcu,no,no,, +bcu_sl_ycen,BCU slit Y centre,Motor,X10SA-ES-BCSLV:CENTER,baseline,bcu,no,no,, +bcu_sl_ysize,BCU slit Y size,Motor,X10SA-ES-BCSLV:SIZE,baseline,bcu,no,no,, +xrf_pos,XRF det in/out,Signal,X10SA-ES-XRF:POS-SET,baseline,se,no,yes,"{""type"":positioner}", +samcam_x,sample cam X ,SignalRO,X10SA-ES-MS:Stats5:CentroidX_RBV,baseline,scam,yes,yes,, +samcam_xsig,sample cam X sigma,SignalRO,X10SA-ES-MS:Stats5:SigmaX_RBV,monitored,scam,yes,yes,, +samcam_y,sample cam Y ,SignalRO,X10SA-ES-MS:Stats5:CentroidY_RBV,baseline,scam,yes,yes,, +samcam_ysig,sample cam Y sigma,SignalRO,X10SA-ES-MS:Stats5:SigmaY_RBV,monitored,scam,yes,yes,, +samcam_max,sample cam max value,SignalRO,X10SA-ES-MS:Stats5:MaxValue_RBV,monitored,scam,yes,yes,, +samcam_exp,sample cam exp time,Signal,X10SA-ES-MS:cam1:AcquireTime,baseline,scam,no,yes,, +samcam_gain,sample cam gain,Signal,X10SA-ES-MS:cam1:Gain,baseline,scam,no,yes,, +scam_zoom,Sample cam zoom,Motor,X10SA-ES-MS:ZOOM,baseline,scam,no,yes,, +fl_bright,Frontlight brightness,Signal,X10SA-ES-FL:SET,baseline,se,no,yes,, +coll_x,Collimator X,Motor,X10SA-ES-COL:TRX,baseline,se,no,yes,, +coll_y,Collimator Y,Motor,X10SA-ES-COL:TRY,baseline,se,no,yes,"{""type"": multi-position, ""in"": 41.5, ""out"": 20.0, ""park"": 0,""tol"":0.05}", +diag_y,Scintillator/diode Y,Motor,X10SA-ES-SCL:TRY,baseline,se,no,yes,"{""type"": multi-position, ""scint"": 38.62, ""i1"": 44.0, ""out"": 20.0,""park"": 0,""tol"":0.3}", +diag_z,Scintillator/diode Z,Motor,X10SA-ES-SCL:TRZ,baseline,se,no,yes,, +i1,i1 diode reading,SignalRO,X10SA-ES-SCLDI:READOUT,monitored,bpm,yes,yes,, +bl_pos,Backlight positioner,Signal,X10SA-ES-BL:POS-SET,baseline,se,no,yes,"{""type"":positioner}", +bl_bright,Backlight brightness,Signal,X10SA-ES-BL:SET,baseline,se,no,yes,, +bs_x,Beamstop X,Motor,X10SA-ES-BS:TRX,baseline,se,no,yes,, +bs_y,Beamstop Y,Motor,X10SA-ES-BS:TRY,baseline,se,no,yes,, +bs_z,Beamstop Z,Motor,X10SA-ES-BS:TRZ,baseline,se,no,yes,"{""type"": guarded, ""min"": 13, ""samp"": 15, ""work_min"": 20, ""safe"": 41, ""max_blin"": 42, ""max_blout"": 70}", +bs_pos,Beamstop positioner,Signal,X10SA-ES-BS:POS-SET,baseline,se,no,yes,"{""type"":positioner}", +gon_x,Goniometer X,Motor,X10SA-ES-DF1:TRX1,baseline,det,no,yes,"{""type"": guarded, ""in"": 18.0, ""out"": -10.0, ""safe"": -100,""tol"":0.5}", +gon_y,Goniometer Y,Motor,X10SA-ES-DF1:TRY1,baseline,det,no,yes,, +gon_z,Goniometer X,Motor,X10SA-ES-DF1:TRZ1,baseline,det,no,yes,, +omega,Omega,Motor,X10SA-ES-DF1:ROTU,baseline,det,no,yes,, +cryo_pos,Cryo positioner,Signal,X10SA-ES-CS:POS-SET,baseline,se,no,yes,"{""type"":positioner}", +cryo_x,Cryojet X ,Motor,X10SA-ES-CS:TRX,baseline,se,no,yes,, +det_xi_focus,X-ray eye 2 Focus,Motor,X10SA-ES-XEYE:FOCUS,baseline,det,no,yes,, +det_xi_zoom,X-ray eye 2 Zoom,Motor,X10SA-ES-XEYE:ZOOM,baseline,det,no,yes,, +det_xi_x,X-ray eye X,Motor,X10SA-ES-XEYE:TRX,baseline,det,no,yes,, +i2,i2,SignalRO,X10SA-ES-XEYEDI:READOUT,monitored,bpm,yes,yes,, +det_xicam_x,sample cam X ,SignalRO,X10SA-ES-XEYE:cam1:Stats5:CentroidX_RBV,baseline,scam,yes,no,, +det_xicam_xsig,sample cam X sigma,SignalRO,X10SA-ES-XEYE:cam1:Stats5:SigmaX_RBV,monitored,scam,yes,no,, +det_xicam_y,sample cam Y ,SignalRO,X10SA-ES-XEYE:cam1:Stats5:CentroidY_RBV,baseline,scam,yes,no,, +det_xicam_ysig,sample cam Y sigma,SignalRO,X10SA-ES-XEYE:cam1:Stats5:SigmaY_RBV,monitored,scam,yes,no,, +det_xicam_max,sample cam max value,SignalRO,X10SA-ES-XEYE:cam1:Stats5:MaxValue_RBV,monitored,scam,yes,no,, +det_xicam_exp,sample cam exp time,Signal,X10SA-ES-XEYE:cam1:cam1:AcquireTime,baseline,scam,no,no,, +det_xicam_gain,sample cam gain,Signal,X10SA-ES-XEYE:cam1:cam1:Gain,baseline,scam,no,no,, +det_cov,Detector cover,Signal,X10SA-ES-DETCOV:SET,baseline,det,no,yes,"{""type"":positioner}", +det_y,Detector Y,Motor,X10SA-ES-DET:TRY,baseline,det,no,yes,, +det_z,Detector Z,Motor,X10SA-ES-DET:TRZ,baseline,det,no,yes,, diff --git a/pxii_bec/device_configs/x10sa_device_config.yaml b/pxii_bec/device_configs/x10sa_device_config.yaml index e41ad8e..f9e7886 100644 --- a/pxii_bec/device_configs/x10sa_device_config.yaml +++ b/pxii_bec/device_configs/x10sa_device_config.yaml @@ -10,39 +10,6 @@ id_gap: enabled: true readOnly: false softwareTrigger: false -coll_x: - description: Collimator X - deviceClass: ophyd.EpicsMotor - deviceConfig: {prefix: 'X10SA-ES-COL:TRX'} - onFailure: buffer - enabled: True - readoutPriority: baseline - deviceTags: - - se - readOnly: false - softwareTrigger: false -dcm_fpitch: - description: DCM 2nd crystal fine pitch - deviceClass: ophyd.EpicsMotor - deviceConfig: {prefix: 'X10SA-OP-DCM:PITCH-C2'} - onFailure: buffer - enabled: True - readoutPriority: baseline - deviceTags: - - dcm - readOnly: false - softwareTrigger: false -dcm_froll: - description: DCM 2nd crystal fine roll - deviceClass: ophyd.EpicsMotor - deviceConfig: {prefix: 'X10SA-OP-DCM:ROLL-C2'} - onFailure: buffer - enabled: True - readoutPriority: baseline - deviceTags: - - dcm - readOnly: false - softwareTrigger: false smargon: description: REST-based device which connects to Smargopolo @@ -55,4 +22,4 @@ smargon: - smargon - motors readOnly: false - softwareTrigger: false \ No newline at end of file + softwareTrigger: false diff --git a/pxii_bec/macros/APscripts.py b/pxii_bec/macros/APscripts.py index 80a3b0a..bf88d70 100755 --- a/pxii_bec/macros/APscripts.py +++ b/pxii_bec/macros/APscripts.py @@ -45,12 +45,7 @@ def a2e(a, *hkl): if "deg" in hkl: ideg = 1 - d0 = ( - 2 - * 5.43102 - * (1 - 2.4e-4 * iln) - / np.sqrt(h[0] ** 2.0 + h[1] ** 2.0 + h[2] ** 2.0) - ) + d0 = 2 * 5.43102 * (1 - 2.4e-4 * iln) / np.sqrt(h[0] ** 2.0 + h[1] ** 2.0 + h[2] ** 2.0) if ideg or (a > 1): a = math.radians(a) # *math.pi/180. @@ -91,12 +86,7 @@ def angle(e, *hkl): if "deg" in hkl: ideg = 1 - d0 = ( - 2 - * 5.43102 - * (1 - 2.4e-4 * iln) - / np.sqrt(h[0] ** 2.0 + h[1] ** 2.0 + h[2] ** 2.0) - ) + d0 = 2 * 5.43102 * (1 - 2.4e-4 * iln) / np.sqrt(h[0] ** 2.0 + h[1] ** 2.0 + h[2] ** 2.0) a = math.asin(12.39842 / d0 / e) if ideg: @@ -149,7 +139,7 @@ def rock(**kwargs): import matplotlib.pyplot as plt dock_area = bec.gui.new() - wr = dock_area.new(bec.gui.available_widgets.Waveform) + wr = dock_area.new().new(bec.gui.available_widgets.Waveform) # width of rocking curve of perfect xtal: at 20 keV: 14 urad == 0.0008 deg @@ -206,7 +196,7 @@ def rock(**kwargs): s = scans.line_scan(mot, -dx, dx, steps=50, exp_time=time, relative=True) # md = scan.metadata["bec"] wr.title = f"RockingScan at Energy of {e}" - wr.plot(device_x=mot.name, device_y=det.name) ##set names/axes first ! + wr.plot(x_name=mot.name, y_name=det.name) ##set names/axes first ! wr.x_label = mot.name wr.y_label = det.name if ax == 0: @@ -263,13 +253,7 @@ def justfit(data_x, data_y, model="gauss", ibg=0): gfit, xmax = justfit(data_x, data_y, model = "lorentz", ibg =0) : Lorentzian, no BG """ - from lmfit.models import ( - LinearModel, - GaussianModel, - VoigtModel, - QuadraticModel, - LorentzianModel, - ) + from lmfit.models import LinearModel, GaussianModel, VoigtModel, QuadraticModel, LorentzianModel import matplotlib.pyplot as plt peak = GaussianModel() @@ -338,20 +322,12 @@ def fit_plothist(hindex: int, signal_name: str, model="gauss", ibg=0): """ - from lmfit.models import ( - LinearModel, - GaussianModel, - VoigtModel, - QuadraticModel, - LorentzianModel, - ) + from lmfit.models import LinearModel, GaussianModel, VoigtModel, QuadraticModel, LorentzianModel import matplotlib.pyplot as plt h = bec.history[hindex] md = h.metadata["bec"] - scanvar = list(md["args"].keys())[ - 0 - ] # string, returns the variable of the last performed scan + scanvar = list(md["args"].keys())[0] # string, returns the variable of the last performed scan # data = h.devices[device_name][signal].read()["value"] # data_x = h.devices.dcm_pitch.dcm_pitch.read()["value"] # data_y = h.devices.lu_bpmsum.lu_bpmsum.read()["value"] @@ -442,9 +418,9 @@ def fit_plot(data_x, data_y, model="gauss", ibg=1, fitrange=0, fitclick=0): sigma = 1.0 gamma = 0.2 # blurring/widening of the sigma ; the larger, the more of a Lorentzian profile print("maxy, indmax, xm = ", maxy, indmax, xm) - #p = model.make_params( + # p = model.make_params( # amplitude=max(data_y), center=xm, slope=0, intercept=min(data_y) - #) + # ) p = model.make_params(amplitude=maxy, center=xm) p["center"].set(min=min(data_x), max=max(data_x)) p["sigma"].set(min=0, max=(max(data_x) - min(data_x)) / 2.0) @@ -541,7 +517,7 @@ def save_data(hindex: int, device_name: str, signal_name: str): ans = "n" ans = input("Store data in csv file? y/n ") if ans == "y": - dirname = "/home/gac-x10sa/Data/" + dirname = "/sls/x10sa/config/commissioning/Data/" # writing output to simple data file for later analysis: combined = np.column_stack((data_x, data_y)) filename = dirname + "Scan" + str(hindex) + device_name + ".txt" @@ -645,7 +621,7 @@ def save_plot_gaps(hindex: int, device_name: str, signal_name: str): plt.show() - dirname = "/home/gac-x10sa/Data/" + dirname = "/sls/x10sa/config/commissioning/Data/" # writing output to simple data file for later analysis: combined = np.column_stack((en_vec, data_y)) filename = dirname + "EnScan" + str(hindex) + ".txt" @@ -668,7 +644,8 @@ def getdiodepos(diode="i1"): """ diode_in = 1 - dpos = 44 # mm + dpos = dev.diag_y.user_parameter["i1"] # 44 # mm + measdev = dev.scin_y diodepos_rb = measdev.user_readback.get() if abs(dpos - diodepos_rb) > 0.1: @@ -692,7 +669,7 @@ def read_mon(): e = getenergy() fesum = dev.fe_bpmsum.read()["fe_bpmsum"]["value"] lusum = dev.lu_bpmsum.read()["lu_bpmsum"]["value"] - bscsum = dev.bsc_bpmsum.read()["bsc_bpmsum"]["value"] + sssum = dev.ss_bpmsum.read()["ss_bpmsum"]["value"] # Mono bragg = dev.dcm_bragg.read()["dcm_bragg"]["value"] @@ -727,24 +704,24 @@ def read_mon(): fe_sy_size = dev.fe_sysize.read()["fe_sysize"]["value"] ## BSF slits centre and size - s1_xcen = dev.s1_xcen.read()["s1_xcen"]["value"] - s1_xsize = dev.s1_xsize.read()["s1_xsize"]["value"] - s1_ycen = dev.s1_ycen.read()["s1_ycen"]["value"] - s1_ysize = dev.s1_ysize.read()["s1_ysize"]["value"] + bsf_xcen = dev.bsf_sl_xcen.read()["bsf_sl_xcen"]["value"] + bsf_xsize = dev.bsf_sl_xsize.read()["bsf_sl_xsize"]["value"] + bsf_ycen = dev.bsf_sl_ycen.read()["bsf_sl_ycen"]["value"] + bsf_ysize = dev.bsf_sl_ysize.read()["bsf_sl_ysize"]["value"] - ## BSC slits centre and size - s2_xcen = dev.s2_xcen.read()["s2_xcen"]["value"] - s2_xsize = dev.s2_xsize.read()["s2_xsize"]["value"] - s2_ycen = dev.s2_ycen.read()["s2_ycen"]["value"] - s2_ysize = dev.s2_ysize.read()["s2_ysize"]["value"] + ## SS slits centre and size + ss_sl_xcen = dev.ss_sl_xcen.read()["ss_sl_xcen"]["value"] + ss_sl_xsize = dev.ss_sl_xsize.read()["ss_sl_xsize"]["value"] + ss_sl_ycen = dev.ss_sl_ycen.read()["ss_sl_ycen"]["value"] + ss_sl_ysize = dev.ss_sl_ysize.read()["ss_sl_ysize"]["value"] ## BCU slits centre and size - s3_xcen = dev.s3_xcen.read()["s3_xcen"]["value"] - s3_xsize = dev.s3_xsize.read()["s3_xsize"]["value"] - s3_ycen = dev.s3_ycen.read()["s3_ycen"]["value"] - s3_ysize = dev.s3_ysize.read()["s3_ysize"]["value"] + bcu_sl_xcen = dev.bcu_sl_xcen.read()["bcu_sl_xcen"]["value"] + bcu_sl_xsize = dev.bcu_sl_xsize.read()["bcu_sl_xsize"]["value"] + bcu_sl_ycen = dev.bcu_sl_ycen.read()["bcu_sl_ycen"]["value"] + bcu_sl_ysize = dev.bcu_sl_ysize.read()["bcu_sl_ysize"]["value"] - ## move in screen in BSC chamber and get size and position + ## move in screen in SS chamber and get size and position ## move out again # umv(dev.samcam_xmot, 1) @@ -767,12 +744,10 @@ def read_mon(): bcusum = dev.bcu_bpmsum.read()["bcu_bpmsum"]["value"] i1signal = dev.i1.read()["i1"]["value"] print("Energy = ", e, " keV") - print(f"fesum,lusum,bscsum,bcusum,i1signal = {fesum,lusum,bscsum,bcusum,i1signal}") + print(f"fesum,lusum,sssum,bcusum,i1signal = {fesum,lusum,sssum,bcusum,i1signal}") - print( - f"bragg, pitch, perp, fpitch, froll, gap = {bragg, pitch,perp, fpitch, froll, gap}" - ) - # return e, fesum,lusum,bscsum,bcusum,i1signal + print(f"bragg, pitch, perp, fpitch, froll, gap = {bragg, pitch,perp, fpitch, froll, gap}") + # return e, fesum,lusum,sssum,bcusum,i1signal print("KB VERT") print( f"vbu, vbd, vbpitch,vbyaw,vbroll,vblat,vbvert = {vbu, vbd, vbpitch,vbyaw,vbroll,vblat,vbvert}" @@ -786,7 +761,7 @@ def read_mon(): ## dump status in CSV timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - dirname = "/home/gac-x10sa/Data/" + dirname = "/sls/x10sa/config/commissioning/Data/" filename = dirname + f"BLstatus_{timestamp}.txt" with open(filename, "w") as f: combined = np.column_stack((e, gap)) @@ -810,19 +785,19 @@ def read_mon(): np.savetxt(f, combined, delimiter=",", fmt="%5f") f.write("BSF slits\n") - combined = np.column_stack((s1_xcen, s1_xsize, s1_ycen, s1_ysize)) + combined = np.column_stack((bsf_sl_xcen, bsf_sl_xsize, bsf_sl_ycen, bsf_sl_ysize)) np.savetxt(f, combined, delimiter=",", fmt="%5f") - f.write("BSC slits\n") - combined = np.column_stack((s2_xcen, s2_xsize, s2_ycen, s2_ysize)) + f.write("SS slits\n") + combined = np.column_stack((ss_sl_xcen, ss_sl_xsize, ss_sl_ycen, ss_sl_ysize)) np.savetxt(f, combined, delimiter=",", fmt="%5f") f.write("BCU slits\n") - combined = np.column_stack((s3_xcen, s3_xsize, s3_ycen, s3_ysize)) + combined = np.column_stack((bcu_sl_xcen, bcu_sl_xsize, bcu_sl_ycen, bcu_sl_ysize)) np.savetxt(f, combined, delimiter=",", fmt="%5f") - f.write("fesum,lusum,bscsum,bcusum,i1signal\n") - combined = np.column_stack((fesum, lusum, bscsum, bcusum, i1signal)) + f.write("fesum,lusum,sssum,bcusum,i1signal\n") + combined = np.column_stack((fesum, lusum, sssum, bcusum, i1signal)) np.savetxt(f, combined, delimiter=",", fmt="%5f") return @@ -840,33 +815,23 @@ def longscan(): umv(dev.id_gap, 4.5) time.sleep(0.2) - s = scans.line_scan( - dev.dcm_bragg, 406.5, 65.9, steps=1500, exp_time=0.05, relative=False - ) + s = scans.line_scan(dev.dcm_bragg, 406.5, 65.9, steps=1500, exp_time=0.05, relative=False) time.sleep(2) umv(dev.id_gap, 5.0) time.sleep(0.2) - s = scans.line_scan( - dev.dcm_bragg, 65.9, 406.5, steps=1500, exp_time=0.05, relative=False - ) + s = scans.line_scan(dev.dcm_bragg, 65.9, 406.5, steps=1500, exp_time=0.05, relative=False) time.sleep(2) umv(dev.id_gap, 5.5) time.sleep(0.2) - s = scans.line_scan( - dev.dcm_bragg, 406.5, 65.9, steps=1500, exp_time=0.05, relative=False - ) + s = scans.line_scan(dev.dcm_bragg, 406.5, 65.9, steps=1500, exp_time=0.05, relative=False) time.sleep(2) umv(dev.id_gap, 6.0) time.sleep(0.2) - s = scans.line_scan( - dev.dcm_bragg, 65.9, 406.5, steps=1500, exp_time=0.05, relative=False - ) + s = scans.line_scan(dev.dcm_bragg, 65.9, 406.5, steps=1500, exp_time=0.05, relative=False) time.sleep(2) umv(dev.id_gap, 6.5) time.sleep(0.2) - s = scans.line_scan( - dev.dcm_bragg, 406.5, 65.9, steps=1500, exp_time=0.05, relative=False - ) + s = scans.line_scan(dev.dcm_bragg, 406.5, 65.9, steps=1500, exp_time=0.05, relative=False) ##################### @@ -890,15 +855,15 @@ def colliscan(direction: str, range=0.3, nsteps=30, stime=0.5, centre=1): import sys dock_area = bec.gui.new() - wr = dock_area.new(bec.gui.available_widgets.Waveform) + wr = dock_area.new().new(bec.gui.available_widgets.Waveform) # check if i1 DIODE is IN # if not, aks to be moved - diodeinpos = 44 # mm - colli_up = 41 # mm + diodeinpos = dev.diag_y.user_parameter["i1"] # 44 # mm + colli_up = dev.coll_y.user_parameter["in"] # 41.5 # mm - measdev = dev.scin_y + measdev = dev.diag_y diodepos_rb = measdev.user_readback.get() if abs(diodeinpos - diodepos_rb) > 0.1: print("Diode not in, please move") @@ -999,32 +964,32 @@ def slitscan(device_location: str, direction: str, range: 1, nsteps=50, centre=0 default_h = 3.0 # 8125 default_v = 3.0 # ??? close more ???? # 8149.8 det = dev.lu_bpmsum - # det = dev.bsc_bpmsum or #det = dev.bcu_bpmsum would also work + # det = dev.ss_bpmsum or #det = dev.bcu_bpmsum would also work if direction == "h": - mot = dev.s1_xcen - size = dev.s1_xsize + mot = dev.bsf_sl_xcen + size = dev.bsf_sl_xsize s_closed = 0.1 s_open = default_h else: - mot = dev.s1_ycen - size = dev.s1_ysize + mot = dev.bsf_sl_ycen + size = dev.bsf_sl_ysize s_closed = 0.1 s_open = default_v - # BSC slits ================================ + # SS slits ================================ - if device_location in ["bsc", "s2", "ss"]: + if device_location in ["ss", "ss_sl", "ss"]: default_h = 6.0 # ??? default_v = 5.0 # ??? close more ???? # 8149.8 det = dev.bcu_bpmsum if direction == "h": - mot = dev.s2_xcen - size = dev.s2_xsize + mot = dev.ss_sl_xcen + size = dev.ss_sl_xsize s_closed = 0.1 s_open = default_h else: - mot = dev.s2_ycen - size = dev.s2_ysize + mot = dev.ss_sl_ycen + size = dev.ss_sl_ysize s_closed = 0.1 s_open = default_v @@ -1035,20 +1000,20 @@ def slitscan(device_location: str, direction: str, range: 1, nsteps=50, centre=0 default_v = 2.0 # ??? close more ???? # 8149.8 # change to i0 later ?? det = dev.i1 - dposm = 43.8 + dposm = dev.diag_y.user_parameter["i1"] # dpos0 = dev.scin_y.user_readback.get() # if abs(dposm - dpos0) > 1: # print("moving diode i1 in") # umv(dev.scin_y, dposm) if direction == "h": - mot = dev.s3_xcen - size = dev.s3_xsize + mot = dev.bcu_sl_xcen + size = dev.bcu_sl_xsize s_closed = 3.0 ## very large, else does not work ! s_open = default_h else: - mot = dev.s3_ycen - size = dev.s3_ysize + mot = dev.bcu_sl_ycen + size = dev.bcu_sl_ysize s_closed = 3.0 ## very large ! s_open = default_v @@ -1064,14 +1029,14 @@ def slitscan(device_location: str, direction: str, range: 1, nsteps=50, centre=0 return dock_area = bec.gui.new() - wr = dock_area.new(bec.gui.available_widgets.Waveform) + wr = dock_area.new().new(bec.gui.available_widgets.Waveform) pos0 = mot.user_readback.get() siz0 = size.user_readback.get() umv(size, s_closed) s = scans.line_scan(mot, -dx, dx, steps=nsteps, exp_time=time, relative=True) - wr.plot(device_x=mot.name, device_y=det.name) + wr.plot(x_name=mot.name, y_name=det.name) wr.x_label = mot.name wr.y_label = det.name @@ -1088,25 +1053,25 @@ def slitscan(device_location: str, direction: str, range: 1, nsteps=50, centre=0 if mot.name == "fe_sycen": data_x = s.scan.live_data.fe_sycen.fe_sycen.val # BSF slits ================================ - if mot.name == "s1_xcen": - data_x = s.scan.live_data.s1_xcen.s1_xcen.val - if mot.name == "s1_ycen": - data_x = s.scan.live_data.s1_ycen.s1_ycen.val + if mot.name == "bsf_sl_xcen": + data_x = s.scan.live_data.bsf_sl_xcen.bsf_sl_xcen.val + if mot.name == "bsf_ycen": + data_x = s.scan.live_data.bsf_sl_ycen.bsf_sl_ycen.val - # BSC slits ================================ - if mot.name == "s2_xcen": - data_x = s.scan.live_data.s2_xcen.s2_xcen.val + # SS slits ================================ + if mot.name == "ss_sl_xcen": + data_x = s.scan.live_data.ss_sl_xcen.ss_sl_xcen.val data_y = s.scan.live_data.bcu_bpmsum.bcu_bpmsum.val - if mot.name == "s2_ycen": - data_x = s.scan.live_data.s2_ycen.s2_ycen.val + if mot.name == "ss_sl_ycen": + data_x = s.scan.live_data.ss_sl_ycen.ss_sl_ycen.val data_y = s.scan.live_data.bcu_bpmsum.bcu_bpmsum.val # BCU slits ================================ - if mot.name == "s3_xcen": - data_x = s.scan.live_data.s3_xcen.s3_xcen.val + if mot.name == "bcu_sl_xcen": + data_x = s.scan.live_data.bcu_sl_xcen.bcu_sl_xcen.val data_y = s.scan.live_data.i1.i1.val - if mot.name == "s3_ycen": - data_x = s.scan.live_data.s3_ycen.s3_ycen.val + if mot.name == "bcu_sl_ycen": + data_x = s.scan.live_data.bcu_sl_ycen.bcu_sl_ycen.val data_y = s.scan.live_data.i1.i1.val # change to i0 later ?? @@ -1161,9 +1126,7 @@ def kbfocus(sizex, sizey): en = getenergy() print(f"Energy is {en} keV") - print( - "Currently only 2 sizes supported, small approx.(2 x 2.7) and medium approx.(40 x 40)" - ) + print("Currently only 2 sizes supported, small approx.(2 x 2.7) and medium approx.(40 x 40)") ## is the pitch ok ? vpitch = 2.695 @@ -1261,11 +1224,9 @@ def bstatus(): # dock_area = bec.gui.new() - dbrowser = dock_area.new( - bec.gui.available_widgets.DeviceBrowser, object_name="device_browser" - ) + dbrowser = dock_area.new("device_browser").new(bec.gui.available_widgets.DeviceBrowser) - dock_area.new(bec.gui.available_widgets.BECQueue, object_name="queue") + dock_area.new("queue").new(bec.gui.available_widgets.BECQueue) # queue = dock_area.queue.BECQueue # give it a name # text_box = dock_area.new().new(widget=bec.gui.available_widgets.TextBox) # text_box.set_plain_text("Hello, World!") @@ -1307,15 +1268,15 @@ def detxeye_in(): print("moving X-ray eye below Eiger in") - xrpos = dev.xeye2_x.user_readback.get() + xrpos = dev.det_xi_x.user_readback.get() if abs(setxrpos - xrpos) > 1: - umv(dev.xeye2_x, setxrpos) - zoompos = dev.xeye2_zoom.user_readback.get() + umv(dev.det_xi_x, setxrpos) + zoompos = dev.det_xi_zoom.user_readback.get() if abs(setzoom - zoompos) > 1: - umv(dev.xeye2_zoom, setzoom) - focpos = dev.xeye2_focus.user_readback.get() + umv(dev.det_xi_zoom, setzoom) + focpos = dev.det_xi_focus.user_readback.get() if abs(setfoc - focpos) > 1: - umv(dev.xeye2_focus, setfoc) + umv(dev.det_xi_focus, setfoc) def detxeye_out(): @@ -1352,20 +1313,20 @@ def measure_samcam(zoom=1000): return sx, sy -def measure_bsccam(): - x_inpos = 7 # mm +def measure_sscam(): + x_inpos = dev.ss_xi_x.user_parameter["in"] # 7 # mm px2mum = 20 - scpos_rb = dev.xeye_x.user_readback.get() + scpos_rb = dev.ss_xi_x.user_readback.get() if abs(x_inpos - scpos_rb) > 0.3: print("Scinti not in, please move") sys.exit(0) - auto_exposure(cam="bsccam", target=200) - a = dev.bsccam_xsig.read()["bsccam_xsig"]["value"] - b = dev.bsccam_ysig.read()["bsccam_ysig"]["value"] + auto_exposure(cam="sscam", target=200) + a = dev.ss_xicam_xsig.read()["ss_xicam_xsig"]["value"] + b = dev.ss_xicam_ysig.read()["ss_xicam_ysig"]["value"] sx = a * px2mum * 2.35 sy = b * px2mum * 2.35 - print(f"FWHM at BSC cam in um : {sx, sy}") + print(f"FWHM at SS cam in um : {sx, sy}") return sx, sy @@ -1381,9 +1342,7 @@ def knife_edge(dir="hor", range=0.05, steps=100): if dir == "vert": mot = dev.gon_y - s = scans.line_scan( - dev.gon_x, -range, range, steps=steps, exp_time=1, relative=True - ) + s = scans.line_scan(dev.gon_x, -range, range, steps=steps, exp_time=1, relative=True) return @@ -1472,9 +1431,7 @@ def scan_eg(erange, nsteps=50, fit=True): print(f"Scanning Bragg from {a_start} to {a_end} mrad") - s = scans.line_scan( - mot_scan, a_start, a_end, steps=nsteps, exp_time=exptime, relative=False - ) + s = scans.line_scan(mot_scan, a_start, a_end, steps=nsteps, exp_time=exptime, relative=False) ## plot and fit the scan bragg_data = ( @@ -1520,3 +1477,27 @@ def scan_eg(erange, nsteps=50, fit=True): ### compute a signal ########################### # see in config file + + +################################################ +### open window/doch for long gap scan +################################################ +# + +def scan_window(wname="Scan", fit=True): + dock_area = bec.gui.new() + # Add a new dock with a Waveform to the BECDockArea + nam = "waveform_dock_"+wname + dock_area.new(name=nam, widget="Waveform") + # dock_area.panels + # dock_area.panel_list + plt1 = dock_area.panels[nam] + # Add signals to the WaveformWidget + plt1.plot(device_x='id_gap', device_y='bpm') + + dock2 = dock_area.new(name="motor_dock", widget="MotorMap",relative_to=nam, position="right") + ###do stuff + + + ### if done, remove + dock2.remove() diff --git a/pxii_bec/macros/findattr.py b/pxii_bec/macros/findattr.py new file mode 100644 index 0000000..5873afe --- /dev/null +++ b/pxii_bec/macros/findattr.py @@ -0,0 +1,49 @@ +#### find out about a certain class -- +#### retrieve the struct of dictionaries + +# if you know the attribute you are searching for: + +def check_attr(obj, attr): +# att as string + + attr = getattr(obj, attr) + + if isinstance(attr, dict): + print("keys:", attr.keys()) + print("values:", attr.values()) + print("items:", attr.items()) + +# Automatically Detect All Dictionary Attributes: + +def list_dict_attr_single(obj): + for attr_name, value in vars(obj).items(): + if isinstance(value, dict): + print(f"\nDictionary attribute: {attr_name}") + print(" Keys:", list(value.keys())) + print(" Items:") + for key, val in value.items(): + print(f" {key} -> {val}") + +# Also Handle Nested Dictionaries: + + +def list_dict_attr(obj): + + def print_dict(d, indent=0): # start with zero indentation + for key, value in d.items(): + print(" " * indent + str(key) + ":", end=" ") + if isinstance(value, dict): + print() + print_dict(value, indent+1) + else: + print(value) + + for attr_name, value in vars(obj).items(): + if isinstance(value, dict): + print(f"\nDictionary attribute: {attr_name}") + print_dict(value) + + + + + diff --git a/pxii_bec/macros/mx_basics.py b/pxii_bec/macros/mx_basics.py index 48bc8c7..80aeaf2 100755 --- a/pxii_bec/macros/mx_basics.py +++ b/pxii_bec/macros/mx_basics.py @@ -1,14 +1,23 @@ """Get data from an h5 file or BEC history and perform fitting.""" import numpy as np -from lmfit.models import GaussianModel, LorentzianModel, VoigtModel, ConstantModel, LinearModel +from lmfit.models import ( + GaussianModel, + LorentzianModel, + VoigtModel, + ConstantModel, + LinearModel, +) from scipy.ndimage import gaussian_filter1d import h5py import matplotlib.pyplot as plt def create_fit_parameters( - deriv: bool = False, model: str = "Voigt", baseline: str = "Linear", smoothing: None = None + deriv: bool = False, + model: str = "Voigt", + baseline: str = "Linear", + smoothing: None = None, ): """Store the fit parameters in a dictionary.""" # map input model to lmfit model name @@ -45,7 +54,10 @@ def get_data_from_h5(signal_name: str = "lu_bpmsum"): } -def get_data_from_history(history_index: int, signal_name: str = "lu_bpmsum"): +def get_data_from_history( + history_index: int, + signal_name: str = "lu_bpmsum", +): """Read data from the BEC history and return the X and Y data as arrays.""" scan = bec.history[history_index] md = scan.metadata["bec"] @@ -84,7 +96,10 @@ def process_data(data, fit_params): else: fitting_data = y_data - updated_data = {"y_to_fit": fitting_data, "signal_name": signal_name} + updated_data = { + "y_to_fit": fitting_data, + "signal_name": signal_name, + } data.update(updated_data) return data @@ -109,15 +124,23 @@ def fit(data, fit_params): params["base_slope"].set(value=0) # Add peak-specific parameters - params.update(peak_model.guess(processed_data["y_to_fit"], x=processed_data["x_data"])) + params.update( + peak_model.guess(processed_data["y_to_fit"], x=processed_data["x_data"]) + ) # Perform the fitting - lmfit_result = full_model.fit(processed_data["y_to_fit"], params, x=processed_data["x_data"]) + lmfit_result = full_model.fit( + processed_data["y_to_fit"], params, x=processed_data["x_data"] + ) # Find the X that gives the max Y max_index = np.argmax(processed_data["y_to_fit"]) x_max = processed_data["x_data"][max_index] + # Generate data for a smoothed fit curve + fit_xdata = np.linspace(np.min(data["x_data"]), np.max(data["x_data"]), 500) + fit_ydata = lmfit_result.eval(x=fit_xdata, params=lmfit_result.params) + # Collect results return { "model": fit_params["model"].__name__, @@ -127,20 +150,15 @@ def fit(data, fit_params): "chi_sq": lmfit_result.chisqr, "lmfit_result": lmfit_result, "x_max": x_max, + "fit_xdata": fit_xdata, + "fit_ydata": fit_ydata, } def plot_fitted_data(data, fit_result): """Plot the original data and the fitted model.""" plt.plot(data["x_data"], data["y_to_fit"], label="Data") - plt.plot( - data["x_data"], - fit_result["lmfit_result"].best_fit, - "-", - label=f"FWHM = {fit_result['fwhm']:.3f}," - f"Centre = {fit_result['centre']:.3f}, " - f"Height = {fit_result['height']:.3f}", - ) + plt.plot(fit_result['fit_xdata'], fit_result['fit_ydata'], label="Fit") plt.xlabel(data["motor_name"]) plt.ylabel(data["signal_name"]) plt.title(f"Scan {data['scan_number']}, fitted with {fit_result['model']}") @@ -154,9 +172,9 @@ def select_bec_window(dock_area_name="Fitting"): open_docks = bec.gui.windows if open_docks.get(dock_area_name) is None: dock_area = bec.gui.new(dock_area_name) - wf = dock_area.new(bec.gui.available_widgets.Waveform, object_name="Plot") - text_box = dock_area.new( - bec.gui.available_widgets.TextBox, object_name="Results", where="bottom" + wf = dock_area.new("Plot").new(bec.gui.available_widgets.Waveform) + text_box = dock_area.new("Results", position="bottom").new( + widget=bec.gui.available_widgets.TextBox ) else: wf = bec.gui.Fitting.Plot.Waveform @@ -164,7 +182,11 @@ def select_bec_window(dock_area_name="Fitting"): return wf, text_box -def plot_live_data_bec(motor_name, signal_name, window_name="Fitting"): +def plot_live_data_bec( + motor_name, + signal_name, + window_name="Fitting" +): """ Plotting live data for motor and signal using BEC. @@ -186,10 +208,13 @@ def plot_live_data_bec(motor_name, signal_name, window_name="Fitting"): wf.title = "Scan: Live scan" wf.x_label = motor_name wf.y_label = signal_name - wf.plot(device_x=motor_name, device_y=signal_name) + wf.plot(x_name=motor_name, y_name=signal_name) -def plot_fitted_data_bec(data, fit_result): +def plot_fitted_data_bec( + data, + fit_result, +): """ Plot fitted data and display fitting parameters in the specified window. @@ -221,5 +246,8 @@ def plot_fitted_data_bec(data, fit_result): wf.title = f"Scan: {data['scan_number']}" wf.x_label = data["motor_name"] wf.y_label = data["signal_name"] - wf.plot(x=data["x_data"], y=data["y_to_fit"], label="data") - wf.plot(x=data["x_data"], y=fit_result["lmfit_result"].best_fit, label="Fit to data") + wf.plot(x=data["x_data"], y=data["y_to_fit"], label="Data") + wf.plot(x=fit_result["fit_xdata"], y=fit_result["fit_ydata"], label="Fit") + wf.Fit.set(symbol_size = 0) + + diff --git a/pxii_bec/macros/mx_methods.py b/pxii_bec/macros/mx_methods.py index d084623..8631d0f 100755 --- a/pxii_bec/macros/mx_methods.py +++ b/pxii_bec/macros/mx_methods.py @@ -74,7 +74,7 @@ def move_to_position(motor_device, motor_name: str, position: float, data: dict) scans.umv(motor_device, motor_centre, relative=False) msg = ( f"Position {position: .2f} is outside the scan range of " - f"{motor_min: .2f}to {motor_max: .2f}. " + f"{motor_min: .2f} to {motor_max: .2f}. " f"Returning to centre of scan range {motor_centre: .3f}." ) raise ValueError(msg) @@ -249,79 +249,42 @@ def scan_bpm(bpmname): # Open a dock area and set up the heatmaps dock_area = bec.gui.new("XBPM_Scan") - wf5 = dock_area.new(bec.gui.available_widgets.Heatmap, object_name="Sum") - wf1 = dock_area.new( - bec.gui.available_widgets.Heatmap, - object_name="Ch1", - relative_to="Sum", - where="bottom", + wf5 = dock_area.new("Sum").new(bec.gui.available_widgets.Heatmap) + wf1 = dock_area.new("Ch1", relative_to="Sum", position="bottom").new( + bec.gui.available_widgets.Heatmap ) - wf3 = dock_area.new( - bec.gui.available_widgets.Heatmap, - object_name="Ch3", - relative_to="Ch1", - where="right", + wf3 = dock_area.new("Ch3", relative_to="Ch1", position="right").new( + bec.gui.available_widgets.Heatmap ) - wf4 = dock_area.new( - bec.gui.available_widgets.Heatmap, - object_name="Ch4", - relative_to="Ch3", - where="bottom", + wf4 = dock_area.new("Ch4", relative_to="Ch3", position="bottom").new( + bec.gui.available_widgets.Heatmap ) - wf2 = dock_area.new( - bec.gui.available_widgets.Heatmap, - object_name="Ch2", - relative_to="Ch1", - where="bottom", + wf2 = dock_area.new("Ch2", relative_to="Ch1", position="bottom").new( + bec.gui.available_widgets.Heatmap ) - wfscan = dock_area.new(bec.gui.available_widgets.ScanControl, object_name="ScanControl") + wfscan = dock_area.new("ScanControl").new(bec.gui.available_widgets.ScanControl) cfg = getattr(BPMScans, bpmname) wf1.x_label = cfg["x_name"] wf1.y_label = cfg["y_name"] - wf1.plot( - device_x=cfg["x_name"], - device_y=cfg["y_name"], - device_z=cfg["z1_name"], - color_map="plasma", - ) + wf1.plot(x_name=cfg["x_name"], y_name=cfg["y_name"], z_name=cfg["z1_name"], color_map="plasma") wf2.x_label = cfg["x_name"] wf2.y_label = cfg["y_name"] - wf2.plot( - device_x=cfg["x_name"], - device_y=cfg["y_name"], - device_z=cfg["z2_name"], - color_map="plasma", - ) + wf2.plot(x_name=cfg["x_name"], y_name=cfg["y_name"], z_name=cfg["z2_name"], color_map="plasma") wf3.x_label = cfg["x_name"] wf3.y_label = cfg["y_name"] - wf3.plot( - device_x=cfg["x_name"], - device_y=cfg["y_name"], - device_z=cfg["z3_name"], - color_map="plasma", - ) + wf3.plot(x_name=cfg["x_name"], y_name=cfg["y_name"], z_name=cfg["z3_name"], color_map="plasma") wf4.x_label = cfg["x_name"] wf4.y_label = cfg["y_name"] - wf4.plot( - device_x=cfg["x_name"], - device_y=cfg["y_name"], - device_z=cfg["z4_name"], - color_map="plasma", - ) + wf4.plot(x_name=cfg["x_name"], y_name=cfg["y_name"], z_name=cfg["z4_name"], color_map="plasma") wf5.x_label = cfg["x_name"] wf5.y_label = cfg["y_name"] - wf5.plot( - device_x=cfg["x_name"], - device_y=cfg["y_name"], - device_z=cfg["z5_name"], - color_map="plasma", - ) + wf5.plot(x_name=cfg["x_name"], y_name=cfg["y_name"], z_name=cfg["z5_name"], color_map="plasma") # Run the scan x_mot = cfg["x_device"] y_mot = cfg["y_device"] @@ -341,20 +304,15 @@ def optimise_kb(mirror): # Open a dock area and set up the heatmaps dock_area = bec.gui.new(mirror) - wf1 = dock_area.new(bec.gui.available_widgets.Heatmap, object_name="Heatmap") + wf1 = dock_area.new("Heatmap").new(bec.gui.available_widgets.Heatmap) - wfscan = dock_area.new(bec.gui.available_widgets.ScanControl, object_name="ScanControl") + wfscan = dock_area.new("ScanControl").new(bec.gui.available_widgets.ScanControl) cfg = getattr(MirrorConfig, mirror) wf1.x_label = cfg["bu_name"] wf1.y_label = cfg["bd_name"] - wf1.plot( - device_x=cfg["bu_name"], - device_y=cfg["bd_name"], - device_z=cfg["z_name"], - color_map="plasma", - ) + wf1.plot(x_name=cfg["bu_name"], y_name=cfg["bd_name"], z_name=cfg["z_name"], color_map="plasma") # Run the scan x_mot = cfg["x_device"] diff --git a/pxii_bec/macros/pxii_energy.py b/pxii_bec/macros/pxii_energy.py index 37913aa..f72d25c 100755 --- a/pxii_bec/macros/pxii_energy.py +++ b/pxii_bec/macros/pxii_energy.py @@ -81,6 +81,7 @@ def set_mirror_stripe(energy_ev): def mono_pitch_scan(plot=True): """Scan the monochromator pitch and move to the peak.""" # Move to the calculated pitch value for the current energy + print("Starting Mono Pitch Scan.") energy = get_current_energy() pos = get_dcm_motors_positions(energy) print(f"Setting DCM Pitch to default value of {pos['dcm_pitch']}") diff --git a/pxii_bec/macros/pxii_guards.py b/pxii_bec/macros/pxii_guards.py new file mode 100644 index 0000000..0e704c7 --- /dev/null +++ b/pxii_bec/macros/pxii_guards.py @@ -0,0 +1,280 @@ +"""Guards for preventing clashing devices in +the sample environment""" + +# PD_guards2.py +from dataclasses import dataclass, field +from typing import Callable, List, Dict + + +# ---------------------------- +# Exceptions +# ---------------------------- + + +class GuardViolation(RuntimeError): + """Raised when a guarded move is not allowed.""" + + +# ---------------------------- +# Guarded axis +# ---------------------------- + + +class GuardedAxis: + """ Motor axis protected by guard policy """ + def __init__( + self, + bec_name: str, + policy: Callable[[float], None], + config: Dict[str, float] = None + ): + self.bec_name = bec_name + self.policy = policy + self.config = config or {} + self.mot = getattr(dev, self.bec_name) + + @property + def actual(self) -> float: + """Returns the current motor position""" + return self.mot.read()[self.bec_name]["value"] + + def move(self, target: float): + """Used to move a guarded axis to a target value""" + self.policy(target) # must raise if disallowed + scans.umv(self.mot, target, relative=False) + + +# ---------------------------- +# Positioned device (IN / OUT) +# ---------------------------- + + +@dataclass +class PositionedDevice: + """Applies to devices that only have IN and OUT positions + Guards are defined by guard rules to ensure their safe operation""" + + bec_name: str + inpos: float + outpos: float + tol: float = 0.01 + guards: List[Callable[[], None]] = field(default_factory=list) + + def __post_init__(self): + self.mot = getattr(dev, self.bec_name) + + def _check_guards(self): + for g in self.guards: + g() + + def mvin(self): + """Move a positioned device to IN position""" + self._check_guards() + scans.umv(self.mot, self.inpos, relative=False) + + def mvout(self): + """Move a positioned device to OUT position""" + self._check_guards() + scans.umv(self.mot, self.outpos, relative=False) + + def is_in(self): + """Returns true if the device is IN""" + return abs(self.mot.read()[self.bec_name]["value"] - self.inpos) <= self.tol + + def is_out(self): + """Returns true if the device is OUT""" + return abs(self.mot.read()[self.bec_name]["value"] - self.outpos) <= self.tol + + +@dataclass +class MultiPositionDevice: + """ Devices that have multiple defined positions. Guards rules are defined to + ensure their safe operation""" + bec_name: str + positions: Dict[str, float] # {"out": 0.0, "scint": 10.0, "i1": 20.0} + tol: float = 0.01 + guards: List[Callable[[], None]] = field(default_factory=list) + + def __post_init__(self): + self.mot = getattr(dev, self.bec_name) + + def _check_guards(self): + """Check guard conditions""" + for g in self.guards: + g() + + def move_to(self, state: str): + """Move to one of the states defined in self.positions""" + if state not in self.positions: + raise ValueError(f"Unknown state '{state}'") + + self._check_guards() + scans.umv(self.mot, self.positions[state], relative=False) + + def is_at(self, state: str) -> bool: + """Check if device is at a given state""" + if state not in self.positions: + raise ValueError(f"Unknown state '{state}'") + + return abs(self.mot.read()[self.bec_name]["value"] - self.positions[state]) <= self.tol + + @property + def actual(self) -> float: + """Returns current motor position""" + return self.mot.read()[self.bec_name]["value"] + + @property + def state(self) -> str: + """Returns current state""" + for name, pos in self.positions.items(): + if abs(self.mot.read()[self.bec_name]["value"] - pos) <= self.tol: + return name + return "unknown" + + def is_clear(self): + """Returns true if device is at OUT or below e.g. PARK""" + if "out" not in self.positions: + raise ValueError("MultiPosition device requires 'out' state") + return self.actual < (self.positions["out"] + self.tol) + + +# ---------------------------- +# PD namespace (filled at runtime) +# ---------------------------- + + +class PD: + """Populated when the PD devices are initialised""" + pass + + +# ---------------------------- +# Guard rules for BS_Z +# ---------------------------- +# BS positioner must be in for BS_Z to move +def bs_z_requires_bs_pos_in(): + """Cannot move bs_z unless the BS positioner is in""" + if not PD.bs_pos.is_in(): + raise GuardViolation("BS_Z cannot move unless beamstop positioner is IN") + +def bs_z_range_check(target): + """Checks that the target position is within limits""" + cfg = PD.bs_z.config + + # Lower bound + if target < cfg["work_min"] and not is_sample_area_clear(beamstop=True): + raise GuardViolation( + f"Requested beamstop Z {target} is below working range minimum {cfg['work_min']}" + ) + if target < cfg["min"]: + raise GuardViolation( + f"Requested beamstop Z {target} is below absolute minimum {cfg['min']}" + ) + + # Maximum position depend on backlight position + if PD.bl_pos.is_in(): + if target > cfg["max_blin"]: + raise GuardViolation( + f"Requested beamstop Z value of {target} mm exceeds maximum allowed" + f"value of {cfg['max_blin']} while backlight is IN" + ) + else: + if target > cfg["max_blout"]: + raise GuardViolation( + f"Requested beamstop Z value of {target} mm exceeds maximum allowed " + f"value of {cfg['max_blout']} mm" + ) + + +def is_sample_area_clear(beamstop=True): + """Check if the sample area is clear, raising GuardViolation if constraints are not met.""" + if beamstop: + # Check collimator, and diagnostic device positions + if not PD.coll_y.is_clear(): + raise GuardViolation("Sample area is not clear: Collimator is IN") + if not PD.diag_y.is_clear(): + raise GuardViolation("Sample area is not clear: Diagnostic device is IN") + + # Validate goniometer position + if not abs(PD.gon_x.actual - PD.gon_x.config["out"]) < PD.gon_x.config["tol"]: + raise GuardViolation("Sample area is not clear: Goniometer is IN") + else: + # Check that diagnostic (scintillator/i1) device is out + if not PD.diag_y.is_clear(): + raise GuardViolation("Sample are is not clear: Diagnostic device is IN") + + return True + + +def bs_z_policy(target): + """Defines the policy for bs_z operation""" + # Beamstop z can only move when the positioner is in + bs_z_requires_bs_pos_in() + + # Check the allowed range for bs_z + bs_z_range_check(target) + + return True + + +def gon_x_policy(target): + """Defines the policy for gon_x operation""" + is_sample_area_clear(beamstop=False) + bs_z_above_work_min() + return True + + +def bs_pos_requires_bs_z_safe(): + """bs_pos can only move when bs_z is at the safe position""" + safe = PD.bs_z.config["safe"] + actual = PD.bs_z.actual + tol = 0.1 + + if abs(actual - safe) > tol: + raise GuardViolation(f"Beamstop positioner can only move when BS_Z is at {safe} mm") + + +def bs_z_above_work_min(): + """work_min specifies the minimum bs_z value that is + outside of the sample area i.e. no clashes with diagnostic + device or collimator""" + work_min = PD.bs_z.config["work_min"] + if PD.bs_z.actual < work_min: + raise GuardViolation(f"BS_Z must be greater than {work_min} mm") + + +def bs_z_below_max_blin(): + """Maximum bs_z vale when the backlight is in""" + max_blin = PD.bs_z.config["max_blin"] + if PD.bs_z.actual > max_blin: + raise GuardViolation(f"BS_Z must be less than {max_blin} mm") + + +def gonio_is_out(): + """Maximum bs_z value when the backlight is out""" + if not abs(PD.gon_x.actual - PD.gon_x.config["out"]) < PD.gon_x.config["tol"]: + raise GuardViolation(f"Goniometer must be OUT ({PD.gon_x.config['out']} mm)") + + +def get_policy_for_axis(bec_name): + """Specify the policy for guarded axis""" + policy_registry = {"bs_z": bs_z_policy, "gon_x": gon_x_policy} + return policy_registry.get(bec_name, lambda target: True) + + +def init_collision_guards(): + """Add the guard rules for positioned devices""" + PD.bs_pos.guards.append(bs_pos_requires_bs_z_safe) + PD.bl_pos.guards.append(bs_z_below_max_blin) + PD.coll_y.guards.append(bs_z_above_work_min) + PD.diag_y.guards.append(bs_z_above_work_min) + PD.diag_y.guards.append(gonio_is_out) + PD.diag_y.guards.append(bs_z_requires_bs_pos_in) + + +def init_positioned_devices(): + """Initialises the positioned devices""" + file = "/sls/x10sa/config/bec/production/pxii_bec/pxii_bec/device_configs/pxii-autogenerated.yaml" + build_pd(file) + init_collision_guards() + print(f"Defined positions for devices have been updated from {file}") diff --git a/pxii_bec/macros/pxii_parameters.py b/pxii_bec/macros/pxii_parameters.py index 7f3f761..e5f651d 100755 --- a/pxii_bec/macros/pxii_parameters.py +++ b/pxii_bec/macros/pxii_parameters.py @@ -1,10 +1,7 @@ """File to store beamline parameters and defaults""" from dataclasses import dataclass -from typing import Callable import numpy as np -import yaml - @@ -16,7 +13,7 @@ class EnergyDefaults: min_energy_ev = 4800 max_energy_ev = 30002 beam_offset = 6 - signals = {"sig1": dev.lu_bpmsum, "sig2": dev.bsc_bpmsum, "sig3": dev.bcu_bpmsum} + signals = {"sig1": dev.lu_bpmsum, "sig2": dev.ss_bpmsum, "sig3": dev.bcu_bpmsum} energy = dev.dcm_bragg mono_pitch = dev.dcm_pitch mono_perp = dev.dcm_perp @@ -148,15 +145,15 @@ class BPMScans: "y_device": dev.lu_bpm_y, } bsc = { - "x_name": dev.bsc_bpm_x.name, - "y_name": dev.bsc_bpm_y.name, - "z1_name": dev.bsc_bpm1.name, - "z2_name": dev.bsc_bpm2.name, - "z3_name": dev.bsc_bpm3.name, - "z4_name": dev.bsc_bpm4.name, - "z5_name": dev.bsc_bpmsum.name, - "x_device": dev.bsc_bpm_x, - "y_device": dev.bsc_bpm_y, + "x_name": dev.ss_bpm_x.name, + "y_name": dev.ss_bpm_y.name, + "z1_name": dev.ss_bpm1.name, + "z2_name": dev.ss_bpm2.name, + "z3_name": dev.ss_bpm3.name, + "z4_name": dev.ss_bpm4.name, + "z5_name": dev.ss_bpmsum.name, + "x_device": dev.ss_bpm_x, + "y_device": dev.ss_bpm_y, } bcu = { "x_name": dev.bcu_bpm_x.name, @@ -191,148 +188,3 @@ class MirrorConfig: } -@dataclass -class PositionedDevice: - """Class for devices with defined in and out positions""" - - device_name: str - type: str - name: str - inpos: float - outpos: float - tol: float - mot: str - reader: Callable[[], float] - - @property - def actual(self): - """Returns current motor position""" - return self.reader() - - def checkin(self): - """Returns True if motor in in the 'in' position""" - return abs(self.actual - self.inpos) <= self.tol - - def mvin(self): - """Moves motor to the 'in' position""" - scans.umv(self.mot, self.inpos, relative=False) - - def mvout(self): - """Moves motor to the 'out' position""" - scans.umv(self.mot, self.outpos, relative=False) - - def status(self): - """ Check if device is in or out or moving""" - positions = ("in", "out", "moving", "undefined") - target_in = self.inpos - target_out = self.outpos - actual = self.actual - delta_in = actual - target_in - delta_out = actual - target_out - # Check if motor is moving - if "Signal" in self.type: - moving = 0 - elif "Motor" in self.type: - d = getattr(dev, self.device_name) - moving = d.motor_is_moving.get() - if moving: - pos = positions[2] - return {"position": pos.upper(), - "name": self.name, - "moving": moving} - - if abs(delta_in) > self.tol and abs(delta_out) > self.tol: - pos = positions[3] - return {"position": pos.upper(), - "name": self.name, - "actual": actual, - "moving": moving} - - elif abs(delta_in) <= self.tol: - target = self.inpos - pos = positions[0] - delta = delta_in - elif abs(delta_out) <= self.tol: - target = self.outpos - pos = positions[1] - delta = delta_out - - return { - "name": self.name, - "position": pos.upper(), - "target": target, - "actual": actual, - "delta": delta, - "tol": self.tol, - "moving": moving, - } - - def report(self): - """ Print status of motor """ - s = self.status() - - if s['position'] == "UNDEFINED": - return (f"{s['name']:15s}: " - f"{s['position']} " - f"position {s['actual']:.3f}") - elif s['position'] == "MOVING": - return (f"{s['name']:15s}: " - f"{s['position']} ") - else: - return ( - f"{s['name']:15s}: " - f"[{s['position']}] " - f"actual = {s['actual']:.3f} " - f"target = {s['target']:.3f} " - f"delta = {s['delta']:.3f}" - ) - - - -@dataclass(frozen=True) -class PD: - """Class for positioned device positions""" - - -def build_pd(yaml_file): - """Takes the in and out values from the yaml file - and adds them to the PD class - """ - with open(yaml_file, encoding="utf-8") as f: - data = yaml.safe_load(f) - for device_name, cfg in data.items(): - # Skip devices without userParameter - user = cfg.get("userParameter") - if not user: - continue - # Set tolerance - if "tol" not in user: - user["tol"] = 0.01 - - try: - dev_obj = getattr(dev, device_name) - except: - raise KeyError(f"Device {device_name} not found in device list") - desc = cfg.get("description") - type = cfg.get("deviceClass") - target = PositionedDevice( - device_name=device_name, - type = type, - name=desc, - inpos=user["in"], - outpos=user["out"], - tol=user["tol"], - mot=dev_obj, - reader=lambda d=dev_obj, n=device_name: d.read()[n]["value"], - ) - - setattr(PD, device_name, target) - - -def init_positioned_devices(): - """Initialises the positioned devices""" - file = ( - "/sls/x10sa/config/bec/production/pxii_bec/pxii_bec/device_configs/pxii-autogenerated.yaml" - ) - build_pd(file) - print("Defined positions for devices have been updated from pxii-autogenerated.yaml") diff --git a/pxii_bec/macros/set_kbox.sh b/pxii_bec/macros/set_kbox.sh new file mode 100755 index 0000000..fa30fd9 --- /dev/null +++ b/pxii_bec/macros/set_kbox.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash +# +# Script Name: set_kbox.sh +# Description: Sets a value on a given device, such as scinti, diode, colli +# + +set -euo pipefail + +####################################### +# Usage +####################################### +usage() { + echo "Usage: $(basename "$0") " + echo + echo "Example:" + echo " $(basename "$0") colli_in 41.5" + echo " $(basename "$0") colli_out 20." + echo " $(basename "$0") scinti_in 40." + echo " $(basename "$0") diode_in 44." + echo " $(basename "$0") diode_out 20. or" + echo " $(basename "$0") scinti_out 20." + + exit 1 +} + +####################################### +# Validate Arguments +####################################### +if [[ $# -ne 2 ]]; then + usage +fi + +DEVICE_NAME="$1" +SET_VALUE="$2" + +if ! [[ "$SET_VALUE" =~ ^[0-9]+$ ]]; then + echo "Error: set_value must be numeric" + exit 1 +fi + + +####################################### +# Main +####################################### +main() { + echo "Device: $DEVICE_NAME" + echo "Value : $SET_VALUE" + + # --- Your logic here --- + # Example placeholder: + + if [[ $DEVICE_NAME == "colli_in" ]]; then + echo "caput X10SA-ES-COL:POS-SET-SEQ.DO2 $SET_VALUE" + fi + if [[ $DEVICE_NAME == "colli_out" ]]; then + echo "caput X10SA-ES-COL:POS-SET-SEQ.DO1 $SET_VALUE" + fi + # + if [[ $DEVICE_NAME == "scinti_in" ]]; then + echo "caput X10SA-ES-SCL:POS-SET-SEQ.DO2 $SET_VALUE" + fi + if [[ $DEVICE_NAME == "diode_in" ]]; then + echo "caput X10SA-ES-SCL:POS-SET-SEQ.DO3 $SET_VALUE" + fi + if [[ $DEVICE_NAME == "scinti_out" || $DEVICE_NAME == "diode_out" ]]; then + echo "caput X10SA-ES-SCL:POS-SET-SEQ.DO1 $SET_VALUE" + fi + # + echo "Setting device '$DEVICE_NAME' to '$SET_VALUE'..." + + # Simulate success + echo "Done." +} + +main diff --git a/pxii_bec/macros/test.py_txt b/pxii_bec/macros/test.py_txt new file mode 100644 index 0000000..f97dc7e --- /dev/null +++ b/pxii_bec/macros/test.py_txt @@ -0,0 +1,6 @@ +print("Hello World") +try: + print(PD.coll_y.state) + print("success") +except Exception as e: + print(f"Error {e}") \ No newline at end of file diff --git a/pxii_bec/macros/update_PD_from_yaml.py b/pxii_bec/macros/update_PD_from_yaml.py new file mode 100644 index 0000000..c4837dc --- /dev/null +++ b/pxii_bec/macros/update_PD_from_yaml.py @@ -0,0 +1,59 @@ +""" +update_PD_from_yaml.py + +Creates PositionedDevice, MultiPositionDevice and GuardedAxis +instances from YAML configuration. +""" + +import yaml + + +def build_pd(yaml_file): + """Takes the defined positions from the device yaml file + and adds them to the PD class + """ + pos_devs = [] + mp_devs = [] + ga_devs = [] + + + with open(yaml_file, encoding="utf-8") as f: + data = yaml.safe_load(f) + + for bec_name, cfg in data.items(): + # Skip devices without userParameter + user = cfg.get("userParameter") + + if not user: + continue + # ------------------------------------------------------------------ + # Positioned device + # ------------------------------------------------------------------ + if user["type"] == "positioner": + pos_devs.append(bec_name) + posdev = PositionedDevice(bec_name=bec_name, inpos=1.0, outpos=0.0) + setattr(PD, bec_name, posdev) + + # ------------------------------------------------------------------ + # Multi-position device + # ------------------------------------------------------------------ + elif user["type"] == "multi-position": + mp_devs.append(bec_name) + positions = {k: v for k, v in user.items() if k != "type"} + mpdev = MultiPositionDevice(bec_name=bec_name, positions=positions) + setattr(PD, bec_name, mpdev) + + # ------------------------------------------------------------------ + # Guarded device + # ------------------------------------------------------------------ + elif user["type"] == "guarded": + ga_devs.append(bec_name) + config = {k: v for k, v in user.items() if k != "type"} + gadev = GuardedAxis( + bec_name=bec_name, policy=get_policy_for_axis(bec_name), config=config + ) + setattr(PD, bec_name, gadev) + + print(f"Positioned devices: {pos_devs}") + print(f"Guarded axes: {ga_devs}") + print(f"Multi position devices: {mp_devs}")