mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-26 16:20:03 +02:00
solved bug for real: undefined state when stoppping receiver
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@546 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
parent
1eae11a87a
commit
5e7d22357e
@ -6063,30 +6063,36 @@ int* slsDetector::readFrameFromReceiver(char* fName, int &fIndex){
|
|||||||
std::cout<< "slsDetector: Reading frame from receiver "<< thisDetector->dataBytes << " " <<nel <<std::endl;
|
std::cout<< "slsDetector: Reading frame from receiver "<< thisDetector->dataBytes << " " <<nel <<std::endl;
|
||||||
#endif
|
#endif
|
||||||
if (connectData() == OK){
|
if (connectData() == OK){
|
||||||
dataSocket->SendDataOnly(&fnum,sizeof(fnum));
|
if(!thisDetector->stoppedFlag){
|
||||||
dataSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
dataSocket->SendDataOnly(&fnum,sizeof(fnum));
|
||||||
|
dataSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
||||||
|
|
||||||
if (ret==FAIL) {
|
if (ret==FAIL) {
|
||||||
n= dataSocket->ReceiveDataOnly(mess,sizeof(mess));
|
n= dataSocket->ReceiveDataOnly(mess,sizeof(mess));
|
||||||
std::cout<< "Detector returned: " << mess << " " << n << std::endl;
|
std::cout<< "Detector returned: " << mess << " " << n << std::endl;
|
||||||
delete [] retval;
|
|
||||||
dataSocket->Disconnect();
|
|
||||||
return NULL;
|
|
||||||
} else {
|
|
||||||
n=dataSocket->ReceiveDataOnly(fName,MAX_STR_LENGTH);
|
|
||||||
n=dataSocket->ReceiveDataOnly(&fIndex,sizeof(fIndex));
|
|
||||||
n=dataSocket->ReceiveDataOnly(retval,thisDetector->dataBytes);
|
|
||||||
#ifdef VERBOSE
|
|
||||||
std::cout<< "Received "<< n << " data bytes" << std::endl;
|
|
||||||
#endif
|
|
||||||
if (n!=thisDetector->dataBytes) {
|
|
||||||
std::cout<<endl<< "wrong data size received: received " << n << " but expected from receiver " << thisDetector->dataBytes << std::endl;
|
|
||||||
ret=FAIL;
|
|
||||||
delete [] retval;
|
delete [] retval;
|
||||||
dataSocket->Disconnect();
|
dataSocket->Disconnect();
|
||||||
return NULL;
|
return NULL;
|
||||||
|
} else {
|
||||||
|
n=dataSocket->ReceiveDataOnly(fName,MAX_STR_LENGTH);
|
||||||
|
n=dataSocket->ReceiveDataOnly(&fIndex,sizeof(fIndex));
|
||||||
|
n=dataSocket->ReceiveDataOnly(retval,thisDetector->dataBytes);
|
||||||
|
|
||||||
|
#ifdef VERBOSE
|
||||||
|
std::cout<< "Received "<< n << " data bytes" << std::endl;
|
||||||
|
#endif
|
||||||
|
if (n!=thisDetector->dataBytes) {
|
||||||
|
std::cout<<endl<< "wrong data size received: received " << n << " but expected from receiver " << thisDetector->dataBytes << std::endl;
|
||||||
|
ret=FAIL;
|
||||||
|
delete [] retval;
|
||||||
|
dataSocket->Disconnect();
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
cout << "Acquisition stopped" << endl;
|
||||||
|
|
||||||
dataSocket->Disconnect();
|
dataSocket->Disconnect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user