Automatic backup triggered by new deployment
CI for pxi_bec / test (push) Successful in 32s

This commit is contained in:
x06sa
2026-07-10 16:53:58 +02:00
parent f3265a7358
commit 3ca86400ad
5 changed files with 2843 additions and 0 deletions
@@ -0,0 +1,213 @@
states:
robot_sample_exchange:
allow_modifiers: true
bl_pos: in
bl_bright: 'off'
bs_pos: in
bs_z: safe
coll_y: out
cryo_pos: in
det_cov: 'close'
diag_y: out
fl_bright: 'off'
aerotech_x: in
aerotech_y: mount
aerotech_z: mount
aerotech_u: mount
smargon_x: mount
smargon_y: mount
smargon_z: mount
smargon_chi: mount
smargon_phi: mount
xrf_pos: out
sample_alignment:
allow_modifiers: true
bl_pos: in
bl_bright: 'on'
bs_pos: in
bs_z: safe
coll_y: out
cryo_pos: in
det_cov: 'close'
diag_y: out
fl_bright: 'on'
aerotech_x: in
aerotech_y: work
aerotech_z: work
# aerotech_u: mount
# smargon_x: mount
# smargon_y: mount
# smargon_chi: mount
# smargon_phi: mount
xrf_pos: out
data_collection:
allow_modifiers: true
bl_pos: out
bl_bright: 'off'
bs_pos: in
bs_z: safe
coll_y: in
cryo_pos: in
det_cov: 'open'
diag_y: out
fl_bright: 'on'
aerotech_x: in
aerotech_y: work
aerotech_z: work
# aerotech_u: mount
# smargon_x: mount
# smargon_y: mount
# smargon_chi: mount
# smargon_phi: mount
xrf_pos: out
DC_XRF:
allow_modifiers: true
# bl_pos: out
bl_bright: 'off'
bs_pos: in
bs_z: safe
coll_y: in
cryo_pos: in
det_cov: 'close'
diag_y: out
fl_bright: 'on'
aerotech_x: in
aerotech_y: work
aerotech_z: work
aerotech_u: mount
# smargon_x: mount
# smargon_y: mount
# smargon_chi: mount
# smargon_phi: mount
xrf_pos: out
manual_sample_exchange:
allow_modifiers: true
bl_pos: out
bl_bright: 'off'
bs_pos: out
bs_z: safe
coll_y: park
cryo_pos: in
det_cov: 'close'
det_z: 'mse'
diag_y: park
fl_bright: 'off'
aerotech_x: in
aerotech_y: mount
aerotech_z: mount
aerotech_u: mount
smargon_x: mount
smargon_y: mount
smargon_chi: mount
smargon_phi: mount
xrf_pos: out
beam_visualisation:
bl_pos: out
bl_bright: 'off'
bs_pos: in
bs_z: safe
coll_y: out
cryo_pos: out
det_cov: 'close'
diag_y: scint
fl_bright: 'off'
aerotech_x: out
aerotech_y: mount
aerotech_z: mount
aerotech_u: mount
smargon_x: mount
smargon_y: mount
smargon_chi: mount
smargon_phi: mount
xrf_pos: out
flux_measurement:
bl_pos: in
bl_bright: 'off'
bs_pos: in
bs_z: safe
coll_y: out
cryo_pos: out
det_cov: 'close'
diag_y: i1
fl_bright: 'off'
aerotech_x: out
aerotech_y: mount
aerotech_z: mount
aerotech_u: mount
smargon_x: mount
smargon_y: mount
smargon_chi: mount
smargon_phi: mount
xrf_pos: out
beamstop_alignment:
bl_pos: out
bl_bright: 'off'
bs_pos: in
bs_z: samp
coll_y: out
cryo_pos: out
det_cov: 'close'
diag_y: out
fl_bright: 'on'
aerotech_x: out
aerotech_y: mount
aerotech_z: mount
aerotech_u: mount
smargon_x: mount
smargon_y: mount
smargon_chi: mount
smargon_phi: mount
xrf_pos: out
maintenance:
allow_modifiers: true
bl_pos: out
bl_bright: 'off'
bs_pos: out
bs_z: safe
coll_y: park
cryo_pos: in
det_cov: 'close'
diag_y: park
fl_bright: 'off'
aerotech_x: out
aerotech_y: mount
aerotech_z: mount
aerotech_u: mount
smargon_x: mount
smargon_y: mount
smargon_chi: mount
smargon_phi: mount
xrf_pos: out
xtal_snapshot:
allow_modifiers: true
bl_pos: in
bl_bright: 'on'
bs_pos: in
bs_z: safe
coll_y: intermediate
cryo_pos: in
det_cov: 'close'
diag_y: out
fl_bright: 'on'
# aerotech_x: in
# aerotech_y: work
# aerotech_z: work
# aerotech_u: mount
# smargon_x: mount
# smargon_y: mount
# smargon_chi: mount
# smargon_phi: mount
xrf_pos: out
+691
View File
@@ -0,0 +1,691 @@
# BEC Device Configuration File
#
# The device config consists of a mapping of device names to their configurations.
#
# The following fields are required for each device:
# - deviceClass: The class of the device (e.g., ophyd_devices.SimPositioner).
# - enabled: A boolean indicating if the device is enabled.
# - readoutPriority: Determines how the device is read out during a scan. Possible values are ["monitored", "baseline", "async", "on_request", "continuous"].
#
# Optional fields (defaults shown):
# - connectionTimeout: Connection timeout in seconds. Default is 5.
# - description: A string description of the device. Default is "" (empty string).
# - deviceConfig: A dictionary of configuration parameters specific to the device class. Default is None.
# - deviceTags: A list/set of tags associated with the device. Default is an empty list/set.
# - needs: A list of other device names that this device depends on. Default is [].
# - onFailure: The action to take on failure. Possible values are ["buffer", "retry", "raise"]. Default is "retry".
# - readOnly: A boolean indicating if the device is read-only. Default is false.
# - softwareTrigger: A boolean indicating if the device uses software triggering. Default is false.
# - userParameter: A dictionary of user-defined parameters. Default is {}.
#
# Default values may be omitted for brevity.
##########################################################################################################################
# An example device configuration with all fields:
# device1:
# deviceClass: ophyd_devices.SimPositioner
# description: Sample positioner device
# deviceConfig:
# delay: 1
# update_frequency: 10
# deviceTags:
# - frontend
# - motor
# enabled: true
# connectionTimeout: 20
# readoutPriority: baseline
# needs:
# - device2
# - device3
# onFailure: retry
# readOnly: false
# softwareTrigger: false
# userParameter:
# in: 23.1
# out: -50
##########################################################################################################################
bsf_f1_y:
description: BSF Filter 1 Y
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-BSFFI1:TRY
deviceTags:
- bsf
enabled: true
onFailure: buffer
readoutPriority: baseline
bsf_f2_y:
description: BSF Filter 2 Y
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-BSFFI2:TRY
deviceTags:
- bsf
enabled: true
onFailure: buffer
readoutPriority: baseline
bsf_sl_xcen:
description: BSF X Centre
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-BSFSLH:CENTER
deviceTags:
- bsf
enabled: true
onFailure: buffer
readoutPriority: baseline
bsf_sl_xr:
description: BSF Slit Ring
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-BSFSLH:TRXR
deviceTags:
- bsf
enabled: true
onFailure: buffer
readoutPriority: baseline
bsf_sl_xsize:
description: BSF X Size
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-BSFSLH:SIZE
deviceTags:
- bsf
enabled: true
onFailure: buffer
readoutPriority: baseline
bsf_sl_xw:
description: BSF Slit Wall
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-BSFSLH:TRXW
deviceTags:
- bsf
enabled: true
onFailure: buffer
readoutPriority: baseline
bsf_sl_yb:
description: BSF Slit Bottom
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-BSFSLV:TRYB
deviceTags:
- bsf
enabled: true
onFailure: buffer
readoutPriority: baseline
bsf_sl_ycen:
description: BSF Y Centre
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-BSFSLV:CENTER
deviceTags:
- bsf
enabled: true
onFailure: buffer
readoutPriority: baseline
bsf_sl_ysize:
description: BSF Y Size
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-BSFSLV:SIZE
deviceTags:
- bsf
enabled: true
onFailure: buffer
readoutPriority: baseline
bsf_sl_yt:
description: BSF Slit Top
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-BSFSLV:TRYT
deviceTags:
- bsf
enabled: true
onFailure: buffer
readoutPriority: baseline
dcm_bragg:
description: DCM Bragg Angle
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-DCM:ROTY
deviceTags:
- dcm
enabled: true
onFailure: buffer
readoutPriority: baseline
dcm_fpitch:
description: DCM 2nd Crystal Fine Pitch
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-DCM:ROTY-CR2-FINEPITCH
deviceTags:
- dcm
enabled: true
onFailure: buffer
readoutPriority: baseline
dcm_froll:
description: DCM 2nd Crystal Fine roll
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-DCM:ROTZ-CR2-FINEROLL
deviceTags:
- dcm
enabled: true
onFailure: buffer
readoutPriority: baseline
dcm_perp:
description: DCM Perpendicular
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-DCM:TRX-CR2
deviceTags:
- dcm
enabled: true
onFailure: buffer
readoutPriority: baseline
dcm_pitch:
description: DCM 2nd Crystal Pitch
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-DCM:ROTY-CR2-PITCH
deviceTags:
- dcm
enabled: true
onFailure: buffer
readoutPriority: baseline
dcm_x:
description: DCM Lateral
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-OP-DCM:TRX
deviceTags:
- dcm
enabled: true
onFailure: buffer
readoutPriority: baseline
fe_bpm1:
description: FE XBPM Channel 1
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-FE-XBPM1:Current1:MeanValue_RBV
deviceTags:
- bpm
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: monitored
fe_bpm2:
description: FE XBPM Channel 2
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-FE-XBPM1:Current2:MeanValue_RBV
deviceTags:
- bpm
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: monitored
fe_bpm3:
description: FE XBPM Channel 3
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-FE-XBPM1:Current3:MeanValue_RBV
deviceTags:
- bpm
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: monitored
fe_bpm4:
description: FE XBPM Channel 4
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-FE-XBPM1:Current4:MeanValue_RBV
deviceTags:
- bpm
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: monitored
fe_bpm_x:
description: FE BPM X
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-FE-XBPM1:TRX
deviceTags:
- fe
enabled: true
onFailure: buffer
readoutPriority: baseline
fe_bpm_y:
description: FE BPM Y
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-FE-XBPM1:TRY
deviceTags:
- fe
enabled: true
onFailure: buffer
readoutPriority: baseline
fe_bpmsum:
description: FE XBPM Summed
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-FE-XBPM1:SumAll:MeanValue_RBV
deviceTags:
- bpm
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: monitored
fe_sl_xcen:
description: FE Slit X Centre
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-FE-SL1:CENTERX
deviceTags:
- fe
enabled: true
onFailure: buffer
readoutPriority: baseline
fe_sl_xr:
description: FE Slit X Ring
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-FE-SL1:TRXR
deviceTags:
- fe
enabled: true
onFailure: buffer
readoutPriority: baseline
fe_sl_xsize:
description: FE Slit X Size
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-FE-SL1:SIZEX
deviceTags:
- fe
enabled: true
onFailure: buffer
readoutPriority: baseline
fe_sl_xw:
description: FE Slit X Wall
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-FE-SL1:TRXW
deviceTags:
- fe
enabled: true
onFailure: buffer
readoutPriority: baseline
fe_sl_yb:
description: FE Slit Y Bottom
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-FE-SL1:TRYB
deviceTags:
- fe
enabled: true
onFailure: buffer
readoutPriority: baseline
fe_sl_ycen:
description: FE Slit Y Centre
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-FE-SL1:CENTERY
deviceTags:
- fe
enabled: true
onFailure: buffer
readoutPriority: baseline
fe_sl_ysize:
description: FE Slit Y Size
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-FE-SL1:SIZEY
deviceTags:
- fe
enabled: true
onFailure: buffer
readoutPriority: baseline
fe_sl_yt:
description: FE Slit Y Top
deviceClass: ophyd_devices.EpicsMotorEC
deviceConfig:
prefix: X06SA-FE-SL1:TRYT
deviceTags:
- fe
enabled: true
onFailure: buffer
readoutPriority: baseline
id_gap:
description: undulator gap
deviceClass: pxi_bec.devices.undulator.UndulatorGap
deviceConfig:
prefix: 'X06SA-UIND:'
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_bpm1:
description: SS BPM Channel 1
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSBPM:Current1:MeanValue_RBV
deviceTags:
- bpm
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: monitored
ss_bpm2:
description: SS BPM Channel 2
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSBPM:Current2:MeanValue_RBV
deviceTags:
- bpm
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: monitored
ss_bpm3:
description: SS BPM Channel 3
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSBPM:Current3:MeanValue_RBV
deviceTags:
- bpm
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: monitored
ss_bpm4:
description: SS BPM Channel 4
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSBPM:Current4:MeanValue_RBV
deviceTags:
- bpm
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: monitored
ss_bpm_x:
description: SS BPM X
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSBPM:TRX
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_bpm_y:
description: SS BPM Y
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSBPM:TRY
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_bpmsum:
description: SS BPM Summed
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSBPM:SumAll:MeanValue_RBV
deviceTags:
- bpm
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: monitored
ss_f1_x:
description: SS Filter 1 X
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSFI1:TRX
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_f2_x:
description: SS Filter 2 X
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSFI2:TRX
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_f3_x:
description: SS Filter 2 X
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSFI3:TRX
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_f4_x:
description: SS Filter 4 X
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSFI4:TRX
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_sl_xcen:
description: SS Slit X Centre
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSSLH:CENTER
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_sl_xr:
description: SS Slit Ring
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSSLH:TRXR
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_sl_xsize:
description: SS Slit X Size
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSSLH:SIZE
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_sl_xw:
description: SS Slit Wall
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSSLH:TRXW
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_sl_yb:
description: SS Slit Bottom
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSSLV:TRYB
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_sl_ycen:
description: SS Slit Y Centre
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSSLV:CENTER
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_sl_ysize:
description: SS Slit Y Size
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSSLV:SIZE
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_sl_yt:
description: SS Slit Top
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSSLV:TRYT
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_xi_x:
description: SS X-ray Eye X
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSXI:TRX
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
userParameter:
in: 7
out: -2.1
type: multi-position
ss_xi_y:
description: SS X-ray Eye Y
deviceClass: ophyd_devices.EpicsMotor
deviceConfig:
prefix: X06SA-ES-SSXI:TRY
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_xicam_exp:
description: SS Camera Exposure
deviceClass: ophyd.EpicsSignal
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSCAM:cam1:AcquireTime
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_xicam_gain:
description: SS Camera Gain
deviceClass: ophyd.EpicsSignal
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSCAM:cam1:Gain
deviceTags:
- ss
enabled: true
onFailure: buffer
readoutPriority: baseline
ss_xicam_max:
description: SS Cam Max
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSCAM:Stats5:MaxValue_RBV
deviceTags:
- ss
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: monitored
ss_xicam_x:
description: SS Camera X
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSCAM:Stats5:CentroidX_RBV
deviceTags:
- ss
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: baseline
ss_xicam_xsig:
description: SS Camera X Sigma
deviceClass: ophyd.EpicsSignal
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSCAM:Stats5:SigmaX_RBV
deviceTags:
- ss
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: baseline
ss_xicam_y:
description: SS Camera Y
deviceClass: ophyd.EpicsSignalRO
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSCAM:Stats5:CentroidY_RBV
deviceTags:
- ss
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: baseline
ss_xicam_ysig:
description: SS Camera Y Sigma
deviceClass: ophyd.EpicsSignal
deviceConfig:
auto_monitor: true
read_pv: X06SA-ES-SSCAM:Stats5:SigmaY_RBV
deviceTags:
- ss
enabled: true
onFailure: buffer
readOnly: true
readoutPriority: baseline
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,52 @@
base_config:
- !include ./pxi-devices.yaml
#microscope_stats:
# readoutPriority: async
# description: Stats Signal of MS camera
# deviceClass: pxi_bec.devices.stats_signal.StatsSignal
# deviceConfig:
# prefix: 'X06SA-ES-MS:'
# onFailure: retry
# enabled: true
# readOnly: false
# softwareTrigger: true
# sample_env:
# - !include ./pxi-state-devices.yaml
# id_gap:
# readoutPriority: baseline
# description: undulator gap
# deviceClass: pxi_bec.devices.undulator.UndulatorGap
# deviceConfig:
# prefix: 'X06SA-UIND:'
# onFailure: buffer
# enabled: true
# readOnly: false
# softwareTrigger: false
# smargon:
# description: REST-based device which connects to Smargopolo
# deviceClass: pxi_bec.devices.smargopolo_smargon.Smargon
# deviceConfig: {prefix: 'http://x06sa-smargopolo.psi.ch:3000'}
# onFailure: buffer
# enabled: True
# readoutPriority: baseline
# deviceTags:
# - smargon
# - motors
# readOnly: false
# softwareTrigger: false
# aerotech:
# description: REST-based device which connects to AareScan and Aerotech
# deviceClass: pxii_bec.devices.aerotech.Aerotech
# deviceConfig: {prefix: 'http://mx-x06sa-queue-01:5234'}
# onFailure: buffer
# enabled: True
# readoutPriority: baseline
# deviceTags:
# - aerotech
# - motors
# readOnly: false
# softwareTrigger: false
+58
View File
@@ -0,0 +1,58 @@
from ophyd.device import Component as Cpt
from ophyd.status import MoveStatus
from ophyd import EpicsSignal, EpicsSignalRO, PVPositioner
class UndulatorGap(PVPositioner):
"""
SLS Undulator gap control
"""
setpoint = Cpt(EpicsSignal, suffix="GAP-SP")
readback = Cpt(EpicsSignal, suffix="GAP-RBV", kind="hinted", auto_monitor=True)
stop_signal = Cpt(EpicsSignal, suffix="STOP")
done = Cpt(EpicsSignal, suffix="DONE", auto_monitor=True)
select_control = Cpt(EpicsSignalRO, suffix="SCTRL", auto_monitor=True)
def __init__(
self,
prefix="",
*,
limits=None,
name=None,
read_attrs=None,
configuration_attrs=None,
parent=None,
egu="",
**kwargs,
):
super().__init__(
prefix=prefix,
limits=limits,
name=name,
read_attrs=read_attrs,
configuration_attrs=configuration_attrs,
parent=parent,
egu=egu,
**kwargs,
)
# Make the default alias for the user_readback the name of the
# motor itself.
self.readback.name = self.name
def move(self, position, wait=True, timeout=None, moved_cb=None):
# If it is operator controlled, undulator will not move.
if self.select_control.get() == 0:
raise Exception("Undulator is operator controlled!")
# If it is already there, undulator will not move. The done flag
# will not change, the moving change callback will not be called.
# The status will not change.
if abs(position - self._position) < 0.0008:
status = MoveStatus(self, position, done=True, success=True)
return status
return super().move(position, wait=wait, timeout=timeout, moved_cb=moved_cb)