Files
superxas_bec/bin/test_ad_based_falcon.py
2025-09-11 17:11:47 +02:00

60 lines
2.1 KiB
Python

import time
from ophyd_devices import CompareStatus
from superxas_bec.devices.falcon_ad import FalconAcquiringStatus, FalconAD
from superxas_bec.devices.trigger import SamplingDone, Trigger
if __name__ == "__main__":
print("Initializing Falcon...")
time_started = time.time()
falcon = FalconAD(name="test_device", prefix="X10DA-SITORO:", scan_info=None)
trigger = Trigger(name="trigger_device", prefix="X10DA-ES1:", scan_info=None)
falcon.wait_for_connection(timeout=50, all_signals=True)
trigger.wait_for_connection(timeout=50, all_signals=True)
print(f"Device initialized in {time.time() - time_started:.2f} seconds.")
if falcon.acquiring.get() != FalconAcquiringStatus.DONE:
status = CompareStatus(falcon.acquiring, FalconAcquiringStatus.DONE)
falcon.stop_all.put(1)
status.wait(timeout=5)
# Print PVs
print("PVs:")
print(f"ICR: {falcon.dxp1.input_count_rate.describe()}")
print(f"OCR: {falcon.dxp1.output_count_rate.describe()}")
print(f"ROI: {falcon.mca1.rois.roi0.count.describe()}")
print(f"ERT: {falcon.mca1.elapsed_real_time.describe()}")
# print(falcon.acquiring._auto_monitor)
# while True:
# print(falcon.acquiring.get())
# time.sleep(1)
# Test loop
for i in range(500):
start_time = time.time()
print(f"Start loop iteration {i}")
#status = CompareStatus(falcon.acquiring, FalconAcquiringStatus.ACQUIRING)
falcon.erase_start.put(1)
#status.wait(timeout=5)
status2 = CompareStatus(trigger.smpl_done, SamplingDone.DONE)
trigger.smpl.put(1)
status2.wait(timeout=5)
status3 = CompareStatus(falcon.acquiring, FalconAcquiringStatus.DONE)
falcon.stop_all.put(1)
status3.wait(timeout=5)
time.sleep(0.1)
icr = falcon.dxp1.input_count_rate.get()
ocr = falcon.dxp1.output_count_rate.get()
roi = falcon.mca1.rois.roi0.count.get()
ert = falcon.mca1.elapsed_real_time.get()
print(f"time={time.time() - start_time:.4f}", icr, ocr, roi, ert)