From a7e8ff1c4219243dcf591d76604b07cb0c00054d Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 18 Oct 2016 14:05:05 +0200 Subject: [PATCH] back --- .../multiSlsDetector/multiSlsDetector.cpp | 185 ++++++------------ .../slsDetector/slsDetectorUtils.cpp | 30 +-- .../slsDetector/slsDetectorUtils.h | 4 - 3 files changed, 63 insertions(+), 156 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index c3a94f77c..5023cb175 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5071,13 +5071,12 @@ void multiSlsDetector::startReceivingDataThread(){ context = zmq_ctx_new(); zmqsocket = zmq_socket(context, ZMQ_PULL); //int hwmval = 10; - //zmq_setsockopt(zmqsocket,ZMQ_RCVHWM,&hwmval,sizeof(hwmval)); //set receive HIGH WATER MARK (8-9ms slower) + //zmq_setsockopt(zmqsocket,ZMQ_RCVHWM,&hwmval,sizeof(hwmval)); //set receive HIGH WATER MARK (8-9ms slower//should not drop last packets) zmq_connect(zmqsocket, hostname); cout << "ZMQ Client of " << ithread << " at " << hostname << endl; cprintf(BLUE,"%d Created socket\n",ithread); - /* - zmq_pollitem_t pollitem = {zmqsocket, 0 , ZMQ_POLLIN , 0}; -*/ + + //initializations int numReadoutPerDetector = 1; bool jungfrau = false; @@ -5090,9 +5089,6 @@ void multiSlsDetector::startReceivingDataThread(){ int* image = new int[nel]; int len,idet = 0; singleframe[ithread]=NULL; -///* - int datavalue = 2; - // */ threadStarted = true; //let calling function know thread started and obtained current @@ -5109,146 +5105,87 @@ void multiSlsDetector::startReceivingDataThread(){ //scan header------------------------------------------------------------------- zmq_msg_init (&message); - - /* - //---- with end len = zmq_msg_recv(&message, zmqsocket, 0); if (len == -1) { + cprintf(BG_RED,"Could not read header for socket %d\n",ithread); 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); - //received something, get out - //if(pollitem.revents & ZMQ_POLLIN){ - // pollitem.revents = 0; - // break; - //}uncomment next recv - - //received nothing - else if (receiverStoppedFlag){ - //one more chance if receiver stopped - datavalue--; - - if(!datavalue){ + // error if you print it + // cout << ithread << " header len:"<numberOfDetectors; idet++) { if (detectors[idet]) { @@ -5651,10 +5588,10 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ ret=-1; } } - ///* + /* if(enable == -1) return threadStarted; - // */ + */ return (threadStarted & ret); } diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 9011c300a..8bb16fe0e 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -58,9 +58,6 @@ int slsDetectorUtils::acquire(int delflag){ if(!receiver){ setDetectorIndex(-1); }else{ - ///* - receiverStoppedFlag = 0; - //*/ //put receiver read frequency to random if no gui int ret = setReadReceiverFrequency(0); if(ret>0 && (dataReady == NULL)){ @@ -151,27 +148,16 @@ int slsDetectorUtils::acquire(int delflag){ if(receiver){ if(getReceiverStatus()!=IDLE) stopReceiver(); - if(setReceiverOnline()==OFFLINE_FLAG){ + if(setReceiverOnline()==OFFLINE_FLAG) *stoppedFlag=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; - //*/ } - if(setReceiverOnline()==OFFLINE_FLAG){ + if(setReceiverOnline()==OFFLINE_FLAG) *stoppedFlag=1; - ///* - receiverStoppedFlag = 1; - //*/ - } } @@ -304,9 +290,6 @@ int slsDetectorUtils::acquire(int delflag){ if(setReceiverOnline()==OFFLINE_FLAG){ stopReceiver(); *stoppedFlag=1; - ///* - receiverStoppedFlag = 1; - //*/ pthread_mutex_unlock(&mg); break; } @@ -314,9 +297,6 @@ int slsDetectorUtils::acquire(int delflag){ if(startReceiver() == FAIL) { stopReceiver(); *stoppedFlag=1; - ///* - receiverStoppedFlag = 1; - //*/ pthread_mutex_unlock(&mg); break; } @@ -363,9 +343,6 @@ int slsDetectorUtils::acquire(int delflag){ pthread_mutex_lock(&mg); //offline if(setReceiverOnline()==OFFLINE_FLAG){ - ///* - receiverStoppedFlag = 1; - //*/ if ((getDetectorsType()==GOTTHARD) || (getDetectorsType()==MOENCH) || (getDetectorsType()==JUNGFRAU) ){ if((*correctionMask)&(1<