Workflows: added some state changes, trialing auto_exposure, todo how to safely, or more safely import bec macros

This commit is contained in:
2026-04-22 16:05:21 +02:00
parent 8698d4e495
commit 2802a72e43
+31 -3
View File
@@ -1,9 +1,12 @@
from aare.common.coordinate import Coordinate
from aare.common.models import StagePositionEnum
from aare.daq.devices import BeamlineDevices
from aare.daq.config import BeamlineConfig, ABR_POS_MOUNT
from pxii_bec.macros.planner import BeamlineState
from aare.devices.area_detector import AutoEnum
from aare.common.logger_config import setup_logger
logger = setup_logger("aareDAQ")
def move_bsz(devs: BeamlineDevices, target: float):
if abs(target - devs.bsz.position) > 0.1:
@@ -68,49 +71,72 @@ def sa2se(devs: BeamlineDevices, cfg: BeamlineConfig):
# #print('move cryo to park')
# #devs.__cryojet_pos = StagePositionEnum.PARK
try:
devs.samcam_auto(AutoEnum.AUTO)
devs.bec_worker.planner.move_to(BeamlineState.MANUAL_SAMPLE_EXCHANGE)
logger.info(f"moved to sample exchange, now moving to {cfg.abr_meas_pos}")
devs.aerotech_pos = cfg.abr_meas_pos
devs.smargon_move_home()
devs.samcam_auto(AutoEnum.ONCE)
except Exception as e:
devs.aerotech_pos = cfg.abr_meas_pos
devs.smargon_move_home()
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):
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):
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)
devs.bec_worker.planner.move_to(BeamlineState.DATA_COLLECTION)
devs.samcam_auto(AutoEnum.ONCE)
def xtal_snapshot2sa(devs:BeamlineDevices, cfg:BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
devs.bec_worker.planner.move_to(BeamlineState.SAMPLE_ALIGNMENT)
devs.samcam_auto(AutoEnum.ONCE)
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)
devs.bec_worker.planner.move_to(BeamlineState.SAMPLE_ALIGNMENT)
devs.aerotech_pos = cfg.abr_meas_pos
devs.smargon_move_home()
devs.samcam_auto(AutoEnum.ONCE)
def rse2sa(devs: BeamlineDevices, cfg: BeamlineConfig):
se2sa(devs, cfg)
def sa2dc(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
devs.bec_worker.move_to(BeamlineState.DATA_COLLECTION)
devs.samcam_auto(AutoEnum.ONCE)
def dc2sa(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
devs.bec_worker.planner.move_to(BeamlineState.SAMPLE_ALIGNMENT)
devs.aerotech_pos = cfg.abr_meas_pos
devs.smargon_move_home()
devs.samcam_auto(AutoEnum.ONCE)
def sa2xrf(devs: BeamlineDevices, cfg: BeamlineConfig):
"""sample alignment to XrfCollection"""
devs.samcam_auto(AutoEnum.AUTO)
devs.bec_worker.planner.move_to(BeamlineState.FLUX_MEASUREMENT)
devs.samcam_auto(AutoEnum.ONCE)
def xrf2sa(devs: BeamlineDevices, cfg: BeamlineConfig):
"""XrfCollection to sample alignment"""
@@ -146,7 +172,9 @@ def ba2bl(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.scintillator = 20.0
def sa2dh(devs: BeamlineDevices, cfg: BeamlineConfig):
devs.samcam_auto(AutoEnum.AUTO)
common_2rse(devs, cfg)
devs.samcam_auto(AutoEnum.ONCE)
if devs.tell.get_mounted_sample() is not None:
try:
# Best effort try to unmount