done for eiger, some checks for frameindex=-1,socket closing earlier than last socket etc

This commit is contained in:
Dhanya Maliakal 2016-09-20 15:11:39 +02:00
parent d751c626b3
commit a1df8bdc15
8 changed files with 27 additions and 13 deletions

View File

@ -5046,7 +5046,9 @@ void multiSlsDetector::startReceivingData(){
cout << "Subframe index: " << currentSubFrameIndex << endl;
cout << "File name: " << currentFileName << endl;
#endif
if(currentFrameIndex ==-1) cprintf(RED,"multi frame index -1!!\n");
}
// close the message
zmq_msg_close(&message);
@ -5058,9 +5060,9 @@ void multiSlsDetector::startReceivingData(){
//end of socket ("end")
if (len < 1024*256 ) {
if(!len) cprintf(RED,"Received no data in socket for %d\n", ithread);
#ifdef VERYVERBOSE
//#ifdef VERYVERBOSE
cprintf(RED,"End of socket for %d\n", ithread);
#endif
//#endif
zmq_msg_close(&message);
singleframe[ithread] = NULL;
pthread_mutex_lock(&ms);
@ -5173,6 +5175,7 @@ void multiSlsDetector::readFrameFromReceiver(){
//get each frame
for(int ireadout=0; ireadout<numReadouts; ++ireadout){
//cprintf(BLUE,"multi checking %d mask:0x%x\n",ireadout,receivingDataThreadMask);
idet = ireadout/numReadoutPerDetector;
if((1 << ireadout) & receivingDataThreadMask){ //if running
@ -5240,7 +5243,7 @@ void multiSlsDetector::readFrameFromReceiver(){
setCurrentProgress(currentAcquisitionIndex+1);
}
cout << "All zmq sockets closed" << endl;
//free resources
for(int i = 0; i < numReadouts; ++i){
@ -5474,12 +5477,12 @@ int multiSlsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){
int multiSlsDetector::setDataStreamingFromReceiver(int enable){
int multiSlsDetector::enableDataStreamingFromReceiver(int enable){
int ret=-100, ret1;
for (int idet=0; idet<thisMultiDetector->numberOfDetectors; idet++) {
if (detectors[idet]) {
ret1=detectors[idet]->setDataStreamingFromReceiver(enable);
ret1=detectors[idet]->enableDataStreamingFromReceiver(enable);
if(detectors[idet]->getErrorMask())
setErrorMask(getErrorMask()|(1<<idet));
if (ret==-100)

View File

@ -1255,7 +1255,7 @@ class multiSlsDetector : public slsDetectorUtils {
* @param enable 0 to disable 1 to enable -1 to only get the value
* @returns data streaming
*/
int setDataStreamingFromReceiver(int enable=-1);
int enableDataStreamingFromReceiver(int enable=-1);
/** updates the multidetector offsets */
void updateOffsets();

View File

@ -7462,7 +7462,7 @@ int slsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){
int slsDetector::setDataStreamingFromReceiver(int enable){
int slsDetector::enableDataStreamingFromReceiver(int enable){
int fnum=F_STREAM_DATA_FROM_RECEIVER;
int ret = FAIL;
int retval=-1;

View File

@ -1684,7 +1684,7 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
* @param enable 0 to disable 1 to enable -1 to only get the value
* @returns data streaming
*/
int setDataStreamingFromReceiver(int enable=-1);
int enableDataStreamingFromReceiver(int enable=-1);
/** enable/disable or get data compression in receiver
* @param i is -1 to get, 0 to disable and 1 to enable

View File

@ -240,7 +240,9 @@ int slsDetectorUsers::setReceiverMode(int n){
return myDetector->setReadReceiverFrequency(1,n);
}
int slsDetectorUsers::enableDataStreamingFromReceiver(int i){
return myDetector->enableDataStreamingFromReceiver(i);
}
int64_t slsDetectorUsers::getModuleFirmwareVersion(){

View File

@ -450,6 +450,15 @@ class slsDetectorUsers
virtual void finalizeDataset(double *a, double *v, double *e, int &np);
/**
Enable data streaming from receiver (zmq)
\param i 1 to set, 0 to reset and -1 to get
\returns data streaming enable
*/
int enableDataStreamingFromReceiver(int i=-1);
/**
get get Module Firmware Version
\returns id

View File

@ -66,16 +66,16 @@ int slsDetectorUtils::acquire(int delflag){
}
//start data streaming threads in receiver if enabled
ret = setDataStreamingFromReceiver(-1);
ret = enableDataStreamingFromReceiver(-1);
if(dataReady == NULL){
if(ret){
cout << "Disabling Data Streaming from Receiver" << endl;
setDataStreamingFromReceiver(0); //no call back but streaming enabled, then dont stream.
enableDataStreamingFromReceiver(0); //no call back but streaming enabled, then dont stream.
}
}else{
if(*threadedProcessing && (!ret)){
cout << "Enabling Data Streaming from Receiver" << endl;
setDataStreamingFromReceiver(1); //call back exists, threaded but streaming disabled, then stream.
enableDataStreamingFromReceiver(1); //call back exists, threaded but streaming disabled, then stream.
}
}

View File

@ -700,7 +700,7 @@ virtual int setReadReceiverFrequency(int getFromReceiver, int freq=-1)=0;
* @param enable 0 to disable 1 to enable -1 to only get the value
* @returns data streaming
*/
virtual int setDataStreamingFromReceiver(int enable=-1)=0;
virtual int enableDataStreamingFromReceiver(int enable=-1)=0;
/** enable/disable or get data compression in receiver