fix(orca.cpp): timeout msg

This commit is contained in:
Jim Larsson
2024-02-19 11:27:22 +01:00
committed by Iocuser
parent 9bf0389752
commit 15e0849a58
2 changed files with 18 additions and 14 deletions
+16 -13
View File
@@ -783,11 +783,10 @@ void Orca::imageTask(){
DCAMCAP_TRANSFERINFO captransferinfo;
epicsTimeStamp prevAcqTime, currentAcqTime;
epicsTimeStamp prev_trigger_time, current_trigger_time;
epicsTimeStamp startTimeStamp;
double elapsedTime, elapsedTotalTime;
double elapsedTime;
int evr_counts = 0;
double exposure_time, readout_time;
double maxAcqusitionTime, setAcqusitionRate;
double maxAcqusitionTime, acqusitionRate;
int triggerMode = DCAMPROP_TRIGGERSOURCE__INTERNAL;
lock();
@@ -811,9 +810,6 @@ void Orca::imageTask(){
epicsThreadSleep(.1);
}
else {
epicsTimeGetCurrent(&startTimeStamp);
getDoubleParam(ADAcquirePeriod, &setAcqusitionRate);
maxAcqusitionTime = setAcqusitionRate * 2;
getIntegerParam(ADNumImages, &totalImages);
getIntegerParam(ADImageMode, &imageMode);
setIntegerParam(ADStatus, ADStatusAcquire);
@@ -931,14 +927,21 @@ void Orca::imageTask(){
if (imageMode == ADImageMultiple) {
epicsTimeGetCurrent(&current_trigger_time);
elapsedTotalTime = epicsTimeDiffInSeconds(&current_trigger_time, &startTimeStamp);
if (elapsedTotalTime > maxAcqusitionTime) {
setStringParam(ADStatusMessage, "Acquisition taking too long!");
}
}
getDoubleParam(ADAcquirePeriod, &acqusitionRate);
maxAcqusitionTime = acqusitionRate * 2;
epicsTimeGetCurrent(&currentAcqTime);
if (epicsTimeDiffInSeconds(&currentAcqTime, &prevAcqTime) > maxAcqusitionTime) {
setShutter(0);
stopAcquire();
setIntegerParam(ADAcquire, 0);
setIntegerParam(hAcqControl, 0);
setIntegerParam(ADStatus,ADStatusError);
setStringParam(ADStatusMessage, "Acquisition timeout");
}
epicsTimeGetCurrent(&current_trigger_time);
if (epicsTimeDiffInSeconds(&current_trigger_time, &prev_trigger_time) > (exposure_time + readout_time)) {
if ((evr_counts_since_last_start) > captransferinfo.nFrameCount ) {
evr_trigger_dropped = evr_counts_since_last_start - captransferinfo.nFrameCount;