diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.c b/slsDetectorSoftware/eigerDetectorServer/FebControl.c index cabbb5296..a5dd9ae83 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.c +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.c @@ -1679,7 +1679,10 @@ int Feb_Control_PrintCorrectedValues(){ int Feb_Control_GetLeftFPGATemp(){ unsigned int temperature=0; - Feb_Interface_ReadRegister(Module_GetTopLeftAddress (&modules[1]),FEB_REG_STATUS, &temperature); + if(Module_TopAddressIsValid(&modules[1])) + Feb_Interface_ReadRegister(Module_GetTopLeftAddress (&modules[1]),FEB_REG_STATUS, &temperature); + else + Feb_Interface_ReadRegister(Module_GetBottomLeftAddress (&modules[1]),FEB_REG_STATUS, &temperature); temperature = temperature >> 16; //division done in client to send int over network return (int)temperature; @@ -1687,7 +1690,10 @@ int Feb_Control_GetLeftFPGATemp(){ int Feb_Control_GetRightFPGATemp(){ unsigned int temperature=0; - Feb_Interface_ReadRegister(Module_GetTopRightAddress (&modules[1]),FEB_REG_STATUS, &temperature); + if(Module_TopAddressIsValid(&modules[1])) + Feb_Interface_ReadRegister(Module_GetTopRightAddress (&modules[1]),FEB_REG_STATUS, &temperature); + else + Feb_Interface_ReadRegister(Module_GetBottomRightAddress (&modules[1]),FEB_REG_STATUS, &temperature); temperature = temperature >> 16; //division done in client to send int over network return (int)temperature; diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 similarity index 84% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 index 038ac981d..75724eb5e 100755 Binary files a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer and b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 differ diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.1 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.1 new file mode 100755 index 000000000..0be5f404a Binary files /dev/null and b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.1 differ diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.0 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.0 new file mode 100755 index 000000000..f6dd95b75 Binary files /dev/null and b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.0 differ diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 new file mode 100755 index 000000000..4519f8f12 Binary files /dev/null and b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 differ diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index 7677e79aa..104007fb7 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -858,25 +858,22 @@ enum runStatus getRunStatus(){ -char *readFrame(int *ret, char *mess){ - //if(master){ - if(!Feb_Control_WaitForFinishedFlag(5000)) - cprintf(RED,"Error: Waiting for finished flag\n"); - cprintf(GREEN,"Acquisition finished***\n"); +void readFrame(int *ret, char *mess){ + if(!Feb_Control_WaitForFinishedFlag(5000)) + cprintf(RED,"Error: Waiting for finished flag\n"); + cprintf(GREEN,"Acquisition finished***\n"); - if(eiger_storeinmem){ - printf("requesting images after storing in memory\n"); - if(startReadOut() == FAIL){ - cprintf(RED, "Could not read out images\n"); - *ret = (int)FAIL; - return NULL; - } + if(eiger_storeinmem){ + printf("requesting images after storing in memory\n"); + if(startReadOut() == FAIL){ + strcpy(mess,"Could not execute read image requests\n"); + *ret = (int)FAIL; + return; } - //usleep(1000000); - printf("*****Done Waiting...\n"); - //} - *ret = (int)FINISHED; - return NULL; + } + printf("*****Done Waiting...\n"); + *ret = (int)FINISHED; + strcpy(mess,"acquisition successfully finished\n"); } diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h index 5e821bd73..296e51728 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorServer_defs.h @@ -16,7 +16,7 @@ #define FEB_PORT 43210 #define BEB_PORT 43212 -#define REQUIRED_FIRMWARE_VERSION 14 +#define REQUIRED_FIRMWARE_VERSION 16 #define FIRMWAREREV 0xcaba //temporary should be in firmware diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 76cf9850d..81a5ac601 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -1759,7 +1759,7 @@ int64_t multiSlsDetector::setTimer(timerIndex index, int64_t t){ if (ret1==-100) ret1=ret; else if (ret!=ret1) - ret1=FAIL; + ret1=-1; } } @@ -4279,7 +4279,7 @@ int multiSlsDetector::readConfigurationFile(string const fname){ multiSlsDetectorClient *cmd; // char ext[100]; - + setAcquiringFlag(false); string ans; string str; @@ -5167,7 +5167,7 @@ void multiSlsDetector::startReceivingDataThread(){ //end of socket ("end") if (len < 1024*256 ) { if(len == 3){ - //cprintf(RED,"Received end of acquisition for socket %d\n", ithread); + //cprintf(RED,"%d Received end of acquisition\n", ithread); singleframe[ithread] = NULL; //break; }else{ @@ -5253,10 +5253,9 @@ void multiSlsDetector::readFrameFromReceiver(){ dataThreadMask|=(1<numberOfDetectors); //reset frame memory + //memset(((char*)multiframe),0xFF,slsdatabytes*thisMultiDetector->numberOfDetectors); //reset frame memory //post all of them to start for(int ireadout=0; ireadoutdynamicRange; - if (dr==24) + if ((thisDetector->myDetectorType==MYTHEN) && (dr==24)) dr=32; thisDetector->dataBytes=thisDetector->nMod[X]*thisDetector->nMod[Y]*thisDetector->nChips*thisDetector->nChans*dr/8; @@ -4539,7 +4539,7 @@ int slsDetector::setDynamicRange(int n){ #ifdef VERBOSE std::cout<< "Setting dynamic range to "<< n << std::endl; #endif - if (n==24) + if ((thisDetector->myDetectorType == MYTHEN) &&(n==24)) n=32; diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 8bb16fe0e..4d0d6b8b5 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -448,7 +448,6 @@ int slsDetectorUtils::acquire(int delflag){ setFileIndex(fileIO::getFileIndex()); pthread_mutex_unlock(&mg); - if (measurement_finished){ pthread_mutex_lock(&mg); measurement_finished(im,*fileIndex,measFinished_p); diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 7e158371f..cf3bbe0a2 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -497,6 +497,9 @@ void* postProcessing::processData(int delflag) { cout<