diff --git a/phoenix_bec/device_configs/phoenix_devices.yaml b/phoenix_bec/device_configs/phoenix_devices.yaml index ad17717..1d01163 100644 --- a/phoenix_bec/device_configs/phoenix_devices.yaml +++ b/phoenix_bec/device_configs/phoenix_devices.yaml @@ -134,7 +134,7 @@ MA1_TRX1: # SAI_01_MEAN: - readoutPriority: monitored + readoutPriority: baseline description: DIODE SAI01 deviceClass: ophyd.EpicsSignalRO deviceConfig: @@ -150,7 +150,7 @@ SAI_01_MEAN: softwareTrigger: false SAI_02_MEAN: - readoutPriority: monitored + readoutPriority: baseline description: DIODE SAI02 deviceClass: ophyd.EpicsSignalRO deviceConfig: @@ -165,8 +165,9 @@ SAI_02_MEAN: readOnly: true softwareTrigger: false + SAI_03_MEAN: - readoutPriority: monitored + readoutPriority: baseline description: DIODE SAI03 deviceClass: ophyd.EpicsSignalRO deviceConfig: @@ -182,7 +183,7 @@ SAI_03_MEAN: softwareTrigger: false SAI_04_MEAN: - readoutPriority: monitored + readoutPriority: baseline description: DIODE SAI04 deviceClass: ophyd.EpicsSignalRO deviceConfig: @@ -198,7 +199,7 @@ SAI_04_MEAN: softwareTrigger: false SAI_05_MEAN: - readoutPriority: monitored + readoutPriority: baseline description: DIODE SAI05 deviceClass: ophyd.EpicsSignalRO deviceConfig: @@ -214,7 +215,7 @@ SAI_05_MEAN: softwareTrigger: false SAI_06_MEAN: - readoutPriority: monitored + readoutPriority: baseline description: DIODE SAI06 deviceClass: ophyd.EpicsSignalRO deviceConfig: @@ -230,7 +231,7 @@ SAI_06_MEAN: softwareTrigger: false SAI_07_MEAN: - readoutPriority: monitored + readoutPriority: baseline description: DIODE SAI07 deviceClass: ophyd.EpicsSignalRO deviceConfig: @@ -246,7 +247,7 @@ SAI_07_MEAN: softwareTrigger: false SAI_08_MEAN: - readoutPriority: monitored + readoutPriority: baseline description: DIODE deviceClass: ophyd.EpicsSignalRO deviceConfig: diff --git a/phoenix_bec/devices/dxp_loc.py b/phoenix_bec/devices/dxp_loc.py index 744dde6..86f448f 100644 --- a/phoenix_bec/devices/dxp_loc.py +++ b/phoenix_bec/devices/dxp_loc.py @@ -1,4 +1,10 @@ """ +This file dxp_loc.py is a local copy of dxp.py, as relased by Christian on Dec 5th 2024, as take from git +https://gitlab.psi.ch/bec/ophyd_devices/-/tree/main/ophyd_devices/devices?ref_type=heads +use local copy for now, as we likely need new deploymen... to complicated for me for now. + + + Base classes for XIA xMAP and FalconX dxp system. Falcon interfaces with the dxpSITORO epics driver, https://github.com/epics-modules/dxpSITORO. xMAP interfaces with the dxp epics driver, https://github.com/epics-modules/dxp. @@ -36,25 +42,25 @@ An example usage for a 4-element FalconX system. :: """ from ophyd import Component as Cpt -from ophyd import Kind, EpicsSignal, EpicsSignalRO, Device -from ophyd.mca import ( - EpicsMCARecord as _EpicsMCARecord, - EpicsDXPBaseSystem, - EpicsDXPMultiElementSystem, - EpicsDXPMapping, -) +from ophyd import Device, EpicsSignal, EpicsSignalRO, Kind +from ophyd.areadetector import ADBase +from ophyd.areadetector import ADComponent as ADCpt from ophyd.areadetector import EpicsSignalWithRBV +from ophyd.mca import EpicsDXP, EpicsDXPBaseSystem, EpicsDXPMapping +from ophyd.mca import EpicsDXPMultiElementSystem as _EpicsDXPMultiElementSystem +from ophyd.mca import EpicsMCARecord as _EpicsMCARecord -__all__ = ("EpicsMCARecord", "EpicsDXPFalcon", "Falcon", "xMAP") +__all__ = ("EpicsMCARecord", "EpicsDXP", "EpicsDXPFalcon", "Falcon", "Mercury", "xMAP") class EpicsMCARecord(_EpicsMCARecord): """EpicsMCARecord with addtional fields""" - calo = Cpt(EpicsSignal, ".CALO") - cals = Cpt(EpicsSignal, ".CALS") - calq = Cpt(EpicsSignal, ".CALQ") - tth = Cpt(EpicsSignal, ".TTH") + # Calibration values + calo = Cpt(EpicsSignal, ".CALO", kind=Kind.config) + cals = Cpt(EpicsSignal, ".CALS", kind=Kind.config) + calq = Cpt(EpicsSignal, ".CALQ", kind=Kind.config) + tth = Cpt(EpicsSignal, ".TTH", kind=Kind.config) class EpicsDXPFalcon(Device): @@ -94,6 +100,8 @@ class EpicsDXPFalcon(Device): class EpicsDXPFalconMultiElementSystem(EpicsDXPBaseSystem): + """System-wide parameters as defined in dxpMED.template""" + # Preset control preset_events = Cpt(EpicsSignal, "PresetEvents") preset_real_time = Cpt(EpicsSignal, "PresetReal") @@ -134,8 +142,8 @@ class EpicsDXPFalconMultiElementSystem(EpicsDXPBaseSystem): read_traces = Cpt(EpicsSignal, "ReadTraces", kind=Kind.omitted) # ROI and SCA - copy_roic_hannel = Cpt(EpicsSignal, "CopyROIChannel", kind=Kind.omitted) - copy_roie_nergy = Cpt(EpicsSignal, "CopyROIEnergy", kind=Kind.omitted) + copy_roi_channel = Cpt(EpicsSignal, "CopyROIChannel", kind=Kind.omitted) + copy_roi_energy = Cpt(EpicsSignal, "CopyROIEnergy", kind=Kind.omitted) copy_roi_sca = Cpt(EpicsSignal, "CopyROI_SCA", kind=Kind.omitted) # do_* executes the process: @@ -156,16 +164,44 @@ class EpicsDXPFalconMultiElementSystem(EpicsDXPBaseSystem): class EpicsDxpFalconMapping(EpicsDXPMapping): + """Mapping mode parameters as defined in dxpMapping.template""" + auto_apply = None apply = None nd_array_mode = Cpt(EpicsSignalWithRBV, "NDArrayMode") -class Falcon(EpicsDXPFalconMultiElementSystem, EpicsDxpFalconMapping): ... +class Falcon(EpicsDXPFalconMultiElementSystem, EpicsDxpFalconMapping, ADBase): + """Falcon base device""" + + # attribute required by ADBase + port_name = ADCpt(EpicsSignalRO, "Asyn.PORT", string=True) -class xMAP(EpicsDXPMultiElementSystem, EpicsDXPMapping): - # Override signals from EpicsDXPMultiElementSystem, so calling `set`` method +class EpicsDXPMultiElementSystem(_EpicsDXPMultiElementSystem): + """System-wide parameters as defined in dxpMED.template""" + + # Override some action signals, so calling `set`` method # returns a waitable Status object. Otherwise the Status object is immediately done. erase_start = Cpt(EpicsSignal, "EraseStart", put_complete=True, trigger_value=1) start_all = Cpt(EpicsSignal, "StartAll", put_complete=True, trigger_value=1) + + # mca.EpicsDXPMultiElementSystem maps the EPICS records under wrong names, i.e. + # copy_adcp_ercent_rule, copy_roic_hannel and copy_roie_nergy + copy_adc_percent_rule = Cpt(EpicsSignal, "CopyADCPercentRule") + copy_roi_channel = Cpt(EpicsSignal, "CopyROIChannel") + copy_roi_energy = Cpt(EpicsSignal, "CopyROIEnergy") + + +class Mercury(EpicsDXPMultiElementSystem, ADBase): + """Mercury base device""" + + # attribute required by ADBase + port_name = ADCpt(EpicsSignalRO, "Asyn.PORT", string=True) + + +class xMAP(EpicsDXPMultiElementSystem, EpicsDXPMapping, ADBase): + """xMAP base device""" + + # attribute required by ADBase + port_name = ADCpt(EpicsSignalRO, "Asyn.PORT", string=True) diff --git a/phoenix_bec/devices/dxp_old.py b/phoenix_bec/devices/dxp_old.py new file mode 100644 index 0000000..744dde6 --- /dev/null +++ b/phoenix_bec/devices/dxp_old.py @@ -0,0 +1,171 @@ +""" +Base classes for XIA xMAP and FalconX dxp system. +Falcon interfaces with the dxpSITORO epics driver, https://github.com/epics-modules/dxpSITORO. +xMAP interfaces with the dxp epics driver, https://github.com/epics-modules/dxp. + +An example usage for a 4-element FalconX system. :: + + from ophyd import Component as Cpt + from ophyd_devices.devices.dxp import Falcon, EpicsMCARecord, EpicsDXPFalcon + from ophyd_devices.devices.areadetector.plugins import HDF5Plugin_V35 as HDF5Plugin + + class FalconX4(Falcon): + # DXP parameters + dxp1 = Cpt(EpicsDXPFalcon, "dxp1:") + dxp2 = Cpt(EpicsDXPFalcon, "dxp2:") + dxp3 = Cpt(EpicsDXPFalcon, "dxp3:") + dxp4 = Cpt(EpicsDXPFalcon, "dxp4:") + + # MCA record with spectrum data + mca1 = Cpt(EpicsMCARecord, "mca1") + mca2 = Cpt(EpicsMCARecord, "mca2") + mca3 = Cpt(EpicsMCARecord, "mca3") + mca4 = Cpt(EpicsMCARecord, "mca4") + + # optionally with a HDF5 writer plugin + hdf = Cpt(HDF5Plugin, "HDF1:") + + falcon = FalconX4("X07MB-SITORO:", name="falcon") + falcon.collect_mode.put(0) # 0: MCA spectra, 1: MCA mapping + falcon.preset_mode.put("Real time") + falcon.preset_real_time.put(1) + status = falcon.erase_start.set(1) + status.wait() + falcon.mca1.spectrum.get() + +""" + +from ophyd import Component as Cpt +from ophyd import Kind, EpicsSignal, EpicsSignalRO, Device +from ophyd.mca import ( + EpicsMCARecord as _EpicsMCARecord, + EpicsDXPBaseSystem, + EpicsDXPMultiElementSystem, + EpicsDXPMapping, +) +from ophyd.areadetector import EpicsSignalWithRBV + +__all__ = ("EpicsMCARecord", "EpicsDXPFalcon", "Falcon", "xMAP") + + +class EpicsMCARecord(_EpicsMCARecord): + """EpicsMCARecord with addtional fields""" + + calo = Cpt(EpicsSignal, ".CALO") + cals = Cpt(EpicsSignal, ".CALS") + calq = Cpt(EpicsSignal, ".CALQ") + tth = Cpt(EpicsSignal, ".TTH") + + +class EpicsDXPFalcon(Device): + """All high-level DXP parameters for each channel""" + + # Detection + detection_filter = Cpt(EpicsSignalWithRBV, "DetectionFilter") + detection_threshold = Cpt(EpicsSignalWithRBV, "DetectionThreshold") + min_pulse_pair_separation = Cpt(EpicsSignalWithRBV, "MinPulsePairSeparation") + + # Pre-amp and energe range + detector_polarity = Cpt(EpicsSignalWithRBV, "DetectorPolarity") + decay_time = Cpt(EpicsSignalWithRBV, "DecayTime") + risetime_optimization = Cpt(EpicsSignalWithRBV, "RisetimeOptimization") + scale_factor = Cpt(EpicsSignalWithRBV, "ScaleFactor") + + # Presets + preset_events = Cpt(EpicsSignalWithRBV, "PresetEvents") + preset_mode = Cpt(EpicsSignalWithRBV, "PresetMode", string=True) + preset_triggers = Cpt(EpicsSignalWithRBV, "PresetTriggers") + preset_real_time = Cpt(EpicsSignalWithRBV, "PresetReal") + + # Couting statistics + elapsed_live_time = Cpt(EpicsSignalRO, "ElapsedLiveTime", lazy=True) + elapsed_real_time = Cpt(EpicsSignalRO, "ElapsedRealTime", lazy=True) + elapsed_trigger_live = Cpt(EpicsSignalRO, "ElapsedTriggerLiveTime", lazy=True) + triggers = Cpt(EpicsSignalRO, "Triggers", lazy=True) + events = Cpt(EpicsSignalRO, "Events", lazy=True) + input_count_rate = Cpt(EpicsSignalRO, "InputCountRate", lazy=True) + output_count_rate = Cpt(EpicsSignalRO, "OutputCountRate", lazy=True) + + # Mapping + current_pixel = Cpt(EpicsSignal, "CurrentPixel") + + # Diagnostic trace + trace_data = Cpt(EpicsSignal, "TraceData") + + +class EpicsDXPFalconMultiElementSystem(EpicsDXPBaseSystem): + # Preset control + preset_events = Cpt(EpicsSignal, "PresetEvents") + preset_real_time = Cpt(EpicsSignal, "PresetReal") + preset_mode = Cpt(EpicsSignal, "PresetMode", string=True) + preset_triggers = Cpt(EpicsSignal, "PresetTriggers") + + # Acquisition control + erase_all = Cpt(EpicsSignal, "EraseAll") + erase_start = Cpt(EpicsSignal, "EraseStart", put_complete=True, trigger_value=1) + start_all = Cpt(EpicsSignal, "StartAll", put_complete=True, trigger_value=1) + stop_all = Cpt(EpicsSignal, "StopAll") + + # Status + set_acquire_busy = Cpt(EpicsSignal, "SetAcquireBusy") + acquire_busy = Cpt(EpicsSignal, "AcquireBusy") + status_all = Cpt(EpicsSignal, "StatusAll") + status_all_once = Cpt(EpicsSignal, "StatusAllOnce") + acquiring = Cpt(EpicsSignal, "Acquiring") + + # Reading + read_all = Cpt(EpicsSignal, "ReadAll", kind=Kind.omitted) + read_all_once = Cpt(EpicsSignal, "ReadAllOnce", kind=Kind.omitted) + + # As a debugging note, if snl_connected is not '1', your IOC is + # misconfigured: + snl_connected = Cpt(EpicsSignal, "SNL_Connected") + + # High-level parameters + copy_decay_time = Cpt(EpicsSignal, "CopyDecayTime", kind=Kind.omitted) + copy_detection_filter = Cpt(EpicsSignal, "CopyDetectionFilter", kind=Kind.omitted) + copy_detection_threshold = Cpt(EpicsSignal, "CopyDetectionThreshold", kind=Kind.omitted) + copy_detector_polarity = Cpt(EpicsSignal, "CopyDetectorPolarity", kind=Kind.omitted) + copy_min_pulse_pair_separation = Cpt( + EpicsSignal, "CopyMinPulsePairSeparation", kind=Kind.omitted + ) + copt_risetime_optimization = Cpt(EpicsSignal, "CopyRisetimeOptimization", kind=Kind.omitted) + copy_scale_factor = Cpt(EpicsSignal, "CopyScaleFactor", kind=Kind.omitted) + read_traces = Cpt(EpicsSignal, "ReadTraces", kind=Kind.omitted) + + # ROI and SCA + copy_roic_hannel = Cpt(EpicsSignal, "CopyROIChannel", kind=Kind.omitted) + copy_roie_nergy = Cpt(EpicsSignal, "CopyROIEnergy", kind=Kind.omitted) + copy_roi_sca = Cpt(EpicsSignal, "CopyROI_SCA", kind=Kind.omitted) + + # do_* executes the process: + do_read_all = Cpt(EpicsSignal, "DoReadAll", kind=Kind.omitted) + do_status_all = Cpt(EpicsSignal, "DoStatusAll", kind=Kind.omitted) + do_read_traces = Cpt(EpicsSignal, "DoReadTraces", kind=Kind.omitted) + + # Statistics + dead_time = Cpt(EpicsSignal, "DeadTime") + idead_time = Cpt(EpicsSignal, "IDeadTime") + max_elapsed_live = Cpt(EpicsSignal, "MaxElapsedLive") + max_elapsed_real = Cpt(EpicsSignal, "MaxElapsedReal") + max_elapsed_trigger_live = Cpt(EpicsSignal, "MaxElapsedTriggerLive") + max_triggers = Cpt(EpicsSignal, "MaxTriggers") + max_events = Cpt(EpicsSignal, "MaxEvents") + max_input_count_rate = Cpt(EpicsSignal, "MaxInputCountRate") + max_output_count_rate = Cpt(EpicsSignal, "MaxOutputCountRate") + + +class EpicsDxpFalconMapping(EpicsDXPMapping): + auto_apply = None + apply = None + nd_array_mode = Cpt(EpicsSignalWithRBV, "NDArrayMode") + + +class Falcon(EpicsDXPFalconMultiElementSystem, EpicsDxpFalconMapping): ... + + +class xMAP(EpicsDXPMultiElementSystem, EpicsDXPMapping): + # Override signals from EpicsDXPMultiElementSystem, so calling `set`` method + # returns a waitable Status object. Otherwise the Status object is immediately done. + erase_start = Cpt(EpicsSignal, "EraseStart", put_complete=True, trigger_value=1) + start_all = Cpt(EpicsSignal, "StartAll", put_complete=True, trigger_value=1) diff --git a/phoenix_bec/devices/phoenix_falcon.py b/phoenix_bec/devices/phoenix_falcon.py index b689f02..ef094af 100644 --- a/phoenix_bec/devices/phoenix_falcon.py +++ b/phoenix_bec/devices/phoenix_falcon.py @@ -373,6 +373,7 @@ class FalconPhoenix(PSIDetectorBase, Falcon): help_text = """ PHOENIX FALCON """ + print(help_text) if __name__ == "__main__": diff --git a/phoenix_bec/local_scripts/Linescan_1.py b/phoenix_bec/local_scripts/Linescan_1.py deleted file mode 100644 index 0a41930..0000000 --- a/phoenix_bec/local_scripts/Linescan_1.py +++ /dev/null @@ -1,85 +0,0 @@ -#from unittest import mock -import numpy as np -#import pandas -#import pytest -#from bec_lib import messages -#import device_server -#from ophyd import Component as Cpt -from ophyd import Device, EpicsMotor, EpicsSignal, EpicsSignalRO -#from ophyd import FormattedComponent as FCpt -#from ophyd import Kind, PVPositioner, Signal -#from ophyd.flyers import FlyerInterface -#from ophyd.pv_positioner import PVPositionerComparator -#from ophyd.status import DeviceStatus, SubscriptionStatus - -import time as tt - -#import ophyd -import os -import sys - -#logger = bec_logger.logger -# load simulation - -#bec.config.load_demo_config() - -bec.config.update_session_with_file("config/config_1.yaml") - -os.system('mv *.yaml tmp') - - - -class PhoenixBL: - - #define some epics channels - - def __init__(self): - from ophyd import Device, EpicsMotor, EpicsSignal, EpicsSignalRO - from ophyd import Component as Cpt - self.ScanX = EpicsMotor(name='ScanX',prefix='X07MB-ES-MA1:ScanX') - self.ScanY = EpicsMotor(name='ScanY',prefix='X07MB-ES-MA1:ScanY') - self.DIODE = EpicsSignal(name='SI',read_pv='X07MB-OP2-SAI_07:MEAN') - self.SIG = Cpt(EpicsSignal,name='we',read_pv="X07MB-OP2-SAI_07:MEAN") - self.SMPL = EpicsSignal(name='SMPL',read_pv='X07MB-OP2:SMPL') - self.CYCLES = EpicsSignal(name='SMPL',read_pv='X07MB-OP2:TOTAL-CYCLES',write_pv='X07MB-OP2:TOTAL-CYCLES') - self.fielda =EpicsSignal(name='SMPL',read_pv='X07MB-SCAN:scan1.P1SP',write_pv='X07MB-SCAN:scan1.P1SP') -#end class - -ph=PhoenixBL() - -print('---------------------------------') - -# scan will not diode -print(' SCAN DO NOT READ DIODE ') -dev.PH_curr_conf.readout_priority='baseline' # do not read detector -ti=tt.time_ns() -s1=scans.line_scan(dev.PH_ScanX_conf,0,0.002,steps=4,exp_time=.01,relative=False,delay=2) -tf=tt.time_ns() - -print('elapsed time',(tf-ti)/1e9) -# scan will read diode -print(' SCAN READ DIODE ') -tt.sleep(2) -dev.PH_curr_conf.readout_priority='monitored' # read detector - -s2=scans.line_scan(dev.PH_ScanX_conf,0,0.002,steps=11,exp_time=.3,relative=False,delay=2) - - -""" -next lines do not work as pandas is not installed on test system - -res1 = s1.scan.to_pandas() -re1 = res1.to_numpy() -print('Scana') -print(res1) -print('') -print('Scan2 at pandas ') -print(res2) -print('Scan2 as numpy ') -print(res2) -""" - - - - - diff --git a/phoenix_bec/local_scripts/TEST_scanning/Linescan_1.py b/phoenix_bec/local_scripts/TEST_scanning/Linescan_1.py new file mode 100644 index 0000000..b8d6c58 --- /dev/null +++ b/phoenix_bec/local_scripts/TEST_scanning/Linescan_1.py @@ -0,0 +1,63 @@ +# from unittest import mock +import numpy as np + +# import pandas +# import pytest +# from bec_lib import messages +# import device_server +# from ophyd import Component as Cpt +from ophyd import Device, EpicsMotor, EpicsSignal, EpicsSignalRO + +# from ophyd import FormattedComponent as FCpt +# from ophyd import Kind, PVPositioner, Signal +# from ophyd.flyers import FlyerInterface +# from ophyd.pv_positioner import PVPositionerComparator +# from ophyd.status import DeviceStatus, SubscriptionStatus + +import time as tt + +# import ophyd +import os +import sys + +# logger = bec_logger.logger +# load simulation + +# bec.config.load_demo_config() + +# bec.config.update_session_with_file("config/config_1.yaml") +# create PHOENIX base configuration + +phoenix.create_base_config() +dev.MA1_ScanX.enabled = True + +print("---------------------------------") + +# scan will not diode +print(" SCAN DO NOT READ DIODE ") +dev.SAI_01_MEAN.readout_priority = "baseline" # do not read detector +ti = tt.time_ns() +s1 = scans.line_scan(dev.MA1_ScanX, 0, 0.002, steps=4, exp_time=0.01, relative=False, delay=2) +tf = tt.time_ns() + +print("elapsed time", (tf - ti) / 1e9) +# scan will read diode +print(" SCAN READ DIODE ") +tt.sleep(2) +dev.SAI_01_MEAN.readout_priority = "monitored" # read detector + +s2 = scans.line_scan(dev.MA1_ScanX, 0, 0.002, steps=11, exp_time=0.3, relative=False, delay=2) +dev.MA1_ScanX.enabled = False + + +# next lines do not work as pandas is not installed on test system + +res1 = s1.scan.to_pandas() +re1 = res1.to_numpy() +print("Scana") +print(res1) +print("") +print("Scan2 at pandas ") +print(res2) +print("Scan2 as numpy ") +print(res2) diff --git a/phoenix_bec/local_scripts/TEST_scanning/MyLogfile.txt b/phoenix_bec/local_scripts/TEST_scanning/MyLogfile.txt new file mode 100644 index 0000000..e307b83 --- /dev/null +++ b/phoenix_bec/local_scripts/TEST_scanning/MyLogfile.txt @@ -0,0 +1,513 @@ +258.3017885684967 sec Dummy_device Dummy_PSIDetector.__init__ +258.3085923194885 sec Dummy_device Dummy_PSIDetector._update_scaninfo +258.315456867218 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +258.3181173801422 sec Dummy_device Dummy_PSIDetector._update_filewriter +258.3209879398346 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +258.32397651672363 sec Dummy_device Dummy_PSIDetector._init +258.3270974159241 sec Dummy_device Dummy_PSIDetector._init ... done +258.3299674987793 sec Dummy_device Dummy_PSIDetector._update_service_config +258.33247351646423 sec Dummy_device Dummy_PSIDetector._update_scaninfo +258.33590173721313 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +258.3385784626007 sec Dummy_device Dummy_PSIDetector._update_filewriter +258.34114718437195 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +258.34365034103394 sec Dummy_device Dummy_PSIDetector._init +258.3460626602173 sec Dummy_device Dummy_PSIDetector._init ... done +258.348486661911 sec Dummy_device Dummy_PSIDetector.__init__ .. done +273.28097581863403 sec Dummy_device Dummy_PSIDetector.__init__ +273.2839708328247 sec Dummy_device Dummy_PSIDetector._update_scaninfo +273.28703570365906 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +273.28923439979553 sec Dummy_device Dummy_PSIDetector._update_filewriter +273.29163694381714 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +273.2945909500122 sec Dummy_device Dummy_PSIDetector._init +273.29863691329956 sec Dummy_device Dummy_PSIDetector._init ... done +273.3010427951813 sec Dummy_device Dummy_PSIDetector._update_service_config +273.3033182621002 sec Dummy_device Dummy_PSIDetector._update_scaninfo +273.3065254688263 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +273.3088366985321 sec Dummy_device Dummy_PSIDetector._update_filewriter +273.31172704696655 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +273.31443309783936 sec Dummy_device Dummy_PSIDetector._init +273.3175792694092 sec Dummy_device Dummy_PSIDetector._init ... done +273.31978011131287 sec Dummy_device Dummy_PSIDetector.__init__ .. done +318.5410006046295 sec Dummy_device Dummy_PSIDetector.__init__ +318.5440480709076 sec Dummy_device Dummy_PSIDetector._update_scaninfo +318.5478036403656 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +318.5504558086395 sec Dummy_device Dummy_PSIDetector._update_filewriter +318.5526340007782 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +318.5549247264862 sec Dummy_device Dummy_PSIDetector._init +318.5572078227997 sec Dummy_device Dummy_PSIDetector._init ... done +318.55954241752625 sec Dummy_device Dummy_PSIDetector._update_service_config +318.5614619255066 sec Dummy_device Dummy_PSIDetector._update_scaninfo +318.56455636024475 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +318.56680154800415 sec Dummy_device Dummy_PSIDetector._update_filewriter +318.56896591186523 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +318.5713827610016 sec Dummy_device Dummy_PSIDetector._init +318.57353615760803 sec Dummy_device Dummy_PSIDetector._init ... done +318.5840895175934 sec Dummy_device Dummy_PSIDetector.__init__ .. done +319.48665595054626 sec Dummy_device Dummy_PSIDetector.stage +319.4943518638611 sec Dummy_device Dummy_PSIDetector.stage done +320.14649772644043 sec Dummy_device Dummy_PSIDetector.pre_scan +320.1493499279022 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +322.0216338634491 sec Dummy_device Dummy_PSIDetector.complete +322.02455163002014 sec Dummy_device Dummy_PSIDetector.complete ... done +322.0301237106323 sec Dummy_device Dummy_PSIDetector.unstage +322.0323655605316 sec Dummy_device Dummy_PSIDetector.check_scan_id +322.03556275367737 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +322.0434696674347 sec Dummy_device Dummy_PSIDetector.unstage .. done +322.0462124347687 sec Dummy_device Dummy_PSIDetector.check_scan_id +322.049613237381 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +325.49065828323364 sec Dummy_device Dummy_PSIDetector.stage +325.49778604507446 sec Dummy_device Dummy_PSIDetector.stage done +326.2169315814972 sec Dummy_device Dummy_PSIDetector.pre_scan +326.2199287414551 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +333.2339792251587 sec Dummy_device Dummy_PSIDetector.complete +333.2387444972992 sec Dummy_device Dummy_PSIDetector.complete ... done +333.2450532913208 sec Dummy_device Dummy_PSIDetector.unstage +333.2477023601532 sec Dummy_device Dummy_PSIDetector.check_scan_id +333.252215385437 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +333.2547912597656 sec Dummy_device Dummy_PSIDetector.unstage .. done +333.25732684135437 sec Dummy_device Dummy_PSIDetector.check_scan_id +333.2605242729187 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +383.52448415756226 sec Dummy_device Dummy_PSIDetector.__init__ +383.5282344818115 sec Dummy_device Dummy_PSIDetector._update_scaninfo +383.53171586990356 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +383.5346601009369 sec Dummy_device Dummy_PSIDetector._update_filewriter +383.53747296333313 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +383.5405652523041 sec Dummy_device Dummy_PSIDetector._init +383.5436053276062 sec Dummy_device Dummy_PSIDetector._init ... done +383.5470070838928 sec Dummy_device Dummy_PSIDetector._update_service_config +383.5498764514923 sec Dummy_device Dummy_PSIDetector._update_scaninfo +383.553973197937 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +383.5567262172699 sec Dummy_device Dummy_PSIDetector._update_filewriter +383.5595018863678 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +383.5622727870941 sec Dummy_device Dummy_PSIDetector._init +383.56509137153625 sec Dummy_device Dummy_PSIDetector._init ... done +383.56781673431396 sec Dummy_device Dummy_PSIDetector.__init__ .. done +384.4197027683258 sec Dummy_device Dummy_PSIDetector.stage +384.4258131980896 sec Dummy_device Dummy_PSIDetector.stage done +385.1663706302643 sec Dummy_device Dummy_PSIDetector.pre_scan +385.17092657089233 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +387.17647194862366 sec Dummy_device Dummy_PSIDetector.complete +387.1801919937134 sec Dummy_device Dummy_PSIDetector.complete ... done +387.18778562545776 sec Dummy_device Dummy_PSIDetector.unstage +387.19075655937195 sec Dummy_device Dummy_PSIDetector.check_scan_id +387.1947159767151 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +387.19729018211365 sec Dummy_device Dummy_PSIDetector.unstage .. done +387.2002501487732 sec Dummy_device Dummy_PSIDetector.check_scan_id +387.2042922973633 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +390.5967915058136 sec Dummy_device Dummy_PSIDetector.stage +390.6016550064087 sec Dummy_device Dummy_PSIDetector.stage done +391.31412744522095 sec Dummy_device Dummy_PSIDetector.pre_scan +391.317245721817 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +398.2885682582855 sec Dummy_device Dummy_PSIDetector.complete +398.2922840118408 sec Dummy_device Dummy_PSIDetector.complete ... done +398.2986834049225 sec Dummy_device Dummy_PSIDetector.unstage +398.3014578819275 sec Dummy_device Dummy_PSIDetector.check_scan_id +398.305011510849 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +398.30738377571106 sec Dummy_device Dummy_PSIDetector.unstage .. done +398.30989623069763 sec Dummy_device Dummy_PSIDetector.check_scan_id +398.313679933548 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +55.712119579315186 sec Dummy_device Dummy_PSIDetector.__init__ +55.71538472175598 sec Dummy_device Dummy_PSIDetector._update_scaninfo +55.72820711135864 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +55.73171591758728 sec Dummy_device Dummy_PSIDetector._update_filewriter +55.734644651412964 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +55.73781394958496 sec Dummy_device Dummy_PSIDetector._init +55.74082565307617 sec Dummy_device Dummy_PSIDetector._init ... done +55.743837118148804 sec Dummy_device Dummy_PSIDetector._update_service_config +55.74670958518982 sec Dummy_device Dummy_PSIDetector._update_scaninfo +55.75890302658081 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +55.76187348365784 sec Dummy_device Dummy_PSIDetector._update_filewriter +55.76482844352722 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +55.767723083496094 sec Dummy_device Dummy_PSIDetector._init +55.77075743675232 sec Dummy_device Dummy_PSIDetector._init ... done +55.77365469932556 sec Dummy_device Dummy_PSIDetector.__init__ .. done +56.55250263214111 sec Dummy_device Dummy_PSIDetector.stage +56.56144142150879 sec Dummy_device Dummy_PSIDetector.stage done +57.29970669746399 sec Dummy_device Dummy_PSIDetector.pre_scan +57.30306386947632 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +59.22956824302673 sec Dummy_device Dummy_PSIDetector.complete +59.23271870613098 sec Dummy_device Dummy_PSIDetector.complete ... done +59.2375168800354 sec Dummy_device Dummy_PSIDetector.unstage +59.23973989486694 sec Dummy_device Dummy_PSIDetector.check_scan_id +59.24262094497681 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +59.244933128356934 sec Dummy_device Dummy_PSIDetector.unstage .. done +59.24763607978821 sec Dummy_device Dummy_PSIDetector.check_scan_id +59.25109386444092 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +62.65221810340881 sec Dummy_device Dummy_PSIDetector.stage +62.656172037124634 sec Dummy_device Dummy_PSIDetector.stage done +63.31900715827942 sec Dummy_device Dummy_PSIDetector.pre_scan +63.32232117652893 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +70.31378293037415 sec Dummy_device Dummy_PSIDetector.complete +70.31722259521484 sec Dummy_device Dummy_PSIDetector.complete ... done +70.32310819625854 sec Dummy_device Dummy_PSIDetector.unstage +70.32593488693237 sec Dummy_device Dummy_PSIDetector.check_scan_id +70.32954263687134 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +70.3320255279541 sec Dummy_device Dummy_PSIDetector.unstage .. done +70.33445334434509 sec Dummy_device Dummy_PSIDetector.check_scan_id +70.33776235580444 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +230.2806589603424 sec Dummy_device Dummy_PSIDetector.__init__ +230.2841832637787 sec Dummy_device Dummy_PSIDetector._update_scaninfo +230.28762674331665 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +230.2903938293457 sec Dummy_device Dummy_PSIDetector._update_filewriter +230.29354524612427 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +230.29628920555115 sec Dummy_device Dummy_PSIDetector._init +230.2988178730011 sec Dummy_device Dummy_PSIDetector._init ... done +230.30137276649475 sec Dummy_device Dummy_PSIDetector._update_service_config +230.30426454544067 sec Dummy_device Dummy_PSIDetector._update_scaninfo +230.30788803100586 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +230.3148958683014 sec Dummy_device Dummy_PSIDetector._update_filewriter +230.31744003295898 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +230.3200912475586 sec Dummy_device Dummy_PSIDetector._init +230.32251811027527 sec Dummy_device Dummy_PSIDetector._init ... done +230.3249213695526 sec Dummy_device Dummy_PSIDetector.__init__ .. done +95.54364109039307 sec Dummy_device Dummy_PSIDetector.__init__ +95.55088138580322 sec Dummy_device Dummy_PSIDetector._update_scaninfo +95.55566167831421 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +95.55822157859802 sec Dummy_device Dummy_PSIDetector._update_filewriter +95.56095170974731 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +95.56354069709778 sec Dummy_device Dummy_PSIDetector._init +95.56620073318481 sec Dummy_device Dummy_PSIDetector._init ... done +95.56886649131775 sec Dummy_device Dummy_PSIDetector._update_service_config +95.57119488716125 sec Dummy_device Dummy_PSIDetector._update_scaninfo +95.57833242416382 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +95.58116269111633 sec Dummy_device Dummy_PSIDetector._update_filewriter +95.58369874954224 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +95.58608078956604 sec Dummy_device Dummy_PSIDetector._init +95.58928394317627 sec Dummy_device Dummy_PSIDetector._init ... done +95.59169387817383 sec Dummy_device Dummy_PSIDetector.__init__ .. done +122.57217597961426 sec Dummy_device Dummy_PSIDetector.__init__ +122.57641291618347 sec Dummy_device Dummy_PSIDetector._update_scaninfo +122.57983541488647 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +122.58276462554932 sec Dummy_device Dummy_PSIDetector._update_filewriter +122.58589124679565 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +122.5887725353241 sec Dummy_device Dummy_PSIDetector._init +122.59162330627441 sec Dummy_device Dummy_PSIDetector._init ... done +122.59505033493042 sec Dummy_device Dummy_PSIDetector._update_service_config +122.60520505905151 sec Dummy_device Dummy_PSIDetector._update_scaninfo +122.60943651199341 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +122.61239290237427 sec Dummy_device Dummy_PSIDetector._update_filewriter +122.61533832550049 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +122.61793851852417 sec Dummy_device Dummy_PSIDetector._init +122.62070679664612 sec Dummy_device Dummy_PSIDetector._init ... done +122.62477135658264 sec Dummy_device Dummy_PSIDetector.__init__ .. done +107.0432550907135 sec Dummy_device Dummy_PSIDetector.__init__ +107.04688167572021 sec Dummy_device Dummy_PSIDetector._update_scaninfo +107.05029559135437 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +107.05297303199768 sec Dummy_device Dummy_PSIDetector._update_filewriter +107.05624318122864 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +107.0593614578247 sec Dummy_device Dummy_PSIDetector._init +107.06229066848755 sec Dummy_device Dummy_PSIDetector._init ... done +107.06521582603455 sec Dummy_device Dummy_PSIDetector._update_service_config +107.06809163093567 sec Dummy_device Dummy_PSIDetector._update_scaninfo +107.07408380508423 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +107.07719945907593 sec Dummy_device Dummy_PSIDetector._update_filewriter +107.08207726478577 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +107.08525776863098 sec Dummy_device Dummy_PSIDetector._init +107.08839154243469 sec Dummy_device Dummy_PSIDetector._init ... done +107.091153383255 sec Dummy_device Dummy_PSIDetector.__init__ .. done +125.38539528846741 sec Dummy_device Dummy_PSIDetector.__init__ +125.38865613937378 sec Dummy_device Dummy_PSIDetector._update_scaninfo +125.39200568199158 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +125.39495873451233 sec Dummy_device Dummy_PSIDetector._update_filewriter +125.39762306213379 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +125.40058827400208 sec Dummy_device Dummy_PSIDetector._init +125.40388655662537 sec Dummy_device Dummy_PSIDetector._init ... done +125.40676546096802 sec Dummy_device Dummy_PSIDetector._update_service_config +125.40919518470764 sec Dummy_device Dummy_PSIDetector._update_scaninfo +125.41260886192322 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +125.4149432182312 sec Dummy_device Dummy_PSIDetector._update_filewriter +125.41725778579712 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +125.41977047920227 sec Dummy_device Dummy_PSIDetector._init +125.4225537776947 sec Dummy_device Dummy_PSIDetector._init ... done +125.42497134208679 sec Dummy_device Dummy_PSIDetector.__init__ .. done +240.22587060928345 sec Dummy_device Dummy_PSIDetector.__init__ +240.22946453094482 sec Dummy_device Dummy_PSIDetector._update_scaninfo +240.23306703567505 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +240.23666286468506 sec Dummy_device Dummy_PSIDetector._update_filewriter +240.24055981636047 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +240.2433557510376 sec Dummy_device Dummy_PSIDetector._init +240.24579644203186 sec Dummy_device Dummy_PSIDetector._init ... done +240.2483983039856 sec Dummy_device Dummy_PSIDetector._update_service_config +240.2509183883667 sec Dummy_device Dummy_PSIDetector._update_scaninfo +240.254554271698 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +240.25772190093994 sec Dummy_device Dummy_PSIDetector._update_filewriter +240.26073122024536 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +240.2632761001587 sec Dummy_device Dummy_PSIDetector._init +240.26823139190674 sec Dummy_device Dummy_PSIDetector._init ... done +240.27151918411255 sec Dummy_device Dummy_PSIDetector.__init__ .. done +336.71218276023865 sec Dummy_device Dummy_PSIDetector.__init__ +336.7164421081543 sec Dummy_device Dummy_PSIDetector._update_scaninfo +336.7255961894989 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +336.7289445400238 sec Dummy_device Dummy_PSIDetector._update_filewriter +336.7329602241516 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +336.7363522052765 sec Dummy_device Dummy_PSIDetector._init +336.73995661735535 sec Dummy_device Dummy_PSIDetector._init ... done +336.7464373111725 sec Dummy_device Dummy_PSIDetector._update_service_config +336.75028443336487 sec Dummy_device Dummy_PSIDetector._update_scaninfo +336.7545552253723 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +336.7576735019684 sec Dummy_device Dummy_PSIDetector._update_filewriter +336.76090717315674 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +336.7639853954315 sec Dummy_device Dummy_PSIDetector._init +336.7671637535095 sec Dummy_device Dummy_PSIDetector._init ... done +336.77041029930115 sec Dummy_device Dummy_PSIDetector.__init__ .. done +440.15757870674133 sec Dummy_device Dummy_PSIDetector.__init__ +440.16116285324097 sec Dummy_device Dummy_PSIDetector._update_scaninfo +440.16435194015503 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +440.16683554649353 sec Dummy_device Dummy_PSIDetector._update_filewriter +440.1695673465729 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +440.1722664833069 sec Dummy_device Dummy_PSIDetector._init +440.1750702857971 sec Dummy_device Dummy_PSIDetector._init ... done +440.1782214641571 sec Dummy_device Dummy_PSIDetector._update_service_config +440.1812493801117 sec Dummy_device Dummy_PSIDetector._update_scaninfo +440.19190526008606 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +440.19455003738403 sec Dummy_device Dummy_PSIDetector._update_filewriter +440.1971185207367 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +440.1997950077057 sec Dummy_device Dummy_PSIDetector._init +440.2028238773346 sec Dummy_device Dummy_PSIDetector._init ... done +440.2053735256195 sec Dummy_device Dummy_PSIDetector.__init__ .. done +448.7176239490509 sec Dummy_device Dummy_PSIDetector.__init__ +448.7208425998688 sec Dummy_device Dummy_PSIDetector._update_scaninfo +448.724422454834 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +448.72714829444885 sec Dummy_device Dummy_PSIDetector._update_filewriter +448.72995138168335 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +448.73266077041626 sec Dummy_device Dummy_PSIDetector._init +448.73561096191406 sec Dummy_device Dummy_PSIDetector._init ... done +448.73833537101746 sec Dummy_device Dummy_PSIDetector._update_service_config +448.7411322593689 sec Dummy_device Dummy_PSIDetector._update_scaninfo +448.744580745697 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +448.7474892139435 sec Dummy_device Dummy_PSIDetector._update_filewriter +448.7504150867462 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +448.75304079055786 sec Dummy_device Dummy_PSIDetector._init +448.7556526660919 sec Dummy_device Dummy_PSIDetector._init ... done +448.75805735588074 sec Dummy_device Dummy_PSIDetector.__init__ .. done +449.67220664024353 sec Dummy_device Dummy_PSIDetector.stage +449.67666006088257 sec Dummy_device Dummy_PSIDetector.stage done +450.35275387763977 sec Dummy_device Dummy_PSIDetector.pre_scan +450.35644245147705 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +452.2964699268341 sec Dummy_device Dummy_PSIDetector.complete +452.2998161315918 sec Dummy_device Dummy_PSIDetector.complete ... done +452.3060998916626 sec Dummy_device Dummy_PSIDetector.unstage +452.30941367149353 sec Dummy_device Dummy_PSIDetector.check_scan_id +452.31272315979004 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +452.31540155410767 sec Dummy_device Dummy_PSIDetector.unstage .. done +452.3178186416626 sec Dummy_device Dummy_PSIDetector.check_scan_id +452.3210325241089 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +455.73230934143066 sec Dummy_device Dummy_PSIDetector.stage +455.73638582229614 sec Dummy_device Dummy_PSIDetector.stage done +456.4665324687958 sec Dummy_device Dummy_PSIDetector.pre_scan +456.4696660041809 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +463.4272403717041 sec Dummy_device Dummy_PSIDetector.complete +463.4405252933502 sec Dummy_device Dummy_PSIDetector.complete ... done +463.46015453338623 sec Dummy_device Dummy_PSIDetector.unstage +463.4632029533386 sec Dummy_device Dummy_PSIDetector.check_scan_id +463.4672119617462 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +463.4705789089203 sec Dummy_device Dummy_PSIDetector.unstage .. done +463.47444796562195 sec Dummy_device Dummy_PSIDetector.check_scan_id +463.4784984588623 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +534.1574292182922 sec Dummy_device Dummy_PSIDetector.__init__ +534.161062002182 sec Dummy_device Dummy_PSIDetector._update_scaninfo +534.167254447937 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +534.1703021526337 sec Dummy_device Dummy_PSIDetector._update_filewriter +534.1736783981323 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +534.1766662597656 sec Dummy_device Dummy_PSIDetector._init +534.1794040203094 sec Dummy_device Dummy_PSIDetector._init ... done +534.1823811531067 sec Dummy_device Dummy_PSIDetector._update_service_config +534.2018411159515 sec Dummy_device Dummy_PSIDetector._update_scaninfo +534.2123966217041 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +534.2163343429565 sec Dummy_device Dummy_PSIDetector._update_filewriter +534.2226631641388 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +534.2264795303345 sec Dummy_device Dummy_PSIDetector._init +534.2294256687164 sec Dummy_device Dummy_PSIDetector._init ... done +534.2324883937836 sec Dummy_device Dummy_PSIDetector.__init__ .. done +598.7346422672272 sec Dummy_device Dummy_PSIDetector.__init__ +598.7380158901215 sec Dummy_device Dummy_PSIDetector._update_scaninfo +598.7417516708374 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +598.7443566322327 sec Dummy_device Dummy_PSIDetector._update_filewriter +598.7471566200256 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +598.7500152587891 sec Dummy_device Dummy_PSIDetector._init +598.7526416778564 sec Dummy_device Dummy_PSIDetector._init ... done +598.7552354335785 sec Dummy_device Dummy_PSIDetector._update_service_config +598.7579991817474 sec Dummy_device Dummy_PSIDetector._update_scaninfo +598.7619400024414 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +598.7644789218903 sec Dummy_device Dummy_PSIDetector._update_filewriter +598.7724177837372 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +598.7756130695343 sec Dummy_device Dummy_PSIDetector._init +598.7785928249359 sec Dummy_device Dummy_PSIDetector._init ... done +598.7815330028534 sec Dummy_device Dummy_PSIDetector.__init__ .. done +7.837775468826294 sec Dummy_device Dummy_PSIDetector.__init__ +7.84122633934021 sec Dummy_device Dummy_PSIDetector._update_scaninfo +7.845379829406738 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +7.8486504554748535 sec Dummy_device Dummy_PSIDetector._update_filewriter +7.851677179336548 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +7.862502336502075 sec Dummy_device Dummy_PSIDetector._init +7.865923643112183 sec Dummy_device Dummy_PSIDetector._init ... done +7.868553876876831 sec Dummy_device Dummy_PSIDetector._update_service_config +7.8712639808654785 sec Dummy_device Dummy_PSIDetector._update_scaninfo +7.8751060962677 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +7.878670930862427 sec Dummy_device Dummy_PSIDetector._update_filewriter +7.881458520889282 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +7.88470196723938 sec Dummy_device Dummy_PSIDetector._init +7.887582302093506 sec Dummy_device Dummy_PSIDetector._init ... done +7.8904688358306885 sec Dummy_device Dummy_PSIDetector.__init__ .. done +8.856863498687744 sec Dummy_device Dummy_PSIDetector.stage +8.876151084899902 sec Dummy_device Dummy_PSIDetector.stage done +9.585510969161987 sec Dummy_device Dummy_PSIDetector.pre_scan +9.589120864868164 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +11.556761264801025 sec Dummy_device Dummy_PSIDetector.complete +11.560120582580566 sec Dummy_device Dummy_PSIDetector.complete ... done +11.566796779632568 sec Dummy_device Dummy_PSIDetector.unstage +11.570103883743286 sec Dummy_device Dummy_PSIDetector.check_scan_id +11.574872493743896 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +11.577794790267944 sec Dummy_device Dummy_PSIDetector.unstage .. done +11.580487966537476 sec Dummy_device Dummy_PSIDetector.check_scan_id +11.584205150604248 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +14.98130464553833 sec Dummy_device Dummy_PSIDetector.stage +14.98550009727478 sec Dummy_device Dummy_PSIDetector.stage done +15.68580937385559 sec Dummy_device Dummy_PSIDetector.pre_scan +15.689151048660278 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +22.657074689865112 sec Dummy_device Dummy_PSIDetector.complete +22.662108659744263 sec Dummy_device Dummy_PSIDetector.complete ... done +22.669034719467163 sec Dummy_device Dummy_PSIDetector.unstage +22.671940326690674 sec Dummy_device Dummy_PSIDetector.check_scan_id +22.675806283950806 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +22.678316593170166 sec Dummy_device Dummy_PSIDetector.unstage .. done +22.68111252784729 sec Dummy_device Dummy_PSIDetector.check_scan_id +22.684999227523804 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +198.9285409450531 sec Dummy_device Dummy_PSIDetector.__init__ +198.9362165927887 sec Dummy_device Dummy_PSIDetector._update_scaninfo +198.94056749343872 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +198.94360828399658 sec Dummy_device Dummy_PSIDetector._update_filewriter +198.94663405418396 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +198.94988799095154 sec Dummy_device Dummy_PSIDetector._init +198.95326805114746 sec Dummy_device Dummy_PSIDetector._init ... done +198.95595622062683 sec Dummy_device Dummy_PSIDetector._update_service_config +198.95901942253113 sec Dummy_device Dummy_PSIDetector._update_scaninfo +198.96562147140503 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +198.96872448921204 sec Dummy_device Dummy_PSIDetector._update_filewriter +198.97177743911743 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +198.97474718093872 sec Dummy_device Dummy_PSIDetector._init +198.97741293907166 sec Dummy_device Dummy_PSIDetector._init ... done +198.979900598526 sec Dummy_device Dummy_PSIDetector.__init__ .. done +273.58063983917236 sec Dummy_device Dummy_PSIDetector.__init__ +273.5842516422272 sec Dummy_device Dummy_PSIDetector._update_scaninfo +273.587562084198 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +273.5902290344238 sec Dummy_device Dummy_PSIDetector._update_filewriter +273.5933790206909 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +273.5958044528961 sec Dummy_device Dummy_PSIDetector._init +273.598260641098 sec Dummy_device Dummy_PSIDetector._init ... done +273.60068702697754 sec Dummy_device Dummy_PSIDetector._update_service_config +273.60293459892273 sec Dummy_device Dummy_PSIDetector._update_scaninfo +273.6064066886902 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +273.60881304740906 sec Dummy_device Dummy_PSIDetector._update_filewriter +273.61149501800537 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +273.61411118507385 sec Dummy_device Dummy_PSIDetector._init +273.6163446903229 sec Dummy_device Dummy_PSIDetector._init ... done +273.6186339855194 sec Dummy_device Dummy_PSIDetector.__init__ .. done +289.1456503868103 sec Dummy_device Dummy_PSIDetector.__init__ +289.14894795417786 sec Dummy_device Dummy_PSIDetector._update_scaninfo +289.15220499038696 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +289.15479493141174 sec Dummy_device Dummy_PSIDetector._update_filewriter +289.1575071811676 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +289.1601548194885 sec Dummy_device Dummy_PSIDetector._init +289.1627006530762 sec Dummy_device Dummy_PSIDetector._init ... done +289.16531777381897 sec Dummy_device Dummy_PSIDetector._update_service_config +289.16803646087646 sec Dummy_device Dummy_PSIDetector._update_scaninfo +289.17167234420776 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +289.17424416542053 sec Dummy_device Dummy_PSIDetector._update_filewriter +289.1768672466278 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +289.19212794303894 sec Dummy_device Dummy_PSIDetector._init +289.1952097415924 sec Dummy_device Dummy_PSIDetector._init ... done +289.1978967189789 sec Dummy_device Dummy_PSIDetector.__init__ .. done +293.3917553424835 sec Dummy_device Dummy_PSIDetector.__init__ +293.3952159881592 sec Dummy_device Dummy_PSIDetector._update_scaninfo +293.398410320282 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +293.4014220237732 sec Dummy_device Dummy_PSIDetector._update_filewriter +293.40486550331116 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +293.40760946273804 sec Dummy_device Dummy_PSIDetector._init +293.4102578163147 sec Dummy_device Dummy_PSIDetector._init ... done +293.4129559993744 sec Dummy_device Dummy_PSIDetector._update_service_config +293.416291475296 sec Dummy_device Dummy_PSIDetector._update_scaninfo +293.4226896762848 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +293.43413949012756 sec Dummy_device Dummy_PSIDetector._update_filewriter +293.4404549598694 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +293.4433434009552 sec Dummy_device Dummy_PSIDetector._init +293.44669795036316 sec Dummy_device Dummy_PSIDetector._init ... done +293.450825214386 sec Dummy_device Dummy_PSIDetector.__init__ .. done +294.4045298099518 sec Dummy_device Dummy_PSIDetector.stage +294.41221737861633 sec Dummy_device Dummy_PSIDetector.stage done +295.0753116607666 sec Dummy_device Dummy_PSIDetector.pre_scan +295.0786409378052 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +296.9744246006012 sec Dummy_device Dummy_PSIDetector.complete +296.9783310890198 sec Dummy_device Dummy_PSIDetector.complete ... done +296.9849274158478 sec Dummy_device Dummy_PSIDetector.unstage +296.9879596233368 sec Dummy_device Dummy_PSIDetector.check_scan_id +296.9918463230133 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +296.9946928024292 sec Dummy_device Dummy_PSIDetector.unstage .. done +296.9977705478668 sec Dummy_device Dummy_PSIDetector.check_scan_id +297.00152254104614 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +300.39787578582764 sec Dummy_device Dummy_PSIDetector.stage +300.40195393562317 sec Dummy_device Dummy_PSIDetector.stage done +301.1010916233063 sec Dummy_device Dummy_PSIDetector.pre_scan +301.10465002059937 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +308.1270532608032 sec Dummy_device Dummy_PSIDetector.complete +308.1302571296692 sec Dummy_device Dummy_PSIDetector.complete ... done +308.13682293891907 sec Dummy_device Dummy_PSIDetector.unstage +308.13955307006836 sec Dummy_device Dummy_PSIDetector.check_scan_id +308.14320278167725 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +308.14579582214355 sec Dummy_device Dummy_PSIDetector.unstage .. done +308.1484956741333 sec Dummy_device Dummy_PSIDetector.check_scan_id +308.1524248123169 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +406.1815185546875 sec Dummy_device Dummy_PSIDetector.__init__ +406.18433952331543 sec Dummy_device Dummy_PSIDetector._update_scaninfo +406.1875720024109 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +406.1899950504303 sec Dummy_device Dummy_PSIDetector._update_filewriter +406.19225120544434 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +406.1947364807129 sec Dummy_device Dummy_PSIDetector._init +406.1971571445465 sec Dummy_device Dummy_PSIDetector._init ... done +406.1996533870697 sec Dummy_device Dummy_PSIDetector._update_service_config +406.2021658420563 sec Dummy_device Dummy_PSIDetector._update_scaninfo +406.20517230033875 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +406.2075276374817 sec Dummy_device Dummy_PSIDetector._update_filewriter +406.2099573612213 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +406.2122435569763 sec Dummy_device Dummy_PSIDetector._init +406.21466541290283 sec Dummy_device Dummy_PSIDetector._init ... done +406.2169442176819 sec Dummy_device Dummy_PSIDetector.__init__ .. done +408.5058219432831 sec Dummy_device Dummy_PSIDetector.__init__ +408.5092177391052 sec Dummy_device Dummy_PSIDetector._update_scaninfo +408.51229882240295 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +408.5166611671448 sec Dummy_device Dummy_PSIDetector._update_filewriter +408.51968693733215 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +408.52243971824646 sec Dummy_device Dummy_PSIDetector._init +408.5258412361145 sec Dummy_device Dummy_PSIDetector._init ... done +408.5286478996277 sec Dummy_device Dummy_PSIDetector._update_service_config +408.53117513656616 sec Dummy_device Dummy_PSIDetector._update_scaninfo +408.5346622467041 sec Dummy_device Dummy_PSIDetector._update_scaninfo .. done +408.5387032032013 sec Dummy_device Dummy_PSIDetector._update_filewriter +408.5484755039215 sec Dummy_device Dummy_PSIDetector._update_filewriter .. done +408.5515501499176 sec Dummy_device Dummy_PSIDetector._init +408.55432891845703 sec Dummy_device Dummy_PSIDetector._init ... done +408.55744099617004 sec Dummy_device Dummy_PSIDetector.__init__ .. done +409.36813139915466 sec Dummy_device Dummy_PSIDetector.stage +409.37291145324707 sec Dummy_device Dummy_PSIDetector.stage done +410.0452582836151 sec Dummy_device Dummy_PSIDetector.pre_scan +410.04850935935974 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +411.9517059326172 sec Dummy_device Dummy_PSIDetector.complete +411.9550929069519 sec Dummy_device Dummy_PSIDetector.complete ... done +411.9607892036438 sec Dummy_device Dummy_PSIDetector.unstage +411.9635720252991 sec Dummy_device Dummy_PSIDetector.check_scan_id +411.96782517433167 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +411.9705128669739 sec Dummy_device Dummy_PSIDetector.unstage .. done +411.97303891181946 sec Dummy_device Dummy_PSIDetector.check_scan_id +411.97616386413574 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +415.3653302192688 sec Dummy_device Dummy_PSIDetector.stage +415.36913657188416 sec Dummy_device Dummy_PSIDetector.stage done +416.0821409225464 sec Dummy_device Dummy_PSIDetector.pre_scan +416.0855324268341 sec Dummy_device Dummy_PSIDetector.pre_scan .. done +422.92456674575806 sec Dummy_device Dummy_PSIDetector.complete +422.92839455604553 sec Dummy_device Dummy_PSIDetector.complete ... done +422.93567180633545 sec Dummy_device Dummy_PSIDetector.unstage +422.9386281967163 sec Dummy_device Dummy_PSIDetector.check_scan_id +422.9420807361603 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done +422.94424176216125 sec Dummy_device Dummy_PSIDetector.unstage .. done +422.9465448856354 sec Dummy_device Dummy_PSIDetector.check_scan_id +422.94983959198 sec Dummy_device Dummy_PSIDetector.check_scan_id .. done diff --git a/phoenix_bec/scripts/phoenix_help.py b/phoenix_bec/scripts/phoenix_help.py index 8785c39..78ba103 100644 --- a/phoenix_bec/scripts/phoenix_help.py +++ b/phoenix_bec/scripts/phoenix_help.py @@ -85,12 +85,44 @@ class PhoenixHelp: def help_devices(self): """ - help of frequently used attributes + + help text on using devices in bec command line + """ self.__on_devices = """ - WORK ON EPICS CHANNELS: + ===== THE BASICS ========= + + All devices are collected in dev.{name}, for example + dev.falcon : falcon 4 element detector + dev.MA_SCANX : motor ScanX of manipulator MA1 + dev.SAI_MA1 : diode detector etc. + + For safety reasond, after initialization in bec,if possible, + all devices are DISABLED by default. + + i.e dev.{name}.enabled is set to False for safety + to enable : dev.{name}.enabled = True + to disable : dev.{name}.enabled = False + + To see all devices use + + dev.show_all() + + ===== READING DEVICES IN SCANS ==== + + dev.{name}.readout_priority = "monitored" : reads device in scan on each point + dev.{name}.readout_priority = "baseline" : does not read device in scan + + ====== initialize devices ========= + + from bec comamnd line in python script + %ph_create_base_config phoenx.create_base_config() -- created main devices + %add_falcon phoenix.add_falcon -- add falcon to existing devices + ... etc.. + + ====== WORK ON EPICS CHANNELS ==== .get() : read signal: value only .read() : read signal, into dictionary including timestamp diff --git a/pyproject.toml b/pyproject.toml index f3dee8d..32fe503 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,6 +24,7 @@ dev = [ "pytest-random-order", "ophyd_devices", "bec_server", + "pandas", ] [project.entry-points."bec"]