add elapsedTotalTime and compare with max acq.
This commit is contained in:
+11
-3
@@ -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(¤t_trigger_time);
|
||||
if (imageMode == ADImageMultiple) {
|
||||
elapsedTotalTime = epicsTimeDiffInSeconds(¤t_trigger_time, &startTimeStamp);
|
||||
elapsedTotalTime > maxAcqusitionTime) {
|
||||
setStringParam(ADStatusMessage, "Acquisition taking too long!");
|
||||
}
|
||||
}
|
||||
|
||||
if (epicsTimeDiffInSeconds(¤t_trigger_time, &prev_trigger_time) > (exposure_time + readout_time)) {
|
||||
if ((evr_counts_since_last_start) > captransferinfo.nFrameCount ) {
|
||||
|
||||
Reference in New Issue
Block a user