diff --git a/ADHamaApp/src/hama.cpp b/ADHamaApp/src/hama.cpp index bb07622..e5c3c92 100644 --- a/ADHamaApp/src/hama.cpp +++ b/ADHamaApp/src/hama.cpp @@ -52,20 +52,13 @@ Hama::Hama(const char* portName, int cameraId, int maxBuffers, size_t maxMemory, stopThread = 0; /* Create the epicsEvents for signaling to task when acquisition starts and stops */ - startAcquireEventId_ = epicsEventCreate(epicsEventEmpty); - if (!startAcquireEventId_) { + startEvent_ = epicsEventCreate(epicsEventEmpty); + if (!startEvent_) { printf("%s:%s epicsEventCreate failure for acquire start event\n", driverName, functionName); return; } - stopAcquireEventId_ = epicsEventCreate(epicsEventEmpty); - if (!stopAcquireEventId_) { - printf("%s:%s epicsEventCreate failure for acquire stop event\n", - driverName, functionName); - return; - } - //General createParam( HamaName, asynParamOctet, &hHamaName); @@ -504,7 +497,7 @@ epicsTimeStamp imageStamp; puts("Waiting start"); unlock(); - status = epicsEventWait(startAcquireEventId_); + status = epicsEventWait(startEvent_); puts("Starting request received"); lock(); @@ -515,7 +508,6 @@ epicsTimeStamp imageStamp; status = startAcquire(); printf("Status: %d\n", status); if (status != asynSuccess) { - epicsEventSignal(this->stopAcquireEventId_); acquireStatusError = 1; epicsThreadSleep(.1); } @@ -525,16 +517,6 @@ epicsTimeStamp imageStamp; epicsTimeGetCurrent(&startTime); prevAcquisitionCount = 0; } - } - - eventStatus = epicsEventWaitWithTimeout(this->stopAcquireEventId_, 0); - /* Stop event detected */ - if (eventStatus == epicsEventWaitOK) { - setShutter(0); - setIntegerParam(ADAcquire, 0); - acquire=0; - callParamCallbacks(); - continue; } /* Added this delay for the thread not to hog the processor. No need to run on full speed. */ @@ -660,12 +642,11 @@ asynStatus Hama::writeInt32(asynUser *pasynUser, epicsInt32 value){ if (value) { /* Send an event to wake up the acq task.*/ puts("Requested acquire start event. Sending acquire start event signal to thread"); - epicsEventSignal(this->startAcquireEventId_); + epicsEventSignal(this->startEvent_); } else if (!value && (adstatus == ADStatusAcquire || adstatus == ADStatusError)) { /* This was a command to stop acquisition */ - puts("Requested acquire stop event. Sending acquire stop event signal to thread"); - epicsEventSignal(this->stopAcquireEventId_); + setShutter(0); stopAcquire(); } diff --git a/ADHamaApp/src/hama.h b/ADHamaApp/src/hama.h index b403794..a336d4c 100644 --- a/ADHamaApp/src/hama.h +++ b/ADHamaApp/src/hama.h @@ -264,8 +264,7 @@ private: int m_id; int stopThread; - epicsEventId startAcquireEventId_; - epicsEventId stopAcquireEventId_; + epicsEventId startEvent_; asynStatus startAcquire(void); asynStatus stopAcquire(void);