thread starting if rxr closed and others

This commit is contained in:
Dhanya Maliakal 2016-10-06 15:50:02 +02:00
parent c5e7d44b15
commit ed8a779f7f
2 changed files with 23 additions and 18 deletions

View File

@ -5536,12 +5536,13 @@ int multiSlsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){
int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){
if(enable >= 0){ if(enable >= 0){
//destroy data threads //destroy data threads
if(threadStarted) if(threadStarted)
createReceivingDataThreads(true); createReceivingDataThreads(true);
//create data threads if enable is 1 //create data threads
if(enable == 1) if(enable > 0){
if(createReceivingDataThreads() == FAIL){ if(createReceivingDataThreads() == FAIL){
std::cout << "Could not create data threads in client. Aborting creating data threads in receiver" << std::endl; std::cout << "Could not create data threads in client. Aborting creating data threads in receiver" << std::endl;
//only for the first det as theres no general one //only for the first det as theres no general one
@ -5549,24 +5550,25 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){
detectors[0]->setErrorMask((detectors[0]->getErrorMask())|(DATA_STREAMING)); detectors[0]->setErrorMask((detectors[0]->getErrorMask())|(DATA_STREAMING));
return -1; return -1;
} }
}
int ret=-100, ret1;
for (int idet=0; idet<thisMultiDetector->numberOfDetectors; idet++) {
if (detectors[idet]) {
ret1=detectors[idet]->enableDataStreamingFromReceiver(enable);
if(detectors[idet]->getErrorMask())
setErrorMask(getErrorMask()|(1<<idet));
if (ret==-100)
ret=ret1;
else if (ret!=ret1)
ret=-1;
} }
int ret=-100, ret1;
for (int idet=0; idet<thisMultiDetector->numberOfDetectors; idet++) {
if (detectors[idet]) {
ret1=detectors[idet]->enableDataStreamingFromReceiver(enable);
if(detectors[idet]->getErrorMask())
setErrorMask(getErrorMask()|(1<<idet));
if (ret==-100)
ret=ret1;
else if (ret!=ret1)
ret=-1;
}
}
} }
cprintf(BLUE,"threadStarted:%d\n",threadStarted);
return threadStarted;
return ret;
} }
int multiSlsDetector::enableReceiverCompression(int i){ int multiSlsDetector::enableReceiverCompression(int i){

View File

@ -5555,6 +5555,7 @@ char* slsDetector::setReceiver(string receiverIP){
std::cout << "frame number:" << thisDetector->timerValue[FRAME_NUMBER] << endl; std::cout << "frame number:" << thisDetector->timerValue[FRAME_NUMBER] << endl;
std::cout << "dynamic range:" << thisDetector->dynamicRange << endl << endl; std::cout << "dynamic range:" << thisDetector->dynamicRange << endl << endl;
std::cout << "10GbE:" << thisDetector->tenGigaEnable << endl << endl; std::cout << "10GbE:" << thisDetector->tenGigaEnable << endl << endl;
std::cout << "dataStreaming:" << enableDataStreamingFromReceiver(-1) << endl << endl;
/** enable compresison, */ /** enable compresison, */
#endif #endif
if(setDetectorType()!= GENERIC){ if(setDetectorType()!= GENERIC){
@ -5579,6 +5580,8 @@ char* slsDetector::setReceiver(string receiverIP){
setTimer(FRAME_NUMBER,thisDetector->timerValue[FRAME_NUMBER]); setTimer(FRAME_NUMBER,thisDetector->timerValue[FRAME_NUMBER]);
setDynamicRange(thisDetector->dynamicRange); setDynamicRange(thisDetector->dynamicRange);
activate(-1); activate(-1);
std::cout << "***********************************dataStreaming:" << parentDet->enableDataStreamingFromReceiver(-1) << endl << endl;
parentDet->enableDataStreamingFromReceiver(parentDet->enableDataStreamingFromReceiver(-1));
//set scan tag //set scan tag
setUDPConnection(); setUDPConnection();
if(thisDetector->myDetectorType == EIGER) if(thisDetector->myDetectorType == EIGER)