diff --git a/ADOrcaApp/src/orca.cpp b/ADOrcaApp/src/orca.cpp index 09bc064..978df5c 100644 --- a/ADOrcaApp/src/orca.cpp +++ b/ADOrcaApp/src/orca.cpp @@ -787,7 +787,7 @@ void Orca::imageTask(){ double elapsedTime, elapsedTotalTime; int evr_counts = 0; double exposure_time, readout_time; - double maxAcqusitionTime; + double maxAcqusitionTime, setAcqusitionRate; int triggerMode = DCAMPROP_TRIGGERSOURCE__INTERNAL; lock(); @@ -812,6 +812,8 @@ void Orca::imageTask(){ } else { epicsTimeGetCurrent(&startTimeStamp); + getDoubleParam(ADAcquirePeriod, &setAcqusitionRate); + maxAcqusitionTime = setAcqusitionRate * 2; getIntegerParam(ADNumImages, &totalImages); getIntegerParam(ADImageMode, &imageMode); setIntegerParam(ADStatus, ADStatusAcquire); @@ -926,11 +928,13 @@ void Orca::imageTask(){ epicsTimeGetCurrent(&prev_trigger_time); evr_counts_since_last_start_previous = evr_counts_since_last_start; } + - epicsTimeGetCurrent(¤t_trigger_time); + if (imageMode == ADImageMultiple) { + epicsTimeGetCurrent(¤t_trigger_time); elapsedTotalTime = epicsTimeDiffInSeconds(¤t_trigger_time, &startTimeStamp); - elapsedTotalTime > maxAcqusitionTime) { + if (elapsedTotalTime > maxAcqusitionTime) { setStringParam(ADStatusMessage, "Acquisition taking too long!"); } }