From ebbcc6aa15918b625e8fc90817d848e2d0d4876f Mon Sep 17 00:00:00 2001 From: appel_c Date: Wed, 11 Feb 2026 21:17:30 +0100 Subject: [PATCH] refactor(eps): deactivate black for eps.py to keep signal component formatted in single line. --- csaxs_bec/devices/epics/eps.py | 690 +++++---------------------------- 1 file changed, 98 insertions(+), 592 deletions(-) diff --git a/csaxs_bec/devices/epics/eps.py b/csaxs_bec/devices/epics/eps.py index 68ba3a3..6ffa179 100644 --- a/csaxs_bec/devices/epics/eps.py +++ b/csaxs_bec/devices/epics/eps.py @@ -1,5 +1,9 @@ """EPS module for cSAXS beamline: defines the EPS device with its components and methods.""" +# fmt: off +# Disable Black formatting for this file to preserve an easier readable structure for the component definitions. + +# pylint: disable=line-too-long from __future__ import annotations import time @@ -30,553 +34,96 @@ class EPSSubDevices(Device): class EPSAlarms(EPSSubDevices): """EPS alarms at the cSAXS beamline.""" - eps_alarm_cnt = Cpt( - EpicsSignalRO, - read_pv="X12SA-EPS-PLC:AlarmCnt_EPS", - add_prefix=("",), - name="eps_alarm_cnt", - kind=Kind.omitted, - doc="X12SA EPS Alarm count", - auto_monitor=True, - labels={"alarm"}, - ) - mis_alarm_cnt = Cpt( - EpicsSignalRO, - read_pv="ARS00-MIS-PLC-01:AlarmCnt_Frontends", - add_prefix=("",), - name="mis_alarm_cnt", - kind=Kind.omitted, - doc="FrontEnd MIS Alarm count", - auto_monitor=True, - labels={"alarm"}, - ) + eps_alarm_cnt = Cpt(EpicsSignalRO, read_pv="X12SA-EPS-PLC:AlarmCnt_EPS", add_prefix=("",), name="eps_alarm_cnt", kind=Kind.omitted, doc="X12SA EPS Alarm count", auto_monitor=True, labels={"alarm"}) + mis_alarm_cnt = Cpt(EpicsSignalRO, read_pv="ARS00-MIS-PLC-01:AlarmCnt_Frontends", add_prefix=("",), name="mis_alarm_cnt", kind=Kind.omitted, doc="FrontEnd MIS Alarm count", auto_monitor=True, labels={"alarm"}) class ValvesFrontend(EPSSubDevices): """Valves frontend at the cSAXS beamline.""" - ################ - ### Frontend ### - ################ - fe_vvpg_0000 = Cpt( - EpicsSignalRO, - read_pv="X12SA-FE-VVPG-0000:PLC_OPEN", - add_prefix=("",), - name="fevvpg0000", - kind=Kind.omitted, - doc="FE-VVPG-0000", - auto_monitor=True, - labels={"valve"}, - ) - fe_vvpg_1010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-FE-VVPG-1010:PLC_OPEN", - add_prefix=("",), - name="fevvpg1010", - kind=Kind.omitted, - doc="FE-VVPG-1010", - auto_monitor=True, - labels={"valve"}, - ) - fe_vvfv_2010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-FE-VVFV-2010:PLC_OPEN", - add_prefix=("",), - name="fevvfv2010", - kind=Kind.omitted, - doc="FE-VVFV-2010", - auto_monitor=True, - labels={"valve"}, - ) - fe_vvpg_2010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-FE-VVPG-2010:PLC_OPEN", - add_prefix=("",), - name="fevvpg2010", - kind=Kind.omitted, - doc="FE-VVPG-2010", - auto_monitor=True, - labels={"valve"}, - ) - - ################ - ### Optics ### - ################ + fe_vvpg_0000 = Cpt(EpicsSignalRO, read_pv="X12SA-FE-VVPG-0000:PLC_OPEN", add_prefix=("",), name="fevvpg0000", kind=Kind.omitted, doc="FE-VVPG-0000", auto_monitor=True, labels={"valve"}) + fe_vvpg_1010 = Cpt(EpicsSignalRO, read_pv="X12SA-FE-VVPG-1010:PLC_OPEN", add_prefix=("",), name="fevvpg1010", kind=Kind.omitted, doc="FE-VVPG-1010", auto_monitor=True, labels={"valve"}) + fe_vvfv_2010 = Cpt(EpicsSignalRO, read_pv="X12SA-FE-VVFV-2010:PLC_OPEN", add_prefix=("",), name="fevvfv2010", kind=Kind.omitted, doc="FE-VVFV-2010", auto_monitor=True, labels={"valve"}) + fe_vvpg_2010 = Cpt(EpicsSignalRO, read_pv="X12SA-FE-VVPG-2010:PLC_OPEN", add_prefix=("",), name="fevvpg2010", kind=Kind.omitted, doc="FE-VVPG-2010", auto_monitor=True, labels={"valve"}) class ValvesOptics(EPSSubDevices): """Valves at the optics hutch.""" - op_vvpg_1010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-VVPG-1010:PLC_OPEN", - add_prefix=("",), - name="opvvpg1010", - kind=Kind.omitted, - doc="OP-VVPG-1010", - auto_monitor=True, - labels={"valve"}, - ) - op_vvpg_2010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-VVPG-2010:PLC_OPEN", - add_prefix=("",), - name="opvvpg2010", - kind=Kind.omitted, - doc="OP-VVPG-2010", - auto_monitor=True, - labels={"valve"}, - ) - op_vvpg_3010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-VVPG-3010:PLC_OPEN", - add_prefix=("",), - name="opvvpg3010", - kind=Kind.omitted, - doc="OP-VVPG-3010", - auto_monitor=True, - labels={"valve"}, - ) - op_vvpg_3020 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-VVPG-3020:PLC_OPEN", - add_prefix=("",), - name="opvvpg3020", - kind=Kind.omitted, - doc="OP-VVPG-3020", - auto_monitor=True, - labels={"valve"}, - ) - op_vvpg_4010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-VVPG-4010:PLC_OPEN", - add_prefix=("",), - name="opvvpg4010", - kind=Kind.omitted, - doc="OP-VVPG-4010", - auto_monitor=True, - labels={"valve"}, - ) - op_vvpg_5010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-VVPG-5010:PLC_OPEN", - add_prefix=("",), - name="opvvpg5010", - kind=Kind.omitted, - doc="OP-VVPG-5010", - auto_monitor=True, - labels={"valve"}, - ) - op_vvpg_6010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-VVPG-6010:PLC_OPEN", - add_prefix=("",), - name="opvvpg6010", - kind=Kind.omitted, - doc="OP-VVPG-6010", - auto_monitor=True, - labels={"valve"}, - ) - op_vvpg_7010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-VVPG-7010:PLC_OPEN", - add_prefix=("",), - name="opvvpg7010", - kind=Kind.omitted, - doc="OP-VVPG-7010", - auto_monitor=True, - labels={"valve"}, - ) - - ################## - ### Endstation ### - ################## - - + op_vvpg_1010 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-VVPG-1010:PLC_OPEN", add_prefix=("",), name="opvvpg1010", kind=Kind.omitted, doc="OP-VVPG-1010", auto_monitor=True, labels={"valve"}) + op_vvpg_2010 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-VVPG-2010:PLC_OPEN", add_prefix=("",), name="opvvpg2010", kind=Kind.omitted, doc="OP-VVPG-2010", auto_monitor=True, labels={"valve"}) + op_vvpg_3010 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-VVPG-3010:PLC_OPEN", add_prefix=("",), name="opvvpg3010", kind=Kind.omitted, doc="OP-VVPG-3010", auto_monitor=True, labels={"valve"}) + op_vvpg_3020 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-VVPG-3020:PLC_OPEN", add_prefix=("",), name="opvvpg3020", kind=Kind.omitted, doc="OP-VVPG-3020", auto_monitor=True, labels={"valve"}) + op_vvpg_4010 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-VVPG-4010:PLC_OPEN", add_prefix=("",), name="opvvpg4010", kind=Kind.omitted, doc="OP-VVPG-4010", auto_monitor=True, labels={"valve"}) + op_vvpg_5010 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-VVPG-5010:PLC_OPEN", add_prefix=("",), name="opvvpg5010", kind=Kind.omitted, doc="OP-VVPG-5010", auto_monitor=True, labels={"valve"}) + op_vvpg_6010 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-VVPG-6010:PLC_OPEN", add_prefix=("",), name="opvvpg6010", kind=Kind.omitted, doc="OP-VVPG-6010", auto_monitor=True, labels={"valve"}) + op_vvpg_7010 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-VVPG-7010:PLC_OPEN", add_prefix=("",), name="opvvpg7010", kind=Kind.omitted, doc="OP-VVPG-7010", auto_monitor=True, labels={"valve"}) class ValvesEndstation(EPSSubDevices): """Endstation valves at the cSAXS beamline.""" - es_vvpg_1010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-ES-VVPG-1010:PLC_OPEN", - add_prefix=("",), - name="esvvpg1010", - kind=Kind.omitted, - doc="ES-VVPG-1010", - auto_monitor=True, - labels={"valve"}, - ) - + es_vvpg_1010 = Cpt(EpicsSignalRO, read_pv="X12SA-ES-VVPG-1010:PLC_OPEN", add_prefix=("",), name="esvvpg1010", kind=Kind.omitted, doc="ES-VVPG-1010", auto_monitor=True, labels={"valve"}) class ShuttersFrontend(EPSSubDevices): """Shutters frontend.""" - fe_psh1 = Cpt( - EpicsSignalRO, - read_pv="X12SA-FE-PSH1-EMLS-0010:OPEN", - add_prefix=("",), - name="fepsh1", - kind=Kind.omitted, - doc="FE-PSH1-EMLS-0010", - auto_monitor=True, - labels={"shutter"}, - ) - fe_sto1 = Cpt( - EpicsSignalRO, - read_pv="X12SA-FE-STO1-EMLS-0010:OPEN", - add_prefix=("",), - name="festo1", - kind=Kind.omitted, - doc="FE-STO1-EMLS-0010", - auto_monitor=True, - labels={"shutter"}, - ) - + fe_psh1 = Cpt(EpicsSignalRO, read_pv="X12SA-FE-PSH1-EMLS-0010:OPEN", add_prefix=("",), name="fepsh1", kind=Kind.omitted, doc="FE-PSH1-EMLS-0010", auto_monitor=True, labels={"shutter"}) + fe_sto1 = Cpt(EpicsSignalRO, read_pv="X12SA-FE-STO1-EMLS-0010:OPEN", add_prefix=("",), name="festo1", kind=Kind.omitted, doc="FE-STO1-EMLS-0010", auto_monitor=True, labels={"shutter"}) class ShuttersEndstation(EPSSubDevices): """Shutters at the endstation.""" - es_psh17010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-PSH1-EMLS-7010:OPEN", - add_prefix=("",), - name="espsh17010", - kind=Kind.omitted, - doc="OP-PSH1-EMLS-7010", - auto_monitor=True, - labels={"shutter"}, - ) - + es_psh17010 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-PSH1-EMLS-7010:OPEN", add_prefix=("",), name="espsh17010", kind=Kind.omitted, doc="OP-PSH1-EMLS-7010", auto_monitor=True, labels={"shutter"}) class DMMMonochromator(EPSSubDevices): """DMM monochromator signals at the cSAXS beamline.""" - dmm_temp_surface_1 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM-ETTC-3010:TEMP", - add_prefix=("",), - name="dmm_temp_surface_1", - kind=Kind.omitted, - doc="DMM Temp Surface 1", - auto_monitor=True, - labels={"temp"}, - ) - dmm_temp_surface_2 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM-ETTC-3020:TEMP", - add_prefix=("",), - name="dmm_temp_surface_2", - kind=Kind.omitted, - doc="DMM Temp Surface 2", - auto_monitor=True, - labels={"temp"}, - ) - dmm_temp_shield_1_disaster = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM-ETTC-3030:TEMP", - add_prefix=("",), - name="dmm_temp_shield_1_disaster", - kind=Kind.omitted, - doc="DMM Temp Shield 1 (disaster)", - auto_monitor=True, - labels={"temp"}, - ) - dmm_temp_shield_2_disaster = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM-ETTC-3040:TEMP", - add_prefix=("",), - name="dmm_temp_shield_2_disaster", - kind=Kind.omitted, - doc="DMM Temp Shield 2 (disaster)", - auto_monitor=True, - labels={"temp"}, - ) + dmm_temp_surface_1 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM-ETTC-3010:TEMP", add_prefix=("",), name="dmm_temp_surface_1", kind=Kind.omitted, doc="DMM Temp Surface 1", auto_monitor=True, labels={"temp"}) + dmm_temp_surface_2 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM-ETTC-3020:TEMP", add_prefix=("",), name="dmm_temp_surface_2", kind=Kind.omitted, doc="DMM Temp Surface 2", auto_monitor=True, labels={"temp"}) + dmm_temp_shield_1_disaster = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM-ETTC-3030:TEMP", add_prefix=("",), name="dmm_temp_shield_1_disaster", kind=Kind.omitted, doc="DMM Temp Shield 1 (disaster)", auto_monitor=True, labels={"temp"}) + dmm_temp_shield_2_disaster = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM-ETTC-3040:TEMP", add_prefix=("",), name="dmm_temp_shield_2_disaster", kind=Kind.omitted, doc="DMM Temp Shield 2 (disaster)", auto_monitor=True, labels={"temp"}) - dmm_translation_thru = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM-EMLS-3010:THRU", - add_prefix=("",), - name="dmm_translation_thru", - kind=Kind.omitted, - doc="DMM Translation ThruPos", - auto_monitor=True, - labels={"switch"}, - ) - dmm_translation_in = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM-EMLS-3020:IN", - add_prefix=("",), - name="dmm_translation_in", - kind=Kind.omitted, - doc="DMM Translation InPos", - auto_monitor=True, - labels={"switch"}, - ) - dmm_bragg_thru = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM-EMLS-3030:THRU", - add_prefix=("",), - name="dmm_bragg_thru", - kind=Kind.omitted, - doc="DMM Bragg ThruPos", - auto_monitor=True, - labels={"switch"}, - ) - dmm_bragg_in = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM-EMLS-3040:IN", - add_prefix=("",), - name="dmm_bragg_in", - kind=Kind.omitted, - doc="DMM Bragg InPos", - auto_monitor=True, - labels={"switch"}, - ) + dmm_translation_thru = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM-EMLS-3010:THRU", add_prefix=("",), name="dmm_translation_thru", kind=Kind.omitted, doc="DMM Translation ThruPos", auto_monitor=True, labels={"switch"}) + dmm_translation_in = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM-EMLS-3020:IN", add_prefix=("",), name="dmm_translation_in", kind=Kind.omitted, doc="DMM Translation InPos", auto_monitor=True, labels={"switch"}) + dmm_bragg_thru = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM-EMLS-3030:THRU", add_prefix=("",), name="dmm_bragg_thru", kind=Kind.omitted, doc="DMM Bragg ThruPos", auto_monitor=True, labels={"switch"}) + dmm_bragg_in = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM-EMLS-3040:IN", add_prefix=("",), name="dmm_bragg_in", kind=Kind.omitted, doc="DMM Bragg InPos", auto_monitor=True, labels={"switch"}) - dmm_heater_fault_xtal_1 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM-EMSW-3050:SWITCH", - add_prefix=("",), - name="dmm_heater_fault_xtal_1", - kind=Kind.omitted, - doc="DMM Heater Fault XTAL 1", - auto_monitor=True, - labels={"fault"}, - ) - dmm_heater_fault_xtal_2 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM-EMSW-3060:SWITCH", - add_prefix=("",), - name="dmm_heater_fault_xtal_2", - kind=Kind.omitted, - doc="DMM Heater Fault XTAL 2", - auto_monitor=True, - labels={"fault"}, - ) - dmm_heater_fault_support_1 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM-EMSW-3070:SWITCH", - add_prefix=("",), - name="dmm_heater_fault_support_1", - kind=Kind.omitted, - doc="DMM Heater Fault Support 1", - auto_monitor=True, - labels={"fault"}, - ) + dmm_heater_fault_xtal_1 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM-EMSW-3050:SWITCH", add_prefix=("",), name="dmm_heater_fault_xtal_1", kind=Kind.omitted, doc="DMM Heater Fault XTAL 1", auto_monitor=True, labels={"fault"}) + dmm_heater_fault_xtal_2 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM-EMSW-3060:SWITCH", add_prefix=("",), name="dmm_heater_fault_xtal_2", kind=Kind.omitted, doc="DMM Heater Fault XTAL 2", auto_monitor=True, labels={"fault"}) + dmm_heater_fault_support_1 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM-EMSW-3070:SWITCH", add_prefix=("",), name="dmm_heater_fault_support_1", kind=Kind.omitted, doc="DMM Heater Fault Support 1", auto_monitor=True, labels={"fault"}) - dmm_energy = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM1:ENERGY-GET", - add_prefix=("",), - name="dmm_energy", - kind=Kind.omitted, - doc="DMM Energy", - auto_monitor=True, - labels={"energy"}, - ) - dmm_position = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM1:POSITION", - add_prefix=("",), - name="dmm_position", - kind=Kind.omitted, - doc="DMM Position", - auto_monitor=True, - labels={"string"}, - ) - dmm_stripe = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-DMM1:STRIPE", - add_prefix=("",), - name="dmm_stripe", - kind=Kind.omitted, - doc="DMM Stripe", - auto_monitor=True, - labels={"string"}, - ) + dmm_energy = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM1:ENERGY-GET", add_prefix=("",), name="dmm_energy", kind=Kind.omitted, doc="DMM Energy", auto_monitor=True, labels={"energy"}) + dmm_position = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM1:POSITION", add_prefix=("",), name="dmm_position", kind=Kind.omitted, doc="DMM Position", auto_monitor=True, labels={"string"}) + dmm_stripe = Cpt(EpicsSignalRO, read_pv="X12SA-OP-DMM1:STRIPE", add_prefix=("",), name="dmm_stripe", kind=Kind.omitted, doc="DMM Stripe", auto_monitor=True, labels={"string"}) class CCMMonochromator(EPSSubDevices): """CCM monochromator signals at the cSAXS beamline.""" - ccm_temp_crystal = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-CCM-ETTC-4010:TEMP", - add_prefix=("",), - name="ccm_temp_crystal", - kind=Kind.omitted, - doc="CCM Temp Crystal", - auto_monitor=True, - labels={"temp"}, - ) - ccm_temp_shield_disaster = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-CCM-ETTC-4020:TEMP", - add_prefix=("",), - name="ccm_temp_shield_disaster", - kind=Kind.omitted, - doc="CCM Temp Shield (disaster)", - auto_monitor=True, - labels={"temp"}, - ) + ccm_temp_crystal = Cpt(EpicsSignalRO, read_pv="X12SA-OP-CCM-ETTC-4010:TEMP", add_prefix=("",), name="ccm_temp_crystal", kind=Kind.omitted, doc="CCM Temp Crystal", auto_monitor=True, labels={"temp"}) + ccm_temp_shield_disaster = Cpt(EpicsSignalRO, read_pv="X12SA-OP-CCM-ETTC-4020:TEMP", add_prefix=("",), name="ccm_temp_shield_disaster", kind=Kind.omitted, doc="CCM Temp Shield (disaster)", auto_monitor=True, labels={"temp"}) - ccm_heater_fault_1 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-CCM-EMSW-4010:SWITCH", - add_prefix=("",), - name="ccm_heater_fault_1", - kind=Kind.omitted, - doc="CCM Heater Fault 1", - auto_monitor=True, - labels={"fault"}, - ) - ccm_heater_fault_2 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-CCM-EMSW-4020:SWITCH", - add_prefix=("",), - name="ccm_heater_fault_2", - kind=Kind.omitted, - doc="CCM Heater Fault 2", - auto_monitor=True, - labels={"fault"}, - ) - ccm_heater_fault_3 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-CCM-EMSW-4030:SWITCH", - add_prefix=("",), - name="ccm_heater_fault_3", - kind=Kind.omitted, - doc="CCM Heater Fault 3", - auto_monitor=True, - labels={"fault"}, - ) + ccm_heater_fault_1 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-CCM-EMSW-4010:SWITCH", add_prefix=("",), name="ccm_heater_fault_1", kind=Kind.omitted, doc="CCM Heater Fault 1", auto_monitor=True, labels={"fault"}) + ccm_heater_fault_2 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-CCM-EMSW-4020:SWITCH", add_prefix=("",), name="ccm_heater_fault_2", kind=Kind.omitted, doc="CCM Heater Fault 2", auto_monitor=True, labels={"fault"}) + ccm_heater_fault_3 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-CCM-EMSW-4030:SWITCH", add_prefix=("",), name="ccm_heater_fault_3", kind=Kind.omitted, doc="CCM Heater Fault 3", auto_monitor=True, labels={"fault"}) - ccm_energy = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-CCM1:ENERGY-GET", - add_prefix=("",), - name="ccm_energy", - kind=Kind.omitted, - doc="CCM Energy", - auto_monitor=True, - labels={"energy"}, - ) - ccm_position = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-CCM1:POSITION", - add_prefix=("",), - name="ccm_position", - kind=Kind.omitted, - doc="CCM Position", - auto_monitor=True, - labels={"string"}, - ) + ccm_energy = Cpt(EpicsSignalRO, read_pv="X12SA-OP-CCM1:ENERGY-GET", add_prefix=("",), name="ccm_energy", kind=Kind.omitted, doc="CCM Energy", auto_monitor=True, labels={"energy"}) + ccm_position = Cpt(EpicsSignalRO, read_pv="X12SA-OP-CCM1:POSITION", add_prefix=("",), name="ccm_position", kind=Kind.omitted, doc="CCM Position", auto_monitor=True, labels={"string"}) class CoolingWater(EPSSubDevices): """Cooling water signals at the cSAXS beamline.""" - op_sl1_efsw_2010_flow = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-SL1-EFSW-2010:FLOW", - add_prefix=("",), - name="op_sl1_efsw_2010_flow", - kind=Kind.omitted, - doc="OP-SL1-EFSW-2010", - auto_monitor=True, - labels={"flow"}, - ) - op_sl2_efsw_2010_flow = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-SL2-EFSW-2010:FLOW", - add_prefix=("",), - name="op_sl2_efsw_2010_flow", - kind=Kind.omitted, - doc="OP-SL2-EFSW-2010", - auto_monitor=True, - labels={"flow"}, - ) - op_eb1_efsw_5010_flow = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-EB1-EFSW-5010:FLOW", - add_prefix=("",), - name="op_eb1_efsw_5010_flow", - kind=Kind.omitted, - doc="OP-EB1-EFSW-5010", - auto_monitor=True, - labels={"flow"}, - ) - op_eb1_efsw_5020_flow = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-EB1-EFSW-5020:FLOW", - add_prefix=("",), - name="op_eb1_efsw_5020_flow", - kind=Kind.omitted, - doc="OP-EB1-EFSW-5020", - auto_monitor=True, - labels={"flow"}, - ) - op_sl3_efsw_5010_flow = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-SL3-EFSW-5010:FLOW", - add_prefix=("",), - name="op_sl3_efsw_5010_flow", - kind=Kind.omitted, - doc="OP-SL3-EFSW-5010", - auto_monitor=True, - labels={"flow"}, - ) - op_kb_efsw_6010_flow = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-KB-EFSW-6010:FLOW", - add_prefix=("",), - name="op_kb_efsw_6010_flow", - kind=Kind.omitted, - doc="OP-KB-EFSW-6010", - auto_monitor=True, - labels={"flow"}, - ) - op_psh1_efsw_7010_flow = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-PSH1-EFSW-7010:FLOW", - add_prefix=("",), - name="op_psh1_efsw_7010_flow", - kind=Kind.omitted, - doc="OP-PSH1-EFSW-7010", - auto_monitor=True, - labels={"flow"}, - ) - es_eb2_efsw_1010_flow = Cpt( - EpicsSignalRO, - read_pv="X12SA-ES-EB2-EFSW-1010:FLOW", - add_prefix=("",), - name="es_eb2_efsw_1010_flow", - kind=Kind.omitted, - doc="ES-EB2-EFSW-1010", - auto_monitor=True, - labels={"flow"}, - ) + op_sl1_efsw_2010_flow = Cpt(EpicsSignalRO, read_pv="X12SA-OP-SL1-EFSW-2010:FLOW", add_prefix=("",), name="op_sl1_efsw_2010_flow", kind=Kind.omitted, doc="OP-SL1-EFSW-2010", auto_monitor=True, labels={"flow"}) + op_sl2_efsw_2010_flow = Cpt(EpicsSignalRO, read_pv="X12SA-OP-SL2-EFSW-2010:FLOW", add_prefix=("",), name="op_sl2_efsw_2010_flow", kind=Kind.omitted, doc="OP-SL2-EFSW-2010", auto_monitor=True, labels={"flow"}) + op_eb1_efsw_5010_flow = Cpt(EpicsSignalRO, read_pv="X12SA-OP-EB1-EFSW-5010:FLOW", add_prefix=("",), name="op_eb1_efsw_5010_flow", kind=Kind.omitted, doc="OP-EB1-EFSW-5010", auto_monitor=True, labels={"flow"}) + op_eb1_efsw_5020_flow = Cpt(EpicsSignalRO, read_pv="X12SA-OP-EB1-EFSW-5020:FLOW", add_prefix=("",), name="op_eb1_efsw_5020_flow", kind=Kind.omitted, doc="OP-EB1-EFSW-5020", auto_monitor=True, labels={"flow"}) + op_sl3_efsw_5010_flow = Cpt(EpicsSignalRO, read_pv="X12SA-OP-SL3-EFSW-5010:FLOW", add_prefix=("",), name="op_sl3_efsw_5010_flow", kind=Kind.omitted, doc="OP-SL3-EFSW-5010", auto_monitor=True, labels={"flow"}) + op_kb_efsw_6010_flow = Cpt(EpicsSignalRO, read_pv="X12SA-OP-KB-EFSW-6010:FLOW", add_prefix=("",), name="op_kb_efsw_6010_flow", kind=Kind.omitted, doc="OP-KB-EFSW-6010", auto_monitor=True, labels={"flow"}) + op_psh1_efsw_7010_flow = Cpt(EpicsSignalRO, read_pv="X12SA-OP-PSH1-EFSW-7010:FLOW", add_prefix=("",), name="op_psh1_efsw_7010_flow", kind=Kind.omitted, doc="OP-PSH1-EFSW-7010", auto_monitor=True, labels={"flow"}) + es_eb2_efsw_1010_flow = Cpt(EpicsSignalRO, read_pv="X12SA-ES-EB2-EFSW-1010:FLOW", add_prefix=("",), name="es_eb2_efsw_1010_flow", kind=Kind.omitted, doc="ES-EB2-EFSW-1010", auto_monitor=True, labels={"flow"}) - op_cs_ecvw_0010 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-CS-ECVW-0010:PLC_OPEN", - add_prefix=("",), - name="op_cs_ecvw_0010", - kind=Kind.omitted, - doc="OP-CS-ECVW-0010", - auto_monitor=True, - labels={"valve"}, - ) - op_cs_ecvw_0020 = Cpt( - EpicsSignalRO, - read_pv="X12SA-OP-CS-ECVW-0020:PLC_OPEN", - add_prefix=("",), - name="op_cs_ecvw_0020", - kind=Kind.omitted, - doc="OP-CS-ECVW-0020", - auto_monitor=True, - labels={"valve"}, - ) + op_cs_ecvw_0010 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-CS-ECVW-0010:PLC_OPEN", add_prefix=("",), name="op_cs_ecvw_0010", kind=Kind.omitted, doc="OP-CS-ECVW-0010", auto_monitor=True, labels={"valve"}) + op_cs_ecvw_0020 = Cpt(EpicsSignalRO, read_pv="X12SA-OP-CS-ECVW-0020:PLC_OPEN", add_prefix=("",), name="op_cs_ecvw_0020", kind=Kind.omitted, doc="OP-CS-ECVW-0020", auto_monitor=True, labels={"valve"}) class EPS(PSIDeviceBase): @@ -592,26 +139,8 @@ class EPS(PSIDeviceBase): cooling_water = Cpt(CoolingWater, name="cooling_water", doc="Cooling Water") # Acknowledgment signals for PLC communication (if needed for future use) - ackerr = Cpt( - EpicsSignal, - read_pv="X12SA-EPS-PLC:ACKERR-REQUEST", - add_prefix=("",), - name="ackerr", - kind=Kind.omitted, - doc="ACKERR request - OP-CS-ECVW-0020", - auto_monitor=True, - labels={"request"}, - ) - request = Cpt( - EpicsSignal, - read_pv="X12SA-OP-CS-ECVW:PLC_REQUEST", - add_prefix=("",), - name="op_cs_ecvw_request", - kind=Kind.omitted, - doc="PLC request - OP-CS-ECVW-PLC_REQUEST", - auto_monitor=True, - labels={"request"}, - ) + ackerr = Cpt(EpicsSignal, read_pv="X12SA-EPS-PLC:ACKERR-REQUEST", add_prefix=("",), name="ackerr", kind=Kind.omitted, doc="ACKERR request - OP-CS-ECVW-0020", auto_monitor=True, labels={"request"}) + request = Cpt(EpicsSignal, read_pv="X12SA-OP-CS-ECVW:PLC_REQUEST", add_prefix=("",), name="op_cs_ecvw_request", kind=Kind.omitted, doc="PLC request - OP-CS-ECVW-PLC_REQUEST", auto_monitor=True, labels={"request"}) def _notify(self, msg: str, show_as_client_msg: bool = True): """Utility method to print a message, and optionally send it to the client UI if it should be shown also as a client message.""" @@ -657,11 +186,7 @@ class EPS(PSIDeviceBase): valves = [self.cooling_water.op_cs_ecvw_0010, self.cooling_water.op_cs_ecvw_0020] # Flow channels list extracted from CHANNELS - flow_items = [ - walk.item - for walk in self.cooling_water.walk_signals() - if "flow" in walk.item._ophyd_labels_ - ] + flow_items = [walk.item for walk in self.cooling_water.walk_signals() if "flow" in walk.item._ophyd_labels_] # --- Step 1: EPS alarm reset --- alarm_value = self.safe_get(eps_alarm_sig, 0) @@ -701,16 +226,8 @@ class EPS(PSIDeviceBase): def snapshot(): # Valve snapshot v_states = [self.safe_get(v, None) for v in valves] - v1 = f"{valves[0].attr_name[-4:]}=" + ( - "OPEN " - if v_states[0] is True or v_states[0] == 1 - else "CLOSED" if v_states[0] is False or v_states[0] == 0 else "N/A " - ) - v2 = f"{valves[1].attr_name[-4:]}=" + ( - "OPEN " - if v_states[1] is True or v_states[1] == 1 - else "CLOSED" if v_states[1] is False or v_states[1] == 0 else "N/A " - ) + v1 = f"{valves[0].attr_name[-4:]}=" + ("OPEN " if v_states[0] is True or v_states[0] == 1 else "CLOSED" if v_states[0] is False or v_states[0] == 0 else "N/A ") + v2 = f"{valves[1].attr_name[-4:]}=" + ("OPEN " if v_states[1] is True or v_states[1] == 1 else "CLOSED" if v_states[1] is False or v_states[1] == 0 else "N/A ") # 2 valves with a single space between => width ~ 21 valve_str = f"{v1} {v2}" @@ -718,9 +235,7 @@ class EPS(PSIDeviceBase): flow_states = [] for fsig in flow_items: fval = self.safe_get(fsig, None) - flow_states.append( - True if fval in (1, True) else False if fval in (0, False) else None - ) + flow_states.append(True if fval in (1, True) else False if fval in (0, False) else None) ok = sum(1 for f in flow_states if f is True) fail = sum(1 for f in flow_states if f is False) @@ -751,9 +266,7 @@ class EPS(PSIDeviceBase): if both_open: if stable_until is None: stable_until = now + STABILITY - print( - f"[WaterCooling] Both valves OPEN → starting {STABILITY}s stability window…" - ) + print(f"[WaterCooling] Both valves OPEN → starting {STABILITY}s stability window…") else: if now >= stable_until: print("→ SUCCESS: Valves remained OPEN during stability window.") @@ -775,10 +288,7 @@ class EPS(PSIDeviceBase): # ---- New: enum maps for numeric -> string rendering ---- POSITION_ENUM = {0: "out of beam", 1: "in beam"} STRIPE_ENUM = {0: "Stripe 1 W/B4C", 1: "Stripe 2 NiV/B4C"} - POSITION_ATTRS = { - self.dmm_monochromator.dmm_position.attr_name, - self.ccm_monochromator.ccm_position.attr_name, - } + POSITION_ATTRS = {self.dmm_monochromator.dmm_position.attr_name, self.ccm_monochromator.ccm_position.attr_name} STRIPE_ATTRS = {self.dmm_monochromator.dmm_stripe.attr_name} def is_bool_like(v): @@ -831,9 +341,7 @@ class EPS(PSIDeviceBase): return f"{green+'OK'+white if not value else red+'FAULT'+white}" # ------------------- VALVE/SHUTTER ----------------- - if ( - "valve" in signal._ophyd_labels_ or "shutter" in signal._ophyd_labels_ - ) and is_bool_like(value): + if ("valve" in signal._ophyd_labels_ or "shutter" in signal._ophyd_labels_) and is_bool_like(value): return f"{green+'OPEN'+white if value else red+'CLOSED'+white}" # ------------------- FLOW (OK/FAIL) ---------------- @@ -873,48 +381,46 @@ class EPS(PSIDeviceBase): return is_bool_like(v) and not bool(v) if closed(v1) and closed(v2): - print( - f"\n{cyan}Hint:{white} Both water cooling valves are CLOSED.\n" - f"You can open them using: {bold}dev.x12saEPS.water_cooling_op(){white}" - ) + print(f"\n{cyan}Hint:{white} Both water cooling valves are CLOSED.\n" f"You can open them using: {bold}dev.x12saEPS.water_cooling_op(){white}") - # ---------------------------------------------------------- - # Consistency report - # ---------------------------------------------------------- - # def consistency_report(self, *, verbose=True): - # missing = [] - # dupes = [] - # seen = {} +# fmt: on +# ---------------------------------------------------------- +# Consistency report +# ---------------------------------------------------------- +# def consistency_report(self, *, verbose=True): +# missing = [] +# dupes = [] +# seen = {} - # for sub_device in self.walk_components(): - # section = sub_device.name - # for walk in sub_device.walk_components(): - # cpt: Cpt = walk.ancestors[-1] - # it: EpicsSignalRO = walk.item - # if not hasattr(self, it["attr"]): - # missing.append((section, it["attr"], it["label"], it["pv"])) +# for sub_device in self.walk_components(): +# section = sub_device.name +# for walk in sub_device.walk_components(): +# cpt: Cpt = walk.ancestors[-1] +# it: EpicsSignalRO = walk.item +# if not hasattr(self, it["attr"]): +# missing.append((section, it["attr"], it["label"], it["pv"])) - # pv = it["pv"] - # if pv in seen: - # dupes.append((pv, seen[pv], (section, it["attr"], it["label"]))) - # else: - # seen[pv] = (section, it["attr"], it["label"]) +# pv = it["pv"] +# if pv in seen: +# dupes.append((pv, seen[pv], (section, it["attr"], it["label"]))) +# else: +# seen[pv] = (section, it["attr"], it["label"]) - # if verbose: - # print("=== Consistency Report ===") +# if verbose: +# print("=== Consistency Report ===") - # if missing: - # print("\nMissing attributes:") - # for sec, a, lbl, pv in missing: - # print(f" - [{sec}] {a} {lbl} pv={pv}") - # else: - # print("\nNo missing attributes.") +# if missing: +# print("\nMissing attributes:") +# for sec, a, lbl, pv in missing: +# print(f" - [{sec}] {a} {lbl} pv={pv}") +# else: +# print("\nNo missing attributes.") - # if dupes: - # print("\nDuplicate PVs:") - # for pv, f1, f2 in dupes: - # print(f" {pv} → {f1} AND {f2}") - # else: - # print("\nNo duplicate PVs.") +# if dupes: +# print("\nDuplicate PVs:") +# for pv, f1, f2 in dupes: +# print(f" {pv} → {f1} AND {f2}") +# else: +# print("\nNo duplicate PVs.") - # return {"missing_attrs": missing, "duplicate_pvs": dupes} +# return {"missing_attrs": missing, "duplicate_pvs": dupes}