From 986cfb07875fd92489b410394fd66c1db0ec927c Mon Sep 17 00:00:00 2001 From: x12sa Date: Tue, 16 Jun 2026 16:58:01 +0200 Subject: [PATCH 1/3] fix(eiger): switch eiger back to eiger_9m config --- csaxs_bec/devices/jungfraujoch/eiger_9m.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csaxs_bec/devices/jungfraujoch/eiger_9m.py b/csaxs_bec/devices/jungfraujoch/eiger_9m.py index e8016a1..f206103 100644 --- a/csaxs_bec/devices/jungfraujoch/eiger_9m.py +++ b/csaxs_bec/devices/jungfraujoch/eiger_9m.py @@ -21,7 +21,7 @@ if TYPE_CHECKING: # pragma no cover from bec_server.device_server.device_server import DeviceManagerDS EIGER9M_READOUT_TIME_US = 500e-6 # 500 microseconds in s -DETECTOR_NAME = "EIGER 8.5M (tmp)" # "EIGER 9M" # "EIGER 9M"" +DETECTOR_NAME = "EIGER 9M" # "EIGER 9M"" # pylint:disable=invalid-name -- 2.52.0 From cdd211cd162cde42f43315a153a65ba4e7de9435 Mon Sep 17 00:00:00 2001 From: x12sa Date: Tue, 16 Jun 2026 16:58:29 +0200 Subject: [PATCH 2/3] refactor: adapt optics_hutch motor to ECMC motors --- csaxs_bec/device_configs/bl_optics_hutch.yaml | 282 +++++++++--------- 1 file changed, 137 insertions(+), 145 deletions(-) diff --git a/csaxs_bec/device_configs/bl_optics_hutch.yaml b/csaxs_bec/device_configs/bl_optics_hutch.yaml index 67a9ea3..5d0edce 100644 --- a/csaxs_bec/device_configs/bl_optics_hutch.yaml +++ b/csaxs_bec/device_configs/bl_optics_hutch.yaml @@ -1,191 +1,191 @@ sl2xi: - description: 'slit 1 (optics) x ring' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL1:TRXR' + description: "slit 1 (optics) x ring" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL1:TRXR" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl2xo: - description: 'slit 1 (optics) x wall' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL1:TRXW' + description: "slit 1 (optics) x wall" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL1:TRXW" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl2yb: - description: 'slit 1 (optics) y bottom' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL1:TRYB' + description: "slit 1 (optics) y bottom" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL1:TRYB" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl2yt: - description: 'slit 1 (optics) y top' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL1:TRYT' + description: "slit 1 (optics) y top" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL1:TRYT" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl2xc: - description: 'slit 1 (optics) x center' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL1:CENTERX' + description: "slit 1 (optics) x center" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL1:CENTERX" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl2xs: - description: 'slit 1 (optics) x size' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL1:SIZEX' + description: "slit 1 (optics) x size" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL1:SIZEX" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl2yc: - description: 'slit 1 (optics) y center' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL1:CENTERY' + description: "slit 1 (optics) y center" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL1:CENTERY" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl2ys: - description: 'slit 1 (optics) y size' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL1:SIZEY' + description: "slit 1 (optics) y size" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL1:SIZEY" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics dmmroty: - description: 'Double Multilayer Monochromator rotation Y' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-DMM1:ROTY' + description: "Double Multilayer Monochromator rotation Y" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-DMM1:ROTY" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics dmmx: - description: 'Double Multilayer Monochromator, translation X' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-DMM1:TRX' + description: "Double Multilayer Monochromator, translation X" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-DMM1:TRX" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics dmmy: - description: 'Double Multilayer Monochromator, translation Y' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-DMM1:TRY' + description: "Double Multilayer Monochromator, translation Y" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-DMM1:TRY" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics ccmroty: - description: 'Channel-cut Monochromator rotation Y' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-CCM1:ROTY' + description: "Channel-cut Monochromator rotation Y" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-CCM1:ROTY" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics ccmx: - description: 'Channel-cut Monochromator, translation X' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-CCM1:TRX' + description: "Channel-cut Monochromator, translation X" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-CCM1:TRX" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics # TO BE REVIEWED, REMOVE VELOCITY WITH NEW CLASS! ccm_energy: - description: 'test' + description: "test" deviceClass: ophyd_devices.devices.simple_positioner.PSISimplePositioner - deviceConfig: - prefix: 'X12SA-OP-CCM1:' + deviceConfig: + prefix: "X12SA-OP-CCM1:" override_suffixes: user_readback: "ENERGY-GET" user_setpoint: "ENERGY-SET" @@ -197,8 +197,6 @@ ccm_energy: readOnly: false softwareTrigger: false - - ########################################################################## ######################## SMARACT STAGES ################################## ########################################################################## @@ -246,10 +244,6 @@ ccm_energy: # # bl_smar_stage to use csaxs reference method. assign number according to axis channel # bl_smar_stage: 1 - - - - scinx: description: scintillator in OPbox deviceClass: csaxs_bec.devices.smaract.smaract_ophyd.SmaractMotor @@ -257,8 +251,8 @@ scinx: axis_Id: C host: x12sa-eb-smaract-mcs-03.psi.ch limits: - - -200 - - 200 + - -200 + - 200 port: 5000 sign: 1 enabled: true @@ -278,8 +272,8 @@ poly: axis_Id: B host: x12sa-eb-smaract-mcs-03.psi.ch limits: - - -200 - - 200 + - -200 + - 200 port: 5000 sign: 1 enabled: true @@ -299,8 +293,8 @@ polrot: axis_Id: A host: x12sa-eb-smaract-mcs-03.psi.ch limits: - - -200 - - 200 + - -200 + - 200 port: 5000 sign: 1 enabled: true @@ -313,10 +307,10 @@ polrot: # bl_smar_stage to use csaxs reference method. assign number according to axis channel bl_smar_stage: 0 -# dmm1_trx_readback_example: # This is the same template as for i.e. bpm4i +# dmm1_trx_readback_example: # This is the same template as for i.e. bpm4i # description: 'This is an example of a read-only Epics signal' # deviceClass: ophyd.EpicsSignalRO -# deviceConfig: +# deviceConfig: # read_pv: 'X12SA-OP-DMM1:TRX.RBV' # onFailure: raise # enabled: true @@ -334,8 +328,6 @@ polrot: # readOnly: false # softwareTrigger: false - - # #################### # ### BPM and polarization diag XBox1 (optics hutch) # ### This requires galilrioop device. On top of that the gain control devices and slow readback devices are built. @@ -423,113 +415,113 @@ polrot: # - galilrioop sl3xi: - description: 'slit 2 (optics) x ring' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL2:TRXR' + description: "slit 2 (optics) x ring" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL2:TRXR" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl3xo: - description: 'slit 2 (optics) x wall' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL2:TRXW' + description: "slit 2 (optics) x wall" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL2:TRXW" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl3yb: - description: 'slit 2 (optics) y bottom' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL2:TRYB' + description: "slit 2 (optics) y bottom" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL2:TRYB" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl3yt: - description: 'slit 2 (optics) y top' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL2:TRYT' + description: "slit 2 (optics) y top" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL2:TRYT" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl3xc: - description: 'slit 2 (optics) x center' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL2:CENTERX' + description: "slit 2 (optics) x center" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL2:CENTERX" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl3xs: - description: 'slit 2 (optics) x size' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL2:SIZEX' + description: "slit 2 (optics) x size" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL2:SIZEX" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl3yc: - description: 'slit 2 (optics) y center' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL2:CENTERY' + description: "slit 2 (optics) y center" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL2:CENTERY" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics sl3ys: - description: 'slit 2 (optics) y size' - deviceClass: ophyd.EpicsMotor - deviceConfig: - prefix: 'X12SA-OP-SL2:SIZEY' + description: "slit 2 (optics) y size" + deviceClass: ophyd_devices.EpicsMotorEC + deviceConfig: + prefix: "X12SA-OP-SL2:SIZEY" onFailure: raise enabled: true readoutPriority: baseline readOnly: false softwareTrigger: false deviceTags: - - cSAXS - - optics + - cSAXS + - optics -- 2.52.0 From 8f16072010e0a69f279679936cee5e71fd434b4a Mon Sep 17 00:00:00 2001 From: appel_c Date: Tue, 16 Jun 2026 21:47:22 +0200 Subject: [PATCH 3/3] fix(bl-frontend-config): migrate EpicsMotor to EpicsMotorEC --- csaxs_bec/device_configs/bl_frontend.yaml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/csaxs_bec/device_configs/bl_frontend.yaml b/csaxs_bec/device_configs/bl_frontend.yaml index 3c72570..5d21752 100644 --- a/csaxs_bec/device_configs/bl_frontend.yaml +++ b/csaxs_bec/device_configs/bl_frontend.yaml @@ -11,7 +11,7 @@ idgap: xbpm1x: description: 'X-ray BPM1 in frontend translation x' - deviceClass: ophyd.EpicsMotor + deviceClass: ophyd_devices.EpicsMotorEC deviceConfig: prefix: 'X12SA-FE-XBPM1:TRX' onFailure: raise @@ -25,7 +25,7 @@ xbpm1x: xbpm1y: description: 'X-ray BPM1 in frontend translation y' - deviceClass: ophyd.EpicsMotor + deviceClass: ophyd_devices.EpicsMotorEC deviceConfig: prefix: 'X12SA-FE-XBPM1:TRY' onFailure: raise @@ -39,7 +39,7 @@ xbpm1y: sl1xi: description: 'slit 1 (frontend) x ring' - deviceClass: ophyd.EpicsMotor + deviceClass: ophyd_devices.EpicsMotorEC deviceConfig: prefix: 'X12SA-FE-SL1:TRXR' onFailure: raise @@ -53,7 +53,7 @@ sl1xi: sl1xo: description: 'slit 1 (frontend) x wall' - deviceClass: ophyd.EpicsMotor + deviceClass: ophyd_devices.EpicsMotorEC deviceConfig: prefix: 'X12SA-FE-SL1:TRXW' onFailure: raise @@ -67,7 +67,7 @@ sl1xo: sl1yb: description: 'slit 1 (frontend) y bottom' - deviceClass: ophyd.EpicsMotor + deviceClass: ophyd_devices.EpicsMotorEC deviceConfig: prefix: 'X12SA-FE-SL1:TRYB' onFailure: raise @@ -81,7 +81,7 @@ sl1yb: sl1yt: description: 'slit 1 (frontend) y top' - deviceClass: ophyd.EpicsMotor + deviceClass: ophyd_devices.EpicsMotorEC deviceConfig: prefix: 'X12SA-FE-SL1:TRYT' onFailure: raise @@ -95,7 +95,7 @@ sl1yt: sl1xc: description: 'slit 1 (frontend) x center' - deviceClass: ophyd.EpicsMotor + deviceClass: ophyd_devices.EpicsMotorEC deviceConfig: prefix: 'X12SA-FE-SL1:CENTERX' onFailure: raise @@ -109,7 +109,7 @@ sl1xc: sl1xs: description: 'slit 1 (frontend) x size' - deviceClass: ophyd.EpicsMotor + deviceClass: ophyd_devices.EpicsMotorEC deviceConfig: prefix: 'X12SA-FE-SL1:SIZEX' onFailure: raise @@ -123,7 +123,7 @@ sl1xs: sl1yc: description: 'slit 1 (frontend) y center' - deviceClass: ophyd.EpicsMotor + deviceClass: ophyd_devices.EpicsMotorEC deviceConfig: prefix: 'X12SA-FE-SL1:CENTERY' onFailure: raise @@ -137,7 +137,7 @@ sl1yc: sl1ys: description: 'slit 1 (frontend) y size' - deviceClass: ophyd.EpicsMotor + deviceClass: ophyd_devices.EpicsMotorEC deviceConfig: prefix: 'X12SA-FE-SL1:SIZEY' onFailure: raise -- 2.52.0