From 84eb0c74c69daa5431a10831aa0e4b3f69e7ae5e Mon Sep 17 00:00:00 2001 From: Mohacsi Istvan Date: Fri, 7 Jun 2024 12:02:52 +0200 Subject: [PATCH] Preliminary DB generator from ophyd_devices --- pxiii_bec/device_configs/DbGenerator.py | 49 +++ pxiii_bec/device_configs/x06da_compact.yaml | 194 ++++++++++ .../device_configs/x06da_device_config.yml | 351 ++++++++++++++++++ 3 files changed, 594 insertions(+) create mode 100644 pxiii_bec/device_configs/DbGenerator.py create mode 100644 pxiii_bec/device_configs/x06da_compact.yaml create mode 100644 pxiii_bec/device_configs/x06da_device_config.yml diff --git a/pxiii_bec/device_configs/DbGenerator.py b/pxiii_bec/device_configs/DbGenerator.py new file mode 100644 index 0000000..59a8297 --- /dev/null +++ b/pxiii_bec/device_configs/DbGenerator.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +""" +Created on Wed Aug 31 10:27:18 2022 + +Database migration from a sensible format to the BEC YAML file format + +@author: mohacsi_i +""" + +import yaml +import yaml.representer + + + +def MigrateYamlFile(filein, fileout): + """ Migrates an absolutely minimal YAML config file to the format + required by the BEC (i.e. adding default fields). + """ + fp = open(filein, "r") + lut = yaml.load(fp, Loader=yaml.Loader) + + # Allocate empty database + db = dict() + + for k,v in lut.items(): + new = v + + # Adding defaults + if 'onFailure' not in new: + new['onFailure'] = "buffer" + if 'enabled' not in new: + new['enabled'] = True + if 'readoutPriority' not in new: + new['readoutPriority'] = "monitored" + if 'readOnly' not in new: + new['readOnly'] = bool(new['deviceClass'] in ('ophyd.EpicsSignalRO')) + if 'softwareTrigger' not in new: + new['softwareTrigger'] = False + + db[k] = new + + with open(fileout, 'w') as stream: + yaml.dump(db, stream, default_flow_style=None, sort_keys=False) + + + +# Automatically start simulation if directly invoked +if __name__ == "__main__": + MigrateYamlFile("./x06da_compact.yaml", "x06da_device_config.yml") diff --git a/pxiii_bec/device_configs/x06da_compact.yaml b/pxiii_bec/device_configs/x06da_compact.yaml new file mode 100644 index 0000000..b6670db --- /dev/null +++ b/pxiii_bec/device_configs/x06da_compact.yaml @@ -0,0 +1,194 @@ +# OP before mono +slh_trxr: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-SLH:TRXR' +slh_trxw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-SLH:TRXW' +slh_tryt: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-SLH:TRYT' +slh_tryb: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-SLH:TRYB' +fi1_try: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-SFI1:TRY1' + +# DCCM crystal 1 +dccm_pitch1: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-DCCM:PITCH1' +dccm_energy1: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-DCCM:ENERGY1' +dccm_diode: + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + prefix: 'X02DA-OP-XPM1:BOT:READOUT' + +# DCCM crystal 2 +dccm_pitch2: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-DCCM:PITCH2' +dccm_energy2: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-DCCM:ENERGY2' +dccm_xbpm: + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + prefix: 'X02DA-OP-XBPM1:SumAll:MeanValue_RBV' + +# Secondary source XBPM +ssxbpm_trx: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSBPM:TRX1' +ssxbpm_try: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSBPM:TRY1' + +ssslit_trxr: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSH:TRXR' +ssslit_trxw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSH:TRXW' +ssslit_tryt: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSV:TRYT' +ssslit_tryb: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSV:TRYB' +ssxi1_trx: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSV:TRX1' +ssxi1_try: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSV:TRY1' + +# Vertical focusing mirror +vfm_trxu: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRXU' + enabled: false +vfm_trxd: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRXD' + enabled: false +vfm_tryuw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRYUW' +vfm_tryr: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRYR' +vfm_trydw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRYDW' +vfm_pitch: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:PITCH' +vfm_yaw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:YAW' + enabled: false +vfm_roll: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:ROLL' + enabled: false +vfm_trx: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRX' + enabled: false +vfm_try: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRY' + +# Horizontal focusing mirror +hfm_trxu: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRXU' + enabled: false +hfm_trxd: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRXD' + enabled: false +hfm_tryur: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRYUR' +hfm_tryw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRYW' +hfm_trydr: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRYDR' +hfm_pitch: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:PITCH' + enabled: false +hfm_yaw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:YAW' + enabled: false +hfm_roll: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:ROLL' + enabled: false +hfm_trx: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRX' + enabled: false +hfm_try: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRY' + + +# Exposure box signals +#xbox_diode: +# deviceClass: ophyd.EpicsSignalRO +# deviceConfig: +# prefix: 'X02DA-ES-DI1:READOUT' +#bstop_diode: +# deviceClass: ophyd.EpicsSignalRO +# deviceConfig: +# prefix: 'X02DA-ES-BS:READOUT' + + + + diff --git a/pxiii_bec/device_configs/x06da_device_config.yml b/pxiii_bec/device_configs/x06da_device_config.yml new file mode 100644 index 0000000..f385087 --- /dev/null +++ b/pxiii_bec/device_configs/x06da_device_config.yml @@ -0,0 +1,351 @@ +slh_trxr: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-SLH:TRXR' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +slh_trxw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-SLH:TRXW' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +slh_tryt: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-SLH:TRYT' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +slh_tryb: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-SLH:TRYB' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +fi1_try: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-SFI1:TRY1' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +dccm_pitch1: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-DCCM:PITCH1' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +dccm_energy1: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-DCCM:ENERGY1' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +dccm_diode: + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + prefix: 'X02DA-OP-XPM1:BOT:READOUT' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: true + softwareTrigger: false +dccm_pitch2: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-DCCM:PITCH2' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +dccm_energy2: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-OP-DCCM:ENERGY2' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +dccm_xbpm: + deviceClass: ophyd.EpicsSignalRO + deviceConfig: + prefix: 'X02DA-OP-XBPM1:SumAll:MeanValue_RBV' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: true + softwareTrigger: false +ssxbpm_trx: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSBPM:TRX1' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +ssxbpm_try: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSBPM:TRY1' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +ssslit_trxr: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSH:TRXR' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +ssslit_trxw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSH:TRXW' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +ssslit_tryt: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSV:TRYT' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +ssslit_tryb: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSV:TRYB' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +ssxi1_trx: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSV:TRX1' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +ssxi1_try: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-SSSV:TRY1' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +vfm_trxu: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRXU' + enabled: false + onFailure: buffer + readoutPriority: monitored + readOnly: false + softwareTrigger: false +vfm_trxd: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRXD' + enabled: false + onFailure: buffer + readoutPriority: monitored + readOnly: false + softwareTrigger: false +vfm_tryuw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRYUW' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +vfm_tryr: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRYR' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +vfm_trydw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRYDW' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +vfm_pitch: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:PITCH' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +vfm_yaw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:YAW' + enabled: false + onFailure: buffer + readoutPriority: monitored + readOnly: false + softwareTrigger: false +vfm_roll: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:ROLL' + enabled: false + onFailure: buffer + readoutPriority: monitored + readOnly: false + softwareTrigger: false +vfm_trx: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRX' + enabled: false + onFailure: buffer + readoutPriority: monitored + readOnly: false + softwareTrigger: false +vfm_try: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-VFM:TRY' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +hfm_trxu: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRXU' + enabled: false + onFailure: buffer + readoutPriority: monitored + readOnly: false + softwareTrigger: false +hfm_trxd: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRXD' + enabled: false + onFailure: buffer + readoutPriority: monitored + readOnly: false + softwareTrigger: false +hfm_tryur: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRYUR' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +hfm_tryw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRYW' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +hfm_trydr: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRYDR' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false +hfm_pitch: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:PITCH' + enabled: false + onFailure: buffer + readoutPriority: monitored + readOnly: false + softwareTrigger: false +hfm_yaw: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:YAW' + enabled: false + onFailure: buffer + readoutPriority: monitored + readOnly: false + softwareTrigger: false +hfm_roll: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:ROLL' + enabled: false + onFailure: buffer + readoutPriority: monitored + readOnly: false + softwareTrigger: false +hfm_trx: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRX' + enabled: false + onFailure: buffer + readoutPriority: monitored + readOnly: false + softwareTrigger: false +hfm_try: + deviceClass: ophyd.EpicsMotor + deviceConfig: + prefix: 'X02DA-ES-HFM:TRY' + onFailure: buffer + enabled: true + readoutPriority: monitored + readOnly: false + softwareTrigger: false