diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 80a8bacc2..f17d733b4 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5090,7 +5090,7 @@ void multiSlsDetector::startReceivingDataThread(){ int* image = new int[nel]; int len,idet = 0; singleframe[ithread]=NULL; - int datavalue = 2; +/* int datavalue = 2;*/ threadStarted = true; //let calling function know thread started and obtained current @@ -5107,19 +5107,30 @@ void multiSlsDetector::startReceivingDataThread(){ //scan header------------------------------------------------------------------- zmq_msg_init (&message); + + //---- with end + len = zmq_msg_recv(&message, zmqsocket, 0); + if (len == -1) { + zmq_msg_close(&message); + cprintf(RED, "%d message null\n",ithread); + continue; + } + //---- + +/* while(1){ len = zmq_msg_recv(&message, zmqsocket, ZMQ_DONTWAIT); if(len>0) break;//also comment out the next recv -/* - zmq_poll(&pollitem, 1, 0); + + //zmq_poll(&pollitem, 1, 0); //received something, get out - if(pollitem.revents & ZMQ_POLLIN){ - pollitem.revents = 0; - break; - } -*/ + //if(pollitem.revents & ZMQ_POLLIN){ + // pollitem.revents = 0; + // break; + //}uncomment next recv + //received nothing else if (receiverStoppedFlag){ //one more chance if receiver stopped @@ -5139,14 +5150,16 @@ void multiSlsDetector::startReceivingDataThread(){ usleep(4000); } - if(datavalue){ + */ + + /*if(datavalue){ //len = zmq_msg_recv(&message, zmqsocket, 0); if (len == -1) { zmq_msg_close(&message); cprintf(RED, "%d message null\n",ithread); continue; } - +*/ // error if you print it // cout << ithread << " header len:"<0 && (dataReady == NULL)){ @@ -151,18 +151,18 @@ int slsDetectorUtils::acquire(int delflag){ stopReceiver(); if(setReceiverOnline()==OFFLINE_FLAG){ *stoppedFlag=1; - receiverStoppedFlag = 1; + /*receiverStoppedFlag = 1;*/ } //multi detectors shouldnt have different receiver read frequencies enabled/disabled if(setReadReceiverFrequency(0) < 0){ std::cout << "Error: The receiver read frequency is invalid:" << setReadReceiverFrequency(0) << std::endl; *stoppedFlag=1; - receiverStoppedFlag = 1; + /*receiverStoppedFlag = 1;*/ } if(setReceiverOnline()==OFFLINE_FLAG){ *stoppedFlag=1; - receiverStoppedFlag = 1; + /*receiverStoppedFlag = 1;*/ } } @@ -296,7 +296,7 @@ int slsDetectorUtils::acquire(int delflag){ if(setReceiverOnline()==OFFLINE_FLAG){ stopReceiver(); *stoppedFlag=1; - receiverStoppedFlag = 1; + /*receiverStoppedFlag = 1;*/ pthread_mutex_unlock(&mg); break; } @@ -304,7 +304,7 @@ int slsDetectorUtils::acquire(int delflag){ if(startReceiver() == FAIL) { stopReceiver(); *stoppedFlag=1; - receiverStoppedFlag = 1; + /*receiverStoppedFlag = 1;*/ pthread_mutex_unlock(&mg); break; } @@ -351,7 +351,7 @@ int slsDetectorUtils::acquire(int delflag){ pthread_mutex_lock(&mg); //offline if(setReceiverOnline()==OFFLINE_FLAG){ - receiverStoppedFlag = 1; + /* receiverStoppedFlag = 1;*/ if ((getDetectorsType()==GOTTHARD) || (getDetectorsType()==MOENCH) || (getDetectorsType()==JUNGFRAU) ){ if((*correctionMask)&(1<