fix(orca.cpp): timeout msg
This commit is contained in:
+16
-13
@@ -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(¤t_trigger_time);
|
||||
elapsedTotalTime = epicsTimeDiffInSeconds(¤t_trigger_time, &startTimeStamp);
|
||||
if (elapsedTotalTime > maxAcqusitionTime) {
|
||||
setStringParam(ADStatusMessage, "Acquisition taking too long!");
|
||||
}
|
||||
}
|
||||
|
||||
getDoubleParam(ADAcquirePeriod, &acqusitionRate);
|
||||
maxAcqusitionTime = acqusitionRate * 2;
|
||||
epicsTimeGetCurrent(¤tAcqTime);
|
||||
if (epicsTimeDiffInSeconds(¤tAcqTime, &prevAcqTime) > maxAcqusitionTime) {
|
||||
setShutter(0);
|
||||
stopAcquire();
|
||||
setIntegerParam(ADAcquire, 0);
|
||||
setIntegerParam(hAcqControl, 0);
|
||||
setIntegerParam(ADStatus,ADStatusError);
|
||||
setStringParam(ADStatusMessage, "Acquisition timeout");
|
||||
|
||||
}
|
||||
|
||||
epicsTimeGetCurrent(¤t_trigger_time);
|
||||
if (epicsTimeDiffInSeconds(¤t_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;
|
||||
|
||||
Reference in New Issue
Block a user