some changes for quitting gui and continuing with acquire from command line

This commit is contained in:
Dhanya Maliakal 2016-10-07 11:40:51 +02:00
parent dc16d52d49
commit 1545d37f36
2 changed files with 39 additions and 29 deletions

View File

@ -5058,7 +5058,7 @@ void multiSlsDetector::startReceivingDataThread(){
void *context;
void *zmqsocket;
context = zmq_ctx_new();
zmqsocket = zmq_socket(context, ZMQ_SUB);
zmqsocket = zmq_socket(context, ZMQ_PULL);
zmq_connect(zmqsocket, hostname);
cout << "ZMQ Client of " << ithread << " at " << hostname << endl;
cprintf(BLUE,"%d Created socket\n",ithread);
@ -5537,39 +5537,41 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){
if(enable >= 0){
//destroy data threads
if(threadStarted)
createReceivingDataThreads(true);
if(threadStarted != enable){
//destroy data threads
if(threadStarted)
createReceivingDataThreads(true);
//create data threads
if(enable > 0){
if(createReceivingDataThreads() == FAIL){
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
setErrorMask(getErrorMask()|(1<<0));
detectors[0]->setErrorMask((detectors[0]->getErrorMask())|(DATA_STREAMING));
return -1;
//create data threads
if(enable > 0){
if(createReceivingDataThreads() == FAIL){
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
setErrorMask(getErrorMask()|(1<<0));
detectors[0]->setErrorMask((detectors[0]->getErrorMask())|(DATA_STREAMING));
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;
}
}
if (ret < 0)
return -1;
if(enable == -1)
return threadStarted;
else
return (ret & threadStarted);
return (threadStarted & ret);
}
int multiSlsDetector::enableReceiverCompression(int i){

View File

@ -67,17 +67,25 @@ int slsDetectorUtils::acquire(int delflag){
//start data streaming threads in receiver if enabled
ret = enableDataStreamingFromReceiver(-1);
if(dataReady == NULL){
cout<<"getting datastream:"<<ret<<endl;
cout<<"result of enabledatastream:"<<enableDataStreamingFromReceiver(ret)<<endl;
/*
ret = enableDataStreamingFromReceiver(-1);
cout<<"ret of datastream:"<<ret<<endl;
if(dataReady == NULL){cout<<"dataready is null"<<endl;
if(ret){
cout << "Disabling Data Streaming from Receiver" << endl;
enableDataStreamingFromReceiver(0); //no call back but streaming enabled, then dont stream.
}
}else{
if(*threadedProcessing && (!ret || ret == -1)){
}else{cout<<"dataeady is not nul"<<endl;
if(*threadedProcessing && (ret <= 0)){
cout << "Enabling Data Streaming from Receiver" << endl;
enableDataStreamingFromReceiver(1); //call back exists, threaded but streaming disabled, then stream.
}
}
*/
}