diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 980c317f4..1e5a87d9d 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -7525,9 +7525,12 @@ int slsDetector::startReceiver(){ setErrorMask((getErrorMask())|(COULDNOT_START_RECEIVER)); } } - //let detector prepare anyway even if receiver didnt work - if((thisDetector->myDetectorType != JUNGFRAU)) - ret=detectorSendToReceiver(true); + //let detector prepare anyway even if receiver didnt work (for those not using the receiver) + if((thisDetector->myDetectorType != JUNGFRAU)) { + int ret1 = detectorSendToReceiver(true); + if (ret != FAIL) + ret = ret1; + } return ret; } diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 0e6d5e763..ec3d1dae5 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -226,9 +226,6 @@ int slsDetectorUtils::acquire(int delflag){ for (int ip=0; ip0) { @@ -297,12 +294,17 @@ int slsDetectorUtils::acquire(int delflag){ setFileName(fileIO::getFileName()); //start receiver if(startReceiver() == FAIL) { + cout << "Start receiver failed " << endl; stopReceiver(); *stoppedFlag=1; pthread_mutex_unlock(&mg); break; } pthread_mutex_unlock(&mg); + + //let processing thread listen to these packets + sem_post(&sem_newRTAcquisition); + } #ifdef VERBOSE cout << "Acquiring " << endl;