wip working falconslim
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
falcon:
|
||||
description: Falcon Sitoro detector
|
||||
deviceClass: superxas_bec.devices.falcon.FalconSuperXAS
|
||||
deviceClass: superxas_bec.devices.falcon_slim.FalconSuperXASSlim
|
||||
deviceConfig:
|
||||
prefix: 'X10DA-SITORO:'
|
||||
enabled: true
|
||||
onFailure: raise
|
||||
readoutPriority: async
|
||||
readoutPriority: monitored
|
||||
softwareTrigger: false
|
||||
manip_new_trx:
|
||||
description: Old Sample Manipulator X-Translation
|
||||
@@ -52,3 +52,12 @@ trigger:
|
||||
onFailure: raise
|
||||
readoutPriority: baseline
|
||||
softwareTrigger: true
|
||||
kb_slit_y:
|
||||
readoutPriority: baseline
|
||||
description: KB slit axis Y
|
||||
deviceClass: ophyd.EpicsMotor
|
||||
deviceConfig:
|
||||
prefix: X10DA-ES1-SV1:OPENY
|
||||
onFailure: retry
|
||||
enabled: true
|
||||
softwareTrigger: false
|
||||
|
||||
@@ -3,7 +3,7 @@ import enum
|
||||
import numpy as np
|
||||
from bec_lib.logger import bec_logger
|
||||
from ophyd import Component as Cpt
|
||||
from ophyd import Device, EpicsSignal, EpicsSignalRO, EpicsSignalWithRBV, Kind, Signal
|
||||
from ophyd import Device, EpicsSignal, EpicsSignalRO, Kind, Signal
|
||||
from ophyd_devices import CompareStatus, DeviceStatus, PreviewSignal, StatusBase
|
||||
from ophyd_devices.interfaces.base_classes.psi_device_base import PSIDeviceBase
|
||||
|
||||
@@ -20,15 +20,15 @@ class FalconAcquiringStatus(int, enum.Enum):
|
||||
class FalconControlSlim(Device):
|
||||
"""Slim Falcon Control class for SuperXAS. prefix: 'X10DA-SITORO:'"""
|
||||
|
||||
start = Cpt(EpicsSignal, "EraseStart", doc="XMAP start signal")
|
||||
stop = Cpt(EpicsSignal, "StopAll", doc="XMAP stop signal")
|
||||
acquiring = Cpt(EpicsSignalRO, "Acquiring", auto_monitor=True, doc="XMAP acquiring signal")
|
||||
icr = Cpt(EpicsSignalRO, "dxp1:InputCountRate", doc="XMAP input count rate")
|
||||
ocr = Cpt(EpicsSignalRO, "dxp1:OutputCountRate", doc="XMAP output count rate")
|
||||
ert = Cpt(EpicsSignalRO, "mca1.ERTM", doc="XMAP elapsed real time")
|
||||
roi = Cpt(EpicsSignalRO, "mca1.R0", kind=Kind.hinted, doc="XMAP ROI signal")
|
||||
label = Cpt(EpicsSignalRO, "mca1.R0NM", kind=Kind.config, doc="XMAP ROI signal")
|
||||
spectrum_val = Cpt(EpicsSignalRO, "mca1.VAL", kind=Kind.omitted)
|
||||
erase_start:EpicsSignal = Cpt(EpicsSignal, "EraseStart", kind=Kind.omitted, doc="XMAP start signal")
|
||||
stop_all:EpicsSignal = Cpt(EpicsSignal, "StopAll", kind=Kind.omitted,doc="XMAP stop signal")
|
||||
acquiring:EpicsSignalRO = Cpt(EpicsSignalRO, "Acquiring", kind=Kind.omitted, auto_monitor=True, doc="XMAP acquiring signal")
|
||||
icr:EpicsSignalRO = Cpt(EpicsSignalRO, "dxp1:InputCountRate", doc="XMAP input count rate")
|
||||
ocr:EpicsSignalRO = Cpt(EpicsSignalRO, "dxp1:OutputCountRate", doc="XMAP output count rate")
|
||||
ert:EpicsSignalRO = Cpt(EpicsSignalRO, "mca1.ERTM", doc="XMAP elapsed real time")
|
||||
roi:EpicsSignalRO = Cpt(EpicsSignalRO, "mca1.R0", kind=Kind.hinted, doc="XMAP ROI signal")
|
||||
label:EpicsSignalRO = Cpt(EpicsSignalRO, "mca1.R0NM", kind=Kind.config, doc="XMAP ROI signal")
|
||||
spectrum_val:EpicsSignalRO = Cpt(EpicsSignalRO, "mca1.VAL", kind=Kind.omitted)
|
||||
|
||||
# Preview Signal for Falcon detector
|
||||
spectrum = Cpt(
|
||||
@@ -36,11 +36,11 @@ class FalconControlSlim(Device):
|
||||
)
|
||||
|
||||
# Configuration attributes
|
||||
collect_mode = Cpt(EpicsSignal, "CollectMode", doc="Collect mode signal")
|
||||
preset_real_time = Cpt(EpicsSignalWithRBV, "PresetRealTime", doc="Preset real time signal")
|
||||
collect_mode:EpicsSignal = Cpt(EpicsSignal, "CollectMode", doc="Collect mode signal")
|
||||
preset_real:EpicsSignal = Cpt(EpicsSignal, "PresetReal", doc="Preset real time signal")
|
||||
|
||||
# Computed signal for dead time corrected counts
|
||||
dead_cor_roi0_count = Cpt(Signal, "dead_cor_roi0_count", doc="Dead time corrected ROI 0 count")
|
||||
dead_cor_roi0_count = Cpt(Signal, name="dead_cor_roi0_count", doc="Dead time corrected ROI 0 count")
|
||||
|
||||
|
||||
def compute_dead_time_corrected_signal(icr: float, ocr: float, roi: float, ert: float):
|
||||
@@ -106,7 +106,7 @@ class FalconSuperXASSlim(PSIDeviceBase, FalconControlSlim):
|
||||
status.wait(timeout=self._pv_timeout)
|
||||
|
||||
self.collect_mode.set(0).wait(timeout=self._pv_timeout)
|
||||
self.preset_real_time.set(0).wait(timeout=self._pv_timeout)
|
||||
self.preset_real.set(0).wait(timeout=self._pv_timeout)
|
||||
|
||||
def on_unstage(self) -> DeviceStatus | StatusBase | None:
|
||||
"""Called while unstaging the device."""
|
||||
|
||||
@@ -146,7 +146,7 @@ class Trigger(PSIDeviceBase, TriggerControl):
|
||||
falcon.stop_all.put(1)
|
||||
status.wait(timeout=self._pv_timeout)
|
||||
time.sleep(0.4) # Simulate some processing time
|
||||
falcon.update_data()
|
||||
falcon.obj.update_data()
|
||||
return status_smpl
|
||||
|
||||
def on_complete(self) -> DeviceStatus | StatusBase | None:
|
||||
|
||||
Reference in New Issue
Block a user