workflows: added set cam settings for xtal_snapshot - however if backlight fails this does not work. added detector moves.

This commit is contained in:
2026-05-20 11:48:59 +02:00
parent 8c92cf1c49
commit c7192909bb
+24 -18
View File
@@ -1,4 +1,4 @@
from aare.common.models import StagePositionEnum
from aare.common.models import StagePositionEnum, SampleCameraSettings
from aare.daq.devices import BeamlineDevices
from aare.daq.config import BeamlineConfig, ABR_POS_MOUNT
@@ -8,6 +8,8 @@ from aare.devices.bec_worker import BeamlineState
logger = setup_logger("aareDAQ")
SAFE_POSITION = 900
def move_bsz(devs: BeamlineDevices, target: float):
if abs(target - devs.bsz.position) > 0.1:
beamstop_stage_measure = devs.beamstop_stage_up
@@ -53,6 +55,11 @@ def common_2rse(devs: BeamlineDevices, cfg: BeamlineConfig):
print('try to move aerotech')
devs.aerotech_pos = ABR_POS_MOUNT
def rse2se(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
common_2rse(devs, cfg)
devs.samcam_auto(AutoEnum.ONCE)
def m2se(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
devs.bec_worker.planner.move_to(BeamlineState.MANUAL_SAMPLE_EXCHANGE)
@@ -81,27 +88,19 @@ def sa2se(devs: BeamlineDevices, cfg: BeamlineConfig):
raise
def sa2rse(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
common_2rse(devs, cfg)
devs.samcam_auto(AutoEnum.ONCE)
def sa2xtal_snapshot(devs:BeamlineDevices, cfg:BeamlineConfig):
logger.info("SA to Xtal Snapshot")
devs.samcam_settings.exposure = 0.001
devs.samcam_settings.gain = 0.0
devs.samcam_settings = SampleCameraSettings(gain=0.0, exposure=0.0005)
logger.debug(f"new sam cam settings: {devs.samcam_settings}")
devs.samcam_auto(AutoEnum.AUTO)
devs.bec_worker.planner.move_to(BeamlineState.XTAL_SNAPSHOT)
devs.samcam_auto(AutoEnum.ONCE)
def dc2xtal_snapshot(devs:BeamlineDevices, cfg:BeamlineConfig):
logger.debug("DC to Xtal Snapshot")
devs.samcam_settings.exposure = 0.001
devs.samcam_settings.gain = 0.0
devs.samcam_settings = SampleCameraSettings(gain=0.0, exposure=0.0005)
logger.debug(f"new sam cam settings: {devs.samcam_settings}")
devs.samcam_auto(AutoEnum.AUTO)
devs.bec_worker.planner.move_to(BeamlineState.XTAL_SNAPSHOT)
devs.samcam_auto(AutoEnum.ONCE)
def xtal_snapshot2dc(devs:BeamlineDevices, cfg:BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
@@ -130,9 +129,7 @@ def xtal_snapshot2dh(devs: BeamlineDevices, cfg: BeamlineConfig):
sa2dh(devs,cfg)
def dc2rse(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
common_2rse(devs, cfg)
devs.samcam_auto(AutoEnum.ONCE)
def se2sa(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
@@ -146,12 +143,18 @@ def rse2sa(devs: BeamlineDevices, cfg: BeamlineConfig):
def sa2dc(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
devs.bec_worker.move_to(BeamlineState.DATA_COLLECTION)
status.wait(timeout=60)
devs.samcam_auto(AutoEnum.ONCE)
def dc2sa(devs: BeamlineDevices, cfg: BeamlineConfig):
status = None
if cfg.dtz and cfg.dtz < SAFE_POSITION:
status = devs.bec_worker.det_z(value=SAFE_POSITION)
devs.samcam_auto(AutoEnum.AUTO)
devs.bec_worker.planner.move_to(BeamlineState.SAMPLE_ALIGNMENT)
devs.aerotech_pos = cfg.abr_meas_pos
if hasattr(status, "wait"):
status.wait(timeout=60)
devs.samcam_auto(AutoEnum.ONCE)
def sa2xrf(devs: BeamlineDevices, cfg: BeamlineConfig):
@@ -195,6 +198,9 @@ def ba2bl(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.scintillator = 20.0
def sa2dh(devs: BeamlineDevices, cfg: BeamlineConfig):
common2dh(devs, cfg)
def common2dh(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
common_2rse(devs, cfg)
devs.samcam_auto(AutoEnum.ONCE)
@@ -212,9 +218,9 @@ def dh2sa(devs: BeamlineDevices, cfg: BeamlineConfig):
if __name__ == "__main__":
from aare.common.beamline import mx_beamline
import time
bl = mx_beamline()
cfg = BeamlineConfig(bl)
devs = BeamlineDevices(bl)
common_2rse(devs, cfg)
beamline = mx_beamline()
config = BeamlineConfig(beamline)
devices = BeamlineDevices(beamline)
common_2rse(devices, config)
time.sleep(10.0)
rse2sa(devs, cfg)
rse2sa(devices, config)