add elapsedTotalTime and compare with max acq.

This commit is contained in:
Jim Larsson
2024-02-13 11:45:02 +01:00
parent e24c2f68e8
commit 1a3c91838b
+11 -3
View File
@@ -783,10 +783,11 @@ void Orca::imageTask(){
DCAMCAP_TRANSFERINFO captransferinfo;
epicsTimeStamp prevAcqTime, currentAcqTime;
epicsTimeStamp prev_trigger_time, current_trigger_time;
double elapsedTime;
epicsTimeStamp startTimeStamp;
double elapsedTime, elapsedTotalTime;
int evr_counts = 0;
double exposure_time, readout_time;
double maxAcqusitionTime;
int triggerMode = DCAMPROP_TRIGGERSOURCE__INTERNAL;
lock();
@@ -810,6 +811,7 @@ void Orca::imageTask(){
epicsThreadSleep(.1);
}
else {
epicsTimeGetCurrent(&startTimeStamp);
getIntegerParam(ADNumImages, &totalImages);
getIntegerParam(ADImageMode, &imageMode);
setIntegerParam(ADStatus, ADStatusAcquire);
@@ -828,7 +830,7 @@ void Orca::imageTask(){
imageTransferStatus(m_hdcam, captransferinfo);
lock();
if (prevAcquisitionCount < (uint64_t)captransferinfo.nFrameCount) {
if (prevAcquisitionCount < (uint64_t)captransferinfo.nFrameCount) {
printf("\nOrca Frame Count: %d\n", captransferinfo.nFrameCount);
prevAcquisitionCount = captransferinfo.nFrameCount;
@@ -926,6 +928,12 @@ void Orca::imageTask(){
}
epicsTimeGetCurrent(&current_trigger_time);
if (imageMode == ADImageMultiple) {
elapsedTotalTime = epicsTimeDiffInSeconds(&current_trigger_time, &startTimeStamp);
elapsedTotalTime > maxAcqusitionTime) {
setStringParam(ADStatusMessage, "Acquisition taking too long!");
}
}
if (epicsTimeDiffInSeconds(&current_trigger_time, &prev_trigger_time) > (exposure_time + readout_time)) {
if ((evr_counts_since_last_start) > captransferinfo.nFrameCount ) {