wip test cachannel vs pyepics

This commit is contained in:
2025-06-23 15:02:34 +02:00
parent 1c6d568ff2
commit abcf910faf
2 changed files with 112 additions and 0 deletions
@@ -0,0 +1,61 @@
#!/usr/bin/python
# python script
import time
from CaChannel import CaChannel, ca
I0 = CaChannel()
I0.searchw("X10DA-ES1-SAI_01:MEAN")
Trigger = CaChannel()
Trigger.searchw("X10DA-ES1:SMPL")
TriggerDone = CaChannel()
TriggerDone.searchw("X10DA-ES1:SMPL-DONE")
XMAPStart = CaChannel()
XMAPStart.searchw("X10DA-SITORO:EraseStart")
XMAPStop = CaChannel()
XMAPStop.searchw("X10DA-SITORO:StopAll")
XMAPAcquiring = CaChannel()
XMAPAcquiring.searchw("X10DA-SITORO:Acquiring")
XMAPICR = CaChannel()
XMAPICR.searchw("X10DA-SITORO:dxp1:InputCountRate")
XMAPOCR = CaChannel()
XMAPOCR.searchw("X10DA-SITORO:dxp1:OutputCountRate")
XMAPROI = CaChannel()
XMAPROI.searchw("X10DA-SITORO:mca1.R0")
for i in range(25):
start_time = time.time()
XMAPStart.putw(1)
f = 0
while f == 0:
time.sleep(0.05)
f = XMAPAcquiring.getw()
Trigger.putw(1)
time.sleep(0.2)
t = 0
while t == 0:
time.sleep(0.05)
t = TriggerDone.getw()
XMAPStop.putw(1)
f = 1
while f == 1:
time.sleep(0.05)
f = XMAPAcquiring.getw()
time.sleep(0.1)
i0 = I0.getw()
icr = XMAPICR.getw()
ocr = XMAPOCR.getw()
roi = XMAPROI.getw()
end_time = time.time()
print(f"time={end_time-start_time:.4f}", i0, icr, ocr, roi)
@@ -0,0 +1,51 @@
#!/usr/bin/python
# PyEpics version of the script
import time
import epics
# Define PVs
I0 = epics.PV("X10DA-ES1-SAI_01:MEAN")
Trigger = epics.PV("X10DA-ES1:SMPL")
TriggerDone = epics.PV("X10DA-ES1:SMPL-DONE")
XMAPStart = epics.PV("X10DA-SITORO:EraseStart")
XMAPStop = epics.PV("X10DA-SITORO:StopAll")
XMAPAcquiring = epics.PV("X10DA-SITORO:Acquiring")
XMAPICR = epics.PV("X10DA-SITORO:dxp1:InputCountRate")
XMAPOCR = epics.PV("X10DA-SITORO:dxp1:OutputCountRate")
XMAPROI = epics.PV("X10DA-SITORO:mca1.R0")
# Wait for connections (optional)
for pv in [I0, Trigger, TriggerDone, XMAPStart, XMAPStop, XMAPAcquiring, XMAPICR, XMAPOCR, XMAPROI]:
pv.wait_for_connection(timeout=2)
# Measurement loop
for i in range(25):
start_time = time.time()
XMAPStart.put(1, wait=True)
while XMAPAcquiring.get() == 0:
time.sleep(0.05)
Trigger.put(1, wait=True)
time.sleep(0.2)
while TriggerDone.get() == 0:
time.sleep(0.05)
XMAPStop.put(1, wait=True)
while XMAPAcquiring.get() == 1:
time.sleep(0.05)
time.sleep(0.1)
i0 = I0.get()
icr = XMAPICR.get()
ocr = XMAPOCR.get()
roi = XMAPROI.get()
end_time = time.time()
print(f"time={end_time - start_time:.4f}", i0, icr, ocr, roi)