From 753ed306d913e2052376155c44f47640128588d3 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 10 Nov 2016 08:41:46 +0100 Subject: [PATCH 01/22] changes to include eiger in gui --- .../multiSlsDetector/multiSlsDetector.cpp | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 317e0fe6d..85ed9aee1 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5102,9 +5102,27 @@ void multiSlsDetector::startReceivingDataThread(){ int ithread = currentThreadIndex; //set current thread value index + //initializations + int numReadoutPerDetector = 1; + bool jungfrau = false; + int expectedsize = 1024*256;/**shouldnt work for other bit modes or anythign*/ + if(getDetectorsType() == EIGER){ + numReadoutPerDetector = 2; + expectedsize = 1024*256; + }else if(getDetectorsType() == JUNGFRAU){ + jungfrau = true; + expectedsize = 8192*128; + } + int singleDatabytes = detectors[ithread/numReadoutPerDetector]->getDataBytes(); + int nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); + int* image = new int[nel]; + int len,idet = 0; + singleframe[ithread]=NULL; + + char hostname[100] = "tcp://"; char rx_hostname[100]; - strcpy(rx_hostname, detectors[ithread]->getReceiver()); + strcpy(rx_hostname, detectors[ithread/numReadoutPerDetector]->getReceiver()); cout<<"rx_hostname:"<getDataBytes(); - int nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); - int* image = new int[nel]; - int len,idet = 0; - singleframe[ithread]=NULL; + threadStarted = true; //let calling function know thread started and obtained current From 44d6b0ffc0d9c802fd60021b9d3d8ab6a7c62c57 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Thu, 10 Nov 2016 14:37:18 +0100 Subject: [PATCH 02/22] fixed time interval in receiveR --- slsDetectorSoftware/commonFiles/error_defs.h | 4 + .../multiSlsDetector/multiSlsDetector.cpp | 20 ++ .../multiSlsDetector/multiSlsDetector.h | 8 + .../slsDetector/slsDetector.cpp | 171 ++++++++++++------ slsDetectorSoftware/slsDetector/slsDetector.h | 8 + 5 files changed, 153 insertions(+), 58 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index c010f26ba..199478114 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -72,6 +72,7 @@ using namespace std; #define DATA_STREAMING 0x0000000008000000ULL #define RESET_ERROR 0x0000000010000000ULL #define POWER_CHIP 0x0000000020000000ULL +#define RECEIVER_READ_TIMER 0x0000000040000000ULL // 0x00000000FFFFFFFFULL /** @short class returning all error messages for error mask */ class errorDefs { @@ -225,6 +226,9 @@ public: if(slsErrorMask&POWER_CHIP) retval.append("Could not power on/off/get the chip\n"); + if(slsErrorMask&RECEIVER_READ_TIMER) + retval.append("Could not set receiver read timer\n"); + //------------------------------------------------------ length of message diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 85ed9aee1..36e8762e7 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5619,6 +5619,26 @@ int multiSlsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){ } + +int multiSlsDetector::setReceiverReadTimer(int time_in_ms){ + int ret=-100, ret1; + + for (int idet=0; idetnumberOfDetectors; idet++) { + if (detectors[idet]) { + ret1=detectors[idet]->setReceiverReadTimer(time_in_ms); + if(detectors[idet]->getErrorMask()) + setErrorMask(getErrorMask()|(1<sendInt(fnum,retval,retval); - disconnectData(); + disconnectData(); + } if(ret==FAIL) setErrorMask((getErrorMask())|(RECEIVER_ACTIVATE)); } @@ -1628,9 +1629,10 @@ int slsDetector::setDetectorType(detectorType const type){ #ifdef VERBOSE std::cout << "Sending detector type to Receiver " << (int)thisDetector->myDetectorType << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ retval=thisReceiver->sendInt(fnum2,arg,(int)thisDetector->myDetectorType); - disconnectData(); + disconnectData(); + } if(retval==FAIL){ cout << "ERROR: Could not send detector type to receiver" << endl; setErrorMask((getErrorMask())|(RECEIVER_DET_HOSTTYPE_NOT_SET)); @@ -1996,9 +1998,10 @@ int64_t slsDetector::getId( idMode mode, int imod){ retval=(retval<<32) | SVNDATELIB; } else if (mode==RECEIVER_VERSION) { if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { - if (connectData() == OK) - ret=thisReceiver->getInt(fnum2,retval); - disconnectData(); + if (connectData() == OK){ + ret=thisReceiver->getInt(fnum2,retval); + disconnectData(); + } if(ret==FORCE_UPDATE) ret=updateReceiver(); } @@ -4088,9 +4091,10 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ } char mess[MAX_STR_LENGTH]=""; - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendIntArray(fnum2,retval,args,mess); - disconnectData(); + disconnectData(); + } if((args[1] != retval)|| (ret==FAIL)){ ret = FAIL; if(index==FRAME_PERIOD){ @@ -4629,9 +4633,10 @@ int slsDetector::setDynamicRange(int n){ #ifdef VERBOSE std::cout << "Sending/Getting dynamic range to/from receiver " << n << std::endl; #endif - if (connectData() == OK) - ret=thisReceiver->sendInt(fnum2,retval1,n); - disconnectData(); + if (connectData() == OK){ + ret=thisReceiver->sendInt(fnum2,retval1,n); + disconnectData(); + } if ((ret==FAIL) || (retval1 != retval)){ ret = FAIL; cout << "ERROR:Dynamic range in receiver set incorrectly to " << retval1 << " instead of " << retval << endl; @@ -5763,9 +5768,10 @@ int slsDetector::setUDPConnection(){ #ifdef VERBOSE std::cout << "Setting up UDP Connection for Receiver " << args[0] << "\t" << args[1] << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendUDPDetails(fnum,retval,args); - disconnectData(); + disconnectData(); + } if(ret!=FAIL){ strcpy(thisDetector->receiverUDPMAC,retval); @@ -5928,9 +5934,10 @@ int slsDetector::configureMAC(){ #ifdef VERBOSE std::cout << "Sending adc val to receiver " << retval << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendInt(fnum2,retval,retval); - disconnectData(); + disconnectData(); + } if(ret==FAIL) setErrorMask((getErrorMask())|(COULD_NOT_CONFIGURE_MAC)); } @@ -7152,9 +7159,10 @@ string slsDetector::setFilePath(string s) { #ifdef VERBOSE std::cout << "Sending file path to receiver " << arg << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendString(fnum,retval,arg); - disconnectData(); + disconnectData(); + } if(ret!=FAIL){ pthread_mutex_lock(&ms); fileIO::setFilePath(string(retval)); @@ -7200,9 +7208,10 @@ string slsDetector::setFileName(string s) { #ifdef VERBOSE std::cout << "Sending file name to receiver " << arg << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendString(fnum,retval,arg); - disconnectData(); + disconnectData(); + } if(ret!=FAIL){ #ifdef VERBOSE std::cout << "Complete file prefix from receiver: " << retval << std::endl; @@ -7247,9 +7256,10 @@ int slsDetector::setFileIndex(int i) { #ifdef VERBOSE std::cout << "Sending file index to receiver " << arg << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendInt(fnum,retval,arg); - disconnectData(); + disconnectData(); + } if(ret!=FAIL){ pthread_mutex_lock(&ms); fileIO::setFileIndex(retval); @@ -7274,9 +7284,10 @@ int slsDetector::startReceiver(){ #ifdef VERBOSE std::cout << "Starting Receiver " << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->executeFunction(fnum,mess); - disconnectData(); + disconnectData(); + } if(ret==FORCE_UPDATE) ret=updateReceiver(); else if (ret == FAIL){ @@ -7310,9 +7321,10 @@ int slsDetector::stopReceiver(){ #ifdef VERBOSE std::cout << "Stopping Receiver " << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->executeFunction(fnum,mess); - disconnectData(); + disconnectData(); + } if(ret==FORCE_UPDATE) ret=updateReceiver(); else if (ret == FAIL) @@ -7335,9 +7347,10 @@ slsDetectorDefs::runStatus slsDetector::startReceiverReadout(){ #ifdef VERBOSE std::cout << "Starting Receiver Readout" << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->getInt(fnum,retval); - disconnectData(); + disconnectData(); + } if(retval!=-1) s=(runStatus)retval; if(ret==FORCE_UPDATE) @@ -7392,9 +7405,10 @@ slsDetectorDefs::runStatus slsDetector::getReceiverStatus(){ #ifdef VERBOSE std::cout << "Getting Receiver Status" << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->getInt(fnum,retval); - disconnectData(); + disconnectData(); + } if(retval!=-1) s=(runStatus)retval; if(ret==FORCE_UPDATE) @@ -7416,9 +7430,10 @@ int slsDetector::getFramesCaughtByReceiver(){ #ifdef VERBOSE std::cout << "Getting Frames Caught by Receiver " << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->getInt(fnum,retval); - disconnectData(); + disconnectData(); + } if(ret==FORCE_UPDATE) ret=updateReceiver(); } @@ -7437,9 +7452,10 @@ int slsDetector::getReceiverCurrentFrameIndex(){ #ifdef VERBOSE std::cout << "Getting Current Frame Index of Receiver " << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->getInt(fnum,retval); - disconnectData(); + disconnectData(); + } if(ret==FORCE_UPDATE) ret=updateReceiver(); } @@ -7459,9 +7475,10 @@ int slsDetector::resetFramesCaught(){ #ifdef VERBOSE std::cout << "Reset Frames Caught by Receiver" << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->executeFunction(fnum,mess); - disconnectData(); + disconnectData(); + } if(ret==FORCE_UPDATE) ret=updateReceiver(); } @@ -7485,9 +7502,10 @@ int slsDetector::lockReceiver(int lock){ #ifdef VERBOSE std::cout << "Locking or Unlocking Receiver " << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendInt(fnum,retval,arg); - disconnectData(); + disconnectData(); + } if(ret==FORCE_UPDATE) updateReceiver(); } @@ -7509,9 +7527,10 @@ string slsDetector::getReceiverLastClientIP(){ #ifdef VERBOSE std::cout << "Geting Last Client IP connected to Receiver " << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->getLastClientIP(fnum,retval); - disconnectData(); + disconnectData(); + } if(ret==FORCE_UPDATE) updateReceiver(); } @@ -7629,9 +7648,10 @@ int slsDetector::enableWriteToFile(int enable){ #ifdef VERBOSE std::cout << "Sending enable file write to receiver " << arg << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendInt(fnum,retval,arg); - disconnectData(); + disconnectData(); + } if(ret!=FAIL){ pthread_mutex_lock(&ms); parentDet->enableWriteToFileMask(retval); @@ -7670,9 +7690,10 @@ int slsDetector::overwriteFile(int enable){ #ifdef VERBOSE std::cout << "Sending enable file write to receiver " << arg << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendInt(fnum,retval,arg); - disconnectData(); + disconnectData(); + } if(ret!=FAIL){ pthread_mutex_lock(&ms); parentDet->enableOverwriteMask(retval); @@ -7708,9 +7729,10 @@ int slsDetector::setFrameIndex(int index){ #ifdef VERBOSE std::cout << "Sending frame index to receiver " << arg << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendInt(fnum,retval,arg); - disconnectData(); + disconnectData(); + } if(ret!=FAIL){ pthread_mutex_lock(&ms); fileIO::setFrameIndex(retval); @@ -7787,9 +7809,10 @@ int slsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){ #ifdef VERBOSE std::cout << "Sending read frequency to receiver " << arg << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendInt(fnum,retval,arg); - disconnectData(); + disconnectData(); + } if(ret==FAIL) retval = -1; if(ret==FORCE_UPDATE) @@ -7805,6 +7828,33 @@ int slsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){ +int slsDetector::setReceiverReadTimer(int time_in_ms){ + int fnum=F_READ_RECEIVER_TIMER; + int ret = FAIL; + int arg = time_in_ms; + int retval = -1; + + if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ +#ifdef VERBOSE + std::cout << "Sending read timer to receiver " << arg << std::endl; +#endif + if (connectData() == OK){ + ret=thisReceiver->sendInt(fnum,retval,arg); + disconnectData(); + } + if(ret==FORCE_UPDATE) + updateReceiver(); + } + + if ((time_in_ms > 0) && (retval != time_in_ms)){ + cout << "could not set receiver read timer to " << time_in_ms <<" Returned:" << retval << endl; + setErrorMask((getErrorMask())|(RECEIVER_READ_TIMER)); + } + return retval; +} + + + int slsDetector::enableDataStreamingFromReceiver(int enable){ int fnum=F_STREAM_DATA_FROM_RECEIVER; int ret = FAIL; @@ -7816,9 +7866,10 @@ int slsDetector::enableDataStreamingFromReceiver(int enable){ #ifdef VERBOSE std::cout << "***************Sending Data Streaming in Receiver " << arg << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendInt(fnum,retval,arg); - disconnectData(); + disconnectData(); + } if(ret==FAIL) retval = -1; if(ret==FORCE_UPDATE) @@ -7844,9 +7895,10 @@ int slsDetector::enableReceiverCompression(int i){ #ifdef VERBOSE std::cout << "Getting/Enabling/Disabling Receiver Compression with argument " << i << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendInt(fnum,retval,i); - disconnectData(); + disconnectData(); + } if(ret==FAIL) setErrorMask((getErrorMask())|(COULDNOT_ENABLE_COMPRESSION)); } @@ -7865,9 +7917,10 @@ void slsDetector::setDetectorHostname(){ #ifdef VERBOSE std::cout << "Sending detector hostname to Receiver " << thisDetector->hostname << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendString(fnum,retval,thisDetector->hostname); - disconnectData(); + disconnectData(); + } if((ret==FAIL) || (strcmp(retval,thisDetector->hostname))) setErrorMask((getErrorMask())|(RECEIVER_DET_HOSTNAME_NOT_SET)); } @@ -7913,9 +7966,10 @@ int slsDetector::enableTenGigabitEthernet(int i){ #ifdef VERBOSE std::cout << "Enabling / Disabling 10Gbe in receiver: " << i << std::endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendInt(fnum2,retval,i); - disconnectData(); + disconnectData(); + } if(ret==FAIL) setErrorMask((getErrorMask())|(RECEIVER_TEN_GIGA)); } @@ -7943,9 +7997,10 @@ int slsDetector::setReceiverFifoDepth(int i){ else std::cout<< "Setting Receiver Fifo Depth to " << i << endl; #endif - if (connectData() == OK) + if (connectData() == OK){ ret=thisReceiver->sendInt(fnum,retval,i); - disconnectData(); + disconnectData(); + } if(ret==FAIL) setErrorMask((getErrorMask())|(COULD_NOT_SET_FIFO_DEPTH)); } diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index da6168ba8..e00e03ebb 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -1705,6 +1705,14 @@ class slsDetector : public slsDetectorUtils, public energyConversion { */ int setReadReceiverFrequency(int getFromReceiver, int freq=-1); + /** Sets the read receiver timer + if data required from receiver randomly readRxrFrequency=0, + then the timer between each data stream is set with time_in_ms + @param time_in_ms timer between frames + /returns read receiver timer + */ + int setReceiverReadTimer(int time_in_ms=500); + /** Enable or disable streaming data from receiver to client * @param enable 0 to disable 1 to enable -1 to only get the value * @returns data streaming From b1a3a224ff98ad00cf1605a8c2eeb4a55e8f3609 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 11 Nov 2016 14:43:18 +0100 Subject: [PATCH 03/22] implemented high voltage for normal modules --- slsDetectorSoftware/eigerDetectorServer/Beb.c | 4 +- slsDetectorSoftware/eigerDetectorServer/Beb.h | 2 +- .../eigerDetectorServer/FebControl.c | 111 ++++++++++++------ .../eigerDetectorServer/FebControl.h | 8 +- .../eigerDetectorServer/FebRegisterDefs.h | 2 + .../bin/eigerDetectorServerv2.2.0.14.1 | Bin 277496 -> 0 bytes .../bin/eigerDetectorServerv2.2.0.16.0 | Bin 277523 -> 0 bytes .../bin/eigerDetectorServerv2.2.0.16.1 | Bin 277496 -> 0 bytes .../bin/eigerDetectorServerv2.2.0.16.2 | Bin 277530 -> 0 bytes ....0.14.0 => eigerDetectorServerv2.2.0.16.3} | Bin 277523 -> 281889 bytes .../slsDetectorFunctionList.c | 24 ++-- .../slsDetectorServer_funcs.c | 8 +- 12 files changed, 104 insertions(+), 55 deletions(-) delete mode 100755 slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.1 delete mode 100755 slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.0 delete mode 100755 slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.1 delete mode 100755 slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.2 rename slsDetectorSoftware/eigerDetectorServer/bin/{eigerDetectorServerv2.2.0.14.0 => eigerDetectorServerv2.2.0.16.3} (52%) diff --git a/slsDetectorSoftware/eigerDetectorServer/Beb.c b/slsDetectorSoftware/eigerDetectorServer/Beb.c index a3025fea9..5299f1d37 100644 --- a/slsDetectorSoftware/eigerDetectorServer/Beb.c +++ b/slsDetectorSoftware/eigerDetectorServer/Beb.c @@ -149,7 +149,7 @@ void Beb_Beb(){ -void Beb_GetModuleCopnfiguration(int* master, int* top){ +void Beb_GetModuleConfiguration(int* master, int* top, int* normal){ *top = 0; *master = 0; //mapping new memory to read master top module configuration @@ -168,6 +168,8 @@ void Beb_GetModuleCopnfiguration(int* master, int* top){ *top = 1; if(ret&MASTER_BIT_MASK) *master = 1; + if(ret&NORMAL_MODULE_BIT_MASK) + *normal = 1; //close file pointer Beb_close(fd,csp0base); } diff --git a/slsDetectorSoftware/eigerDetectorServer/Beb.h b/slsDetectorSoftware/eigerDetectorServer/Beb.h index 9431701ea..8aeaac0a8 100644 --- a/slsDetectorSoftware/eigerDetectorServer/Beb.h +++ b/slsDetectorSoftware/eigerDetectorServer/Beb.h @@ -45,7 +45,7 @@ struct BebInfo{ unsigned int Beb_GetBebInfoIndex(unsigned int beb_numb); - void Beb_GetModuleCopnfiguration(int* master, int* top); + void Beb_GetModuleConfiguration(int* master, int* top, int* normal); void Beb_EndofDataSend(int tengiga); int Beb_SetMasterViaSoftware(); diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.c b/slsDetectorSoftware/eigerDetectorServer/FebControl.c index a5dd9ae83..1786f16a3 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.c +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.c @@ -61,6 +61,7 @@ int Feb_Control_current_index; int Feb_Control_counter_bit = 1; int Feb_control_master = 0; +int Feb_control_normal = 0; unsigned int Feb_Control_rate_correction_table[1024]; double Feb_Control_rate_meas[16384]; @@ -181,11 +182,12 @@ void Feb_Control_FebControl(){ -int Feb_Control_Init(int master, int top, int module_num){ +int Feb_Control_Init(int master, int top, int normal, int module_num){ unsigned int i; Feb_Control_module_number = 0; Feb_Control_current_index = 0; Feb_control_master = master; + Feb_control_normal = normal; //global send Feb_Control_AddModule1(0,1,0xff,0,1); @@ -492,59 +494,94 @@ float Feb_Control_DACToVoltage(unsigned int digital,unsigned int nsteps,float vm } -int Feb_Control_SetHighVoltage(float value){ - return Feb_Control_SetHighVoltage1(Feb_Control_module_number,value); -} +//only master gets to call this function +int Feb_Control_SetHighVoltage(int value){ -int Feb_Control_SetHighVoltage1(unsigned int module_num,float value){ - unsigned int module_index=0; - unsigned int i; - - if(Feb_control_master){//if(Module_TopAddressIsValid(&modules[module_index])){ - if(!Feb_Control_GetModuleIndex(module_num,&module_index)){/*||!Module_TopAddressIsValid(&modules[module_index])){*/ - cprintf(RED,"Error could not set high voltage module number %d invalid.\n",module_num); - return 0; - } - }else + if(!Feb_control_normal){ + cprintf(RED,"\nError: Setting High Voltage not implemented for special modules\n"); return 0; + } - if(!Feb_Control_SendHighVoltage(Module_GetTopRightAddress(&modules[module_index]),&value)) return 0; - - if(module_index!=0) Module_SetHighVoltage(&modules[module_index],value); - else for(i=0;inJ<235+G=_<8Im;+o;1f)4?1c}>t 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 TB%y!pqutibZ?z$XzQ8J diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.0 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.0 deleted file mode 100755 index f6dd95b75eb914a76ad28f7f966ede41ee940963..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277523 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ɡ<8Z9A7(tdDG7`Z!=^mQ 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%0DfFZl4-w7cN_$ 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 PAnmqhe!HIYpZED+w3kE@ diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.3 similarity index 52% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.14.0 rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.3 index 75724eb5ec55469ca8e777cd42de7773e5e33bda..b6f4f48d77a3e3825e995892b0928c3bbadb7d85 100755 GIT binary patch delta 61854 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 NtBJms=DBi%{ufKo-bVlc delta 59997 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 diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index 3d904043c..b6976a439 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -78,6 +78,7 @@ int default_offset_values[3] = {3851000,3851000,3851000}; enum masterFlags masterMode=IS_SLAVE; int top = 0; int master = 0; +int normal = 0; #define TEN_GIGA_BUFFER_SIZE 4112 @@ -142,7 +143,7 @@ int initDetector(){ getModuleConfiguration(); Feb_Interface_FebInterface(); Feb_Control_FebControl(); - Feb_Control_Init(master,top,getDetectorNumber()); + Feb_Control_Init(master,top,normal, getDetectorNumber()); printf("FEB Initialization done\n"); Beb_Beb(); printf("BEB Initialization done\n"); @@ -184,7 +185,7 @@ int initDetectorStop(){ getModuleConfiguration(); Feb_Interface_FebInterface(); Feb_Control_FebControl(); - Feb_Control_Init(master,top,getDetectorNumber()); + Feb_Control_Init(master,top,normal,getDetectorNumber()); printf("FEB Initialization done\n"); /* Beb_Beb(-1); printf("BEB constructor done\n");*/ @@ -198,15 +199,18 @@ int initDetectorStop(){ void getModuleConfiguration(){ int *m=&master; int *t=⊤ + int *n=&normal; /*if(getDetectorNumber() == 0xbeb015){ master = 1; top = 1; }*/ - Beb_GetModuleCopnfiguration(m,t); + Beb_GetModuleConfiguration(m,t,n); if(top) printf("*************** TOP ***************\n"); else printf("*************** BOTTOM ***************\n"); if(master) printf("*************** MASTER ***************\n"); else printf("*************** SLAVE ***************\n"); + if(normal) printf("*************** NORMAL ***************\n"); + else printf("*************** SPECIAL ***************\n"); } @@ -428,13 +432,17 @@ void setDAC(enum detDacIndex ind, int val, int imod, int mV, int retval[]){ } + int setHighVoltage(int val, int imod){ if(val!=-1){ - printf(" Setting High Voltage: %d\n",val); - if(!master) - eiger_highvoltage = val; - else if(Feb_Control_SetHighVoltage(val)) - eiger_highvoltage = val; + eiger_highvoltage = val; + if(master) + Feb_Control_SetHighVoltage(val); + } + + if(master && !Feb_Control_GetHighVoltage(&eiger_highvoltage)){ + cprintf(RED,"Warning: Could not read high voltage\n"); + return 0; } return eiger_highvoltage; } diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index 897ccf788..ea9b12256 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -1258,21 +1258,23 @@ int set_dac(int file_des) { printf("DAC set to %d in dac units and %d mV\n", retval[0],retval[1]); #endif - if(ret == OK){ + //takes time to set high voltage, so no check for it + if(ret == OK && ind != HV_POT && ind != HV_NEW){ if(mV) temp = retval[1]; else temp = retval[0]; if ((abs(temp-val)<=5) || val==-1) { ret=OK; - if (differentClients) - ret=FORCE_UPDATE; } else { ret=FAIL; printf("Setting dac %d of module %d: wrote %d but read %d\n", idac, imod, val, temp); } } + if(ret == OK && differentClients) + ret=FORCE_UPDATE; + /* send answer */ /* send OK/failed */ From f13a42feebaa07d05e38521322e53ff60533d768 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 11 Nov 2016 14:43:55 +0100 Subject: [PATCH 04/22] eigerupdaterev --- slsDetectorSoftware/eigerDetectorServer/gitInfo.txt | 8 ++++---- slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h | 8 ++++---- slsDetectorSoftware/gitInfo.txt | 8 ++++---- slsDetectorSoftware/slsDetector/gitInfoLib.h | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt index d4905e059..088702938 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 279965f286cc6364dec8bf7e2a837214d11bb296 -Revision: 258 +Repsitory UUID: a25546fa4945cf20720a7bbc0b0105d0add667fe +Revision: 260 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 358 -Last Changed Date: 2016-11-03 12:31:34 +0100 +Last Changed Rev: 1301 +Last Changed Date: 2016-11-11 14:43:18 +0100 diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h index 476f77780..033f09c61 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "279965f286cc6364dec8bf7e2a837214d11bb296" -//#define SVNREV 0x358 +#define SVNREPUUID "a25546fa4945cf20720a7bbc0b0105d0add667fe" +//#define SVNREV 0x1301 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTH "Dhanya_Maliakal" -#define SVNREV 0x358 -#define SVNDATE 0x20161103 +#define SVNREV 0x1301 +#define SVNDATE 0x20161111 // diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index c16491e70..ebfddf76e 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: a10faa8aa60e206c4a0a25ae366e9c1e6f024cbc -Revision: 1297 +Repsitory UUID: a25546fa4945cf20720a7bbc0b0105d0add667fe +Revision: 1301 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1297 -Last Changed Date: 2016-11-08 15:25:56 +0100 +Last Changed Rev: 1301 +Last Changed Date: 2016-11-11 14:43:18 +0100 diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index c2fbbfdcc..46d99aaec 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "a10faa8aa60e206c4a0a25ae366e9c1e6f024cbc" -//#define SVNREV 0x1297 +#define SVNREPUUIDLIB "a25546fa4945cf20720a7bbc0b0105d0add667fe" +//#define SVNREV 0x1301 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1297 -#define SVNDATELIB 0x20161108 +#define SVNREVLIB 0x1301 +#define SVNDATELIB 0x20161111 // From 7ffba557f65476ec214db8cebf3408fc8713e5cc Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 11 Nov 2016 14:44:42 +0100 Subject: [PATCH 05/22] updatereveiger --- slsDetectorSoftware/eigerDetectorServer/gitInfo.txt | 8 ++++---- slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h | 6 +++--- slsDetectorSoftware/gitInfo.txt | 8 ++++---- slsDetectorSoftware/slsDetector/gitInfoLib.h | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt index 088702938..b3f54a7c3 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: a25546fa4945cf20720a7bbc0b0105d0add667fe -Revision: 260 +Repsitory UUID: ace333e2bbcde07585c0f0232c653a66eef73b52 +Revision: 261 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1301 -Last Changed Date: 2016-11-11 14:43:18 +0100 +Last Changed Rev: 1302 +Last Changed Date: 2016-11-11 14:43:55 +0100 diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h index 033f09c61..5dc5d46f5 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "a25546fa4945cf20720a7bbc0b0105d0add667fe" -//#define SVNREV 0x1301 +#define SVNREPUUID "ace333e2bbcde07585c0f0232c653a66eef73b52" +//#define SVNREV 0x1302 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTH "Dhanya_Maliakal" -#define SVNREV 0x1301 +#define SVNREV 0x1302 #define SVNDATE 0x20161111 // diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index ebfddf76e..cf5dc6e60 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: a25546fa4945cf20720a7bbc0b0105d0add667fe -Revision: 1301 +Repsitory UUID: ace333e2bbcde07585c0f0232c653a66eef73b52 +Revision: 1302 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1301 -Last Changed Date: 2016-11-11 14:43:18 +0100 +Last Changed Rev: 1302 +Last Changed Date: 2016-11-11 14:43:55 +0100 diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index 46d99aaec..f998540c1 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "a25546fa4945cf20720a7bbc0b0105d0add667fe" -//#define SVNREV 0x1301 +#define SVNREPUUIDLIB "ace333e2bbcde07585c0f0232c653a66eef73b52" +//#define SVNREV 0x1302 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1301 +#define SVNREVLIB 0x1302 #define SVNDATELIB 0x20161111 // From b980640a4c92efff97f25f9b8f78ed0c22e8c373 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 11 Nov 2016 14:44:56 +0100 Subject: [PATCH 06/22] updaterev --- slsDetectorSoftware/gitInfo.txt | 8 ++++---- slsDetectorSoftware/slsDetector/gitInfoLib.h | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index cf5dc6e60..d93fd47f0 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: ace333e2bbcde07585c0f0232c653a66eef73b52 -Revision: 1302 +Repsitory UUID: 732a0ea946ba71eb2b03155ec3678a925d885988 +Revision: 1303 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1302 -Last Changed Date: 2016-11-11 14:43:55 +0100 +Last Changed Rev: 1303 +Last Changed Date: 2016-11-11 14:44:42 +0100 diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index f998540c1..25c1b4922 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "ace333e2bbcde07585c0f0232c653a66eef73b52" -//#define SVNREV 0x1302 +#define SVNREPUUIDLIB "732a0ea946ba71eb2b03155ec3678a925d885988" +//#define SVNREV 0x1303 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1302 +#define SVNREVLIB 0x1303 #define SVNDATELIB 0x20161111 // From c639477f28dd0d25c4226ecf4325c326e10e91f6 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Mon, 14 Nov 2016 11:57:29 +0100 Subject: [PATCH 07/22] adding exptime to receiver for file header --- slsDetectorSoftware/commonFiles/error_defs.h | 65 ++++++++++--------- .../slsDetector/slsDetector.cpp | 30 ++++----- 2 files changed, 49 insertions(+), 46 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 199478114..6d00e1ef0 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -39,40 +39,43 @@ using namespace std; #define RECEIVER_DET_HOSTTYPE_NOT_SET 0x0020000000000000ULL #define DETECTOR_TEN_GIGA 0x0010000000000000ULL #define DETECTOR_ACTIVATE 0x0008000000000000ULL +#define COULD_NOT_CONFIGURE_MAC 0x0004000000000000ULL +#define COULDNOT_START_RECEIVER 0x0002000000000000ULL // default error like starting threads +#define COULDNOT_STOP_RECEIVER 0x0001000000000000ULL // 0xFFFFFFFF00000000ULL -#define COULD_NOT_CONFIGURE_MAC 0x0000000000000001ULL -#define COULDNOT_SET_NETWORK_PARAMETER 0x0000000000000002ULL -#define COULDNOT_SET_ROI 0x0000000000000004ULL -#define RECEIVER_READ_FREQUENCY 0x0000000000000008ULL -#define SETTINGS_NOT_SET 0x0000000000000010ULL -#define SETTINGS_FILE_NOT_OPEN 0x0000000000000020ULL -#define COULDNOT_START_RECEIVER 0x0000000000000040ULL // default error like starting threads -#define COULDNOT_STOP_RECEIVER 0x0000000000000080ULL -#define DETECTOR_TIMER_VALUE_NOT_SET 0x0000000000000100ULL -#define RECEIVER_ACQ_PERIOD_NOT_SET 0x0000000000000200ULL -#define RECEIVER_FRAME_NUM_NOT_SET 0x0000000000000400ULL -#define RECEIVER_DYNAMIC_RANGE 0x0000000000000800ULL -#define RECEIVER_TEN_GIGA 0x0000000000001000ULL -#define ALLTIMBITS_NOT_SET 0x0000000000002000ULL -#define COULD_NOT_SET_SPEED_PARAMETERS 0x0000000000004000ULL -#define COULD_NOT_SET_READOUT_FLAGS 0x0000000000008000ULL -#define COULD_NOT_SET_FIFO_DEPTH 0x0000000000010000ULL -#define COULD_NOT_SET_COUNTER_BIT 0x0000000000020000ULL -#define COULD_NOT_PULSE_PIXEL 0x0000000000040000ULL -#define COULD_NOT_PULSE_PIXEL_NMOVE 0x0000000000080000ULL -#define COULD_NOT_PULSE_CHIP 0x0000000000100000ULL -#define COULD_NOT_SET_RATE_CORRECTION 0x0000000000200000ULL -#define DETECTOR_NETWORK_PARAMETER 0x0000000000400000ULL -#define RATE_CORRECTION_NOT_32or16BIT 0x0000000000800000ULL -#define RATE_CORRECTION_NO_TAU_PROVIDED 0x0000000001000000ULL -#define PROGRAMMING_ERROR 0x0000000002000000ULL -#define RECEIVER_ACTIVATE 0x0000000004000000ULL -#define DATA_STREAMING 0x0000000008000000ULL -#define RESET_ERROR 0x0000000010000000ULL -#define POWER_CHIP 0x0000000020000000ULL -#define RECEIVER_READ_TIMER 0x0000000040000000ULL + +#define COULDNOT_SET_NETWORK_PARAMETER 0x0000000000000001ULL +#define COULDNOT_SET_ROI 0x0000000000000002ULL +#define RECEIVER_READ_FREQUENCY 0x0000000000000004ULL +#define SETTINGS_NOT_SET 0x0000000000000008ULL +#define SETTINGS_FILE_NOT_OPEN 0x0000000000000010ULL +#define DETECTOR_TIMER_VALUE_NOT_SET 0x0000000000000020ULL +#define RECEIVER_ACQ_PERIOD_NOT_SET 0x0000000000000040ULL +#define RECEIVER_FRAME_NUM_NOT_SET 0x0000000000000080ULL +#define RECEIVER_DYNAMIC_RANGE 0x0000000000000100ULL +#define RECEIVER_TEN_GIGA 0x0000000000000200ULL +#define ALLTIMBITS_NOT_SET 0x0000000000000400ULL +#define COULD_NOT_SET_SPEED_PARAMETERS 0x0000000000000800ULL +#define COULD_NOT_SET_READOUT_FLAGS 0x0000000000001000ULL +#define COULD_NOT_SET_FIFO_DEPTH 0x0000000000002000ULL +#define COULD_NOT_SET_COUNTER_BIT 0x0000000000004000ULL +#define COULD_NOT_PULSE_PIXEL 0x0000000000008000ULL +#define COULD_NOT_PULSE_PIXEL_NMOVE 0x0000000000010000ULL +#define COULD_NOT_PULSE_CHIP 0x0000000000020000ULL +#define COULD_NOT_SET_RATE_CORRECTION 0x0000000000040000ULL +#define DETECTOR_NETWORK_PARAMETER 0x0000000000080000ULL +#define RATE_CORRECTION_NOT_32or16BIT 0x0000000000100000ULL +#define RATE_CORRECTION_NO_TAU_PROVIDED 0x0000000000200000ULL +#define PROGRAMMING_ERROR 0x0000000000400000ULL +#define RECEIVER_ACTIVATE 0x0000000000800000ULL +#define DATA_STREAMING 0x0000000001000000ULL +#define RESET_ERROR 0x0000000002000000ULL +#define POWER_CHIP 0x0000000004000000ULL +#define RECEIVER_READ_TIMER 0x0000000008000000ULL +#define RECEIVER_ACQ_TIME_NOT_SET 0x0000000010000000ULL + // 0x00000000FFFFFFFFULL /** @short class returning all error messages for error mask */ class errorDefs { diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index e4ca64542..e650c4ab8 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -4061,7 +4061,7 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ //send acquisiton period/frame number to receiver - if((index==FRAME_NUMBER)||(index==FRAME_PERIOD)||(index==CYCLES_NUMBER)){ + if((index==FRAME_NUMBER)||(index==FRAME_PERIOD)||(index==CYCLES_NUMBER)||(index==ACQUISITION_TIME)){ if(ret != FAIL){ int64_t args[2]; retval = -1; @@ -4073,21 +4073,21 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ //set #frames, #cycles if((index==FRAME_NUMBER)||(index==CYCLES_NUMBER)){ #ifdef VERBOSE - std::cout << "Setting/Getting number of frames " << index <<" to/from receiver " << args[1] << std::endl; + std::cout << "Setting/Getting number of frames*cycles " << index <<" to/from receiver " << args[1] << std::endl; #endif if(thisDetector->timerValue[CYCLES_NUMBER]==0) args[1] = thisDetector->timerValue[FRAME_NUMBER]; else args[1] = thisDetector->timerValue[FRAME_NUMBER]*thisDetector->timerValue[CYCLES_NUMBER]; } - //set period + //set period/exptime else{ #ifdef VERBOSE - std::cout << "Setting/Getting acquisition period " << index << " to/from receiver " << args[1] << std::endl; + if(index==ACQUISITION_TIME) + std::cout << "Setting/Getting acquisition time " << index << " to/from receiver " << args[1] << std::endl; + else + std::cout << "Setting/Getting acquisition period " << index << " to/from receiver " << args[1] << std::endl; #endif - //if acquisition period is zero, then #frames/buffer depends on exposure time and not acq period - if(!args[1]) - args[1] = timerValue[ACQUISITION_TIME]; } char mess[MAX_STR_LENGTH]=""; @@ -4097,20 +4097,20 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ } if((args[1] != retval)|| (ret==FAIL)){ ret = FAIL; - if(index==FRAME_PERIOD){ - //exptime sent if acq period = 0 - if(retval){ - if(strstr(mess,"receiver not idle")==NULL) - cout << "ERROR:Acquisition Period in receiver set incorrectly to " << retval << " instead of " << args[1] << endl; - setErrorMask((getErrorMask())|(RECEIVER_ACQ_PERIOD_NOT_SET)); - } + if(index==ACQUISITION_TIME){ + if(strstr(mess,"receiver not idle")==NULL) + cout << "ERROR:Acquisition Time in receiver set incorrectly to " << retval << " instead of " << args[1] << endl; + setErrorMask((getErrorMask())|(RECEIVER_ACQ_TIME_NOT_SET)); + }else if(index==FRAME_PERIOD){ + if(strstr(mess,"receiver not idle")==NULL) + cout << "ERROR:Acquisition Period in receiver set incorrectly to " << retval << " instead of " << args[1] << endl; + setErrorMask((getErrorMask())|(RECEIVER_ACQ_PERIOD_NOT_SET)); }else{ if(strstr(mess,"receiver not idle")==NULL) cout << "ERROR:Number of Frames (* Number of cycles) in receiver set incorrectly to " << retval << " instead of " << args[1] << endl; setErrorMask((getErrorMask())|(RECEIVER_FRAME_NUM_NOT_SET)); } } - if(ret==FORCE_UPDATE) updateReceiver(); } From ebf102b8d9b6451e2a0bb070e91f3928ea628afb Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Mon, 14 Nov 2016 11:57:53 +0100 Subject: [PATCH 08/22] updaterev --- slsDetectorSoftware/gitInfo.txt | 8 ++++---- slsDetectorSoftware/slsDetector/gitInfoLib.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index d93fd47f0..760f0563f 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 732a0ea946ba71eb2b03155ec3678a925d885988 -Revision: 1303 +Repsitory UUID: 128d45884fff3d224a5a7eb387f79f4a32bea3e6 +Revision: 1305 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1303 -Last Changed Date: 2016-11-11 14:44:42 +0100 +Last Changed Rev: 1305 +Last Changed Date: 2016-11-14 11:57:29 +0100 diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index 25c1b4922..0b617ba56 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "732a0ea946ba71eb2b03155ec3678a925d885988" -//#define SVNREV 0x1303 +#define SVNREPUUIDLIB "128d45884fff3d224a5a7eb387f79f4a32bea3e6" +//#define SVNREV 0x1305 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1303 -#define SVNDATELIB 0x20161111 +#define SVNREVLIB 0x1305 +#define SVNDATELIB 0x20161114 // From 9d106f6c93dfcc854aa5ff192b4907ebbcca5616 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Mon, 21 Nov 2016 09:21:30 +0100 Subject: [PATCH 09/22] changed clock for jungfrau, maybe other debugging stuff outside this folder --- .../jungfrauDetectorServer/firmware_funcs.c | 2 +- ...verv2.2.0 => jungfrauDetectorServerv2.2.1} | Bin 126888 -> 126888 bytes .../multiSlsDetector/multiSlsDetector.cpp | 48 +++-- .../slsDetector/slsDetector.cpp | 181 +++++++++--------- 4 files changed, 131 insertions(+), 100 deletions(-) rename slsDetectorSoftware/jungfrauDetectorServer/{jungfrauDetectorServerv2.2.0 => jungfrauDetectorServerv2.2.1} (99%) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 4d9ea38c1..d6e485f48 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -91,7 +91,7 @@ u_int32_t progressMask=0; int phase_shift=0;//DEFAULT_PHASE_SHIFT; int ipPacketSize=DEFAULT_IP_PACKETSIZE; int udpPacketSize=DEFAULT_UDP_PACKETSIZE; -int clockdivider = 20; +int clockdivider = 40; /* #ifndef NEW_PLL_RECONFIG u_int32_t clkDivider[2]={32,16}; diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 similarity index 99% rename from slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 rename to slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index cdbf316386e4e580e3a8ed52b79d93bd0fc6a1dc..8f3ec4cf8a04b8239f46deee534f4ae7e29339e4 100755 GIT binary patch delta 46 zcmV+}0MY-b-v_AQ2aqWPGOkURL6!j+p+pb?ma|0=gHZvNgUMmH$zcI2M*%3e^{4@} EMyBEt1ONa4 delta 46 zcmV+}0MY-b-v_AQ2aqWPA>a|0L6!j+p+pb?l(R(;gHZvLgUMmH$zcI2M*$SK^{4@} EMxtL4(EtDd diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 36e8762e7..03ae47e9f 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5105,16 +5105,15 @@ void multiSlsDetector::startReceivingDataThread(){ //initializations int numReadoutPerDetector = 1; bool jungfrau = false; - int expectedsize = 1024*256;/**shouldnt work for other bit modes or anythign*/ if(getDetectorsType() == EIGER){ numReadoutPerDetector = 2; - expectedsize = 1024*256; }else if(getDetectorsType() == JUNGFRAU){ jungfrau = true; - expectedsize = 8192*128; + //expectedsize = 8192*128; } int singleDatabytes = detectors[ithread/numReadoutPerDetector]->getDataBytes(); int nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); + int expectedsize = singleDatabytes/numReadoutPerDetector;//8192*128; //1024*256 int* image = new int[nel]; int len,idet = 0; singleframe[ithread]=NULL; @@ -5160,8 +5159,9 @@ void multiSlsDetector::startReceivingDataThread(){ //infinite loop, exited only (if gui restarted/ enabledatastreaming called) while(true){ - + //cprintf(GREEN,"%d waiting to copy\n",ithread); sem_wait(&sem_singlewait[ithread]); //wait for it to be copied + //cprintf(GREEN,"%d gonna copy\n",ithread); //check to exit thread if(killAllReceivingDataThreads) break; @@ -5210,8 +5210,14 @@ void multiSlsDetector::startReceivingDataThread(){ #endif if(currentFrameIndex ==-1) cprintf(RED,"multi frame index -1!!\n"); } + if(singleframe[ithread]==NULL){ + singleDatabytes = detectors[ithread/numReadoutPerDetector]->getDataBytes(); + nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); + delete [] image; + image = new int[nel]; + expectedsize = singleDatabytes/numReadoutPerDetector; + } singleframe[ithread]=image; - // close the message zmq_msg_close(&message); @@ -5236,9 +5242,15 @@ void multiSlsDetector::startReceivingDataThread(){ else{ //actual data //cprintf(BLUE,"%d actual dataaa\n",ithread); + //memset((char*)(singleframe[ithread]),0xFF,singleDatabytes/numReadoutPerDetector); memcpy((char*)(singleframe[ithread]),(char*)zmq_msg_data(&message),singleDatabytes/numReadoutPerDetector); + //cprintf(GREEN,"%d copied data %d\n",ithread,singleDatabytes/numReadoutPerDetector); + if(!ithread){ + for(int i=0;i<30;i++) + cprintf(BLUE,"value[%d]:%d\n",i,(short int)singleframe[ithread][i]); + } //jungfrau masking adcval if(jungfrau){ for(unsigned int i=0;igetTotalNumberOfChannels(X); slsmaxY = detectors[0]->getTotalNumberOfChannels(Y); + //cprintf(BLUE,"slsdatabytes:%d slsmaxchannels:%d bytesperchannel:%d slsmaxX:%d slsmaxY:%d\n", + // slsdatabytes,slsmaxchannels,bytesperchannel,slsmaxX,slsmaxY); } int nel=(thisMultiDetector->dataBytes)/sizeof(int); + //cprintf(BLUE,"multi databytes:%d\n",thisMultiDetector->dataBytes); if(nel <= 0){ cprintf(RED,"Error: Multislsdetector databytes not valid : %d\n", thisMultiDetector->dataBytes); return; @@ -5337,7 +5352,8 @@ void multiSlsDetector::readFrameFromReceiver(){ } //assemble data - if(maxX){ //eiger, so interleaving between ports in one readout itself + if(maxX){ + //eiger, so interleaving between ports in one readout itself offsetY = (maxY - (thisMultiDetector->offsetY[idet] + slsmaxY)) * maxX * bytesperchannel; //the left half or right half if(!(ireadout%numReadoutPerDetector)) @@ -5345,24 +5361,34 @@ void multiSlsDetector::readFrameFromReceiver(){ else offsetX = thisMultiDetector->offsetX[idet] + halfreadoutoffset; offsetX *= bytesperchannel; - //cprintf(BLUE,"offsetx:%d offsety:%d maxx:%d slsmaxX:%d slsmaxY:%d bytesperchannel:%d\n", - // offsetX,offsetY,maxX,slsmaxX,slsmaxY,bytesperchannel); + //cprintf(BLUE,"ireadout:%d, offsetx:%d offsety:%d maxx:%d slsmaxX:%d slsmaxY:%d bytesperchannel:%d\n", + // ireadout, offsetX,offsetY,maxX,slsmaxX,slsmaxY,bytesperchannel); // cprintf(BLUE,"copying bytes:%d\n", (slsmaxX/numReadoutPerDetector)*bytesperchannel); - //itnerleaving with other detectors + + //interleaving with other detectors //bottom if(((idet+1)%2) == 0){ - for(int i=0;inChans*thisDetector->nChips*thisDetector->nMods]; - // printf("allocating fdata!\n"); - } - const int bytesize=8; - - int ival=0; - char *ptr=(char*)datain; - char iptr; - - int nbits=thisDetector->dynamicRange; - int nch=thisDetector->nChans*thisDetector->nChips*thisDetector->nMods; - int ipos=0, ichan=0, ibyte; - - if (thisDetector->timerValue[PROBES_NUMBER]==0) { - if (thisDetector->myDetectorType==JUNGFRAUCTB) { - - for (ichan=0; ichandataBytes; ibyte++) { - iptr=ptr[ibyte]&0x1; - for (ipos=0; ipos<8; ipos++) { - // dataout[ibyte*2+ichan]=((iptr&((0xf)<>ichan)&0xf; - ival=(iptr>>(ipos))&0x1; - dataout[ichan]=ival; - ichan++; + double *dataout; + if (fdata) { + dataout=fdata; + // printf("not allocating fdata!\n"); } - } - break; - case 4: - for (ibyte=0; ibytedataBytes; ibyte++) { - iptr=ptr[ibyte]&0xff; - for (ipos=0; ipos<2; ipos++) { - // dataout[ibyte*2+ichan]=((iptr&((0xf)<>ichan)&0xf; - ival=(iptr>>(ipos*4))&0xf; - dataout[ichan]=ival; - ichan++; + else { + dataout=new double[thisDetector->nChans*thisDetector->nChips*thisDetector->nMods]; + // printf("allocating fdata!\n"); } - } - break; - case 8: - for (ichan=0; ichandataBytes; ichan++) { - ival=ptr[ichan]&0xff; - dataout[ichan]=ival; - } - break; - case 16: - for (ichan=0; ichandynamicRange; + int nch=thisDetector->nChans*thisDetector->nChips*thisDetector->nMods; + int ipos=0, ichan=0, ibyte; + + if (thisDetector->timerValue[PROBES_NUMBER]==0) { + if (thisDetector->myDetectorType==JUNGFRAUCTB) { + + for (ichan=0; ichandataBytes; ibyte++) { + iptr=ptr[ibyte]&0x1; + for (ipos=0; ipos<8; ipos++) { + // dataout[ibyte*2+ichan]=((iptr&((0xf)<>ichan)&0xf; + ival=(iptr>>(ipos))&0x1; + dataout[ichan]=ival; + ichan++; + } + } + break; + case 4: + for (ibyte=0; ibytedataBytes; ibyte++) { + iptr=ptr[ibyte]&0xff; + for (ipos=0; ipos<2; ipos++) { + // dataout[ibyte*2+ichan]=((iptr&((0xf)<>ichan)&0xf; + ival=(iptr>>(ipos*4))&0xf; + dataout[ichan]=ival; + ichan++; + } + } + break; + case 8: + for (ichan=0; ichandataBytes; ichan++) { + ival=ptr[ichan]&0xff; + dataout[ichan]=ival; + } + break; + case 16: + for (ichan=0; ichanmyDetectorType == MYTHEN){ + for (ichan=0; ichan Date: Mon, 21 Nov 2016 12:02:45 +0100 Subject: [PATCH 10/22] fixing the 32 bit crash and empty plot using zmq --- .../jungfrauDetectorServer/firmware_funcs.c | 23 +++++++++--------- .../jungfrauDetectorServerv2.2.1 | Bin 126888 -> 126892 bytes .../multiSlsDetector/multiSlsDetector.cpp | 23 ++++-------------- .../slsDetector/slsDetector.cpp | 3 +-- 4 files changed, 18 insertions(+), 31 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index d6e485f48..845972a73 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -91,7 +91,8 @@ u_int32_t progressMask=0; int phase_shift=0;//DEFAULT_PHASE_SHIFT; int ipPacketSize=DEFAULT_IP_PACKETSIZE; int udpPacketSize=DEFAULT_UDP_PACKETSIZE; -int clockdivider = 40; +int clockdivider_exptime = 40; +int clockdivider_fc = 20; /* #ifndef NEW_PLL_RECONFIG u_int32_t clkDivider[2]={32,16}; @@ -496,7 +497,7 @@ void configurePll(int i) { #endif if (i<2) { - tot= PLL_VCO_FREQ_MHZ/clockdivider; /* check if it always reads clock */ + tot= PLL_VCO_FREQ_MHZ/clockdivider_fc; /* which clock divider?????? Is it called? clean up!! */ l=tot/2; h=l; if (tot>2*l) { @@ -1192,15 +1193,15 @@ int64_t getFrames(){ int64_t setExposureTime(int64_t value){ if (value!=-1){ printf("\nSetting exptime to %lldns\n",(long long int)value); - value*=(1E-3*clockdivider); + value*=(1E-3*clockdivider_exptime); } - int64_t retval = set64BitReg(value,SET_EXPTIME_LSB_REG, SET_EXPTIME_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + int64_t retval = set64BitReg(value,SET_EXPTIME_LSB_REG, SET_EXPTIME_MSB_REG)/(1E-3*clockdivider_exptime);//(1E-9*CLK_FREQ); printf("Getting exptime: %lldns\n",(long long int)retval); return retval; } int64_t getExposureTime(){ - return get64BitReg(GET_EXPTIME_LSB_REG, GET_EXPTIME_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + return get64BitReg(GET_EXPTIME_LSB_REG, GET_EXPTIME_MSB_REG)/(1E-3*clockdivider_exptime);//(1E-9*CLK_FREQ); } int64_t setGates(int64_t value){ @@ -1219,31 +1220,31 @@ int64_t getGates(){ int64_t setPeriod(int64_t value){ if (value!=-1){ printf("\nSetting period to %lldns\n",(long long int)value); - value*=(1E-3*clockdivider); + value*=(1E-3*clockdivider_fc); } - int64_t retval = set64BitReg(value,SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + int64_t retval = set64BitReg(value,SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG)/(1E-3*clockdivider_fc);//(1E-9*CLK_FREQ); printf("Getting period: %lldns\n",(long long int)retval); return retval; } int64_t getPeriod(){ - return get64BitReg(GET_PERIOD_LSB_REG, GET_PERIOD_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + return get64BitReg(GET_PERIOD_LSB_REG, GET_PERIOD_MSB_REG)/(1E-3*clockdivider_fc);//(1E-9*CLK_FREQ); } int64_t setDelay(int64_t value){ if (value!=-1){ printf("\nSetting delay to %lldns\n",(long long int)value); - value*=(1E-3*clockdivider); + value*=(1E-3*clockdivider_fc); } - int64_t retval = set64BitReg(value,SET_DELAY_LSB_REG, SET_DELAY_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + int64_t retval = set64BitReg(value,SET_DELAY_LSB_REG, SET_DELAY_MSB_REG)/(1E-3*clockdivider_fc);//(1E-9*CLK_FREQ); printf("Getting delay: %lldns\n",(long long int)retval); return retval; } int64_t getDelay(){ - return get64BitReg(GET_DELAY_LSB_REG, GET_DELAY_MSB_REG)/(1E-3*clockdivider);//(1E-9*CLK_FREQ); + return get64BitReg(GET_DELAY_LSB_REG, GET_DELAY_MSB_REG)/(1E-3*clockdivider_fc);//(1E-9*CLK_FREQ); } int64_t setTrains(int64_t value){ diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.1 index 8f3ec4cf8a04b8239f46deee534f4ae7e29339e4..6014d803c3ecbba778c7a0f50c6e79238df51163 100755 GIT binary patch delta 13425 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 delta 13415 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 U*(nP&V0Nkl+MCcokyCg655$^w)Bpeg diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 03ae47e9f..d6317aa58 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -2266,6 +2266,7 @@ double* multiSlsDetector::decodeData(int *datain, double *fdata) { } } + return dataout; } @@ -5246,11 +5247,6 @@ void multiSlsDetector::startReceivingDataThread(){ memcpy((char*)(singleframe[ithread]),(char*)zmq_msg_data(&message),singleDatabytes/numReadoutPerDetector); //cprintf(GREEN,"%d copied data %d\n",ithread,singleDatabytes/numReadoutPerDetector); - if(!ithread){ - for(int i=0;i<30;i++) - cprintf(BLUE,"value[%d]:%d\n",i,(short int)singleframe[ithread][i]); - - } //jungfrau masking adcval if(jungfrau){ for(unsigned int i=0;ioffsetY[idet] + slsmaxY)) * maxX * bytesperchannel; //the left half or right half @@ -5361,19 +5358,12 @@ void multiSlsDetector::readFrameFromReceiver(){ else offsetX = thisMultiDetector->offsetX[idet] + halfreadoutoffset; offsetX *= bytesperchannel; - //cprintf(BLUE,"ireadout:%d, offsetx:%d offsety:%d maxx:%d slsmaxX:%d slsmaxY:%d bytesperchannel:%d\n", - // ireadout, offsetX,offsetY,maxX,slsmaxX,slsmaxY,bytesperchannel); - // cprintf(BLUE,"copying bytes:%d\n", (slsmaxX/numReadoutPerDetector)*bytesperchannel); - //interleaving with other detectors //bottom if(((idet+1)%2) == 0){ for(int i=0;i Date: Tue, 22 Nov 2016 11:05:42 +0100 Subject: [PATCH 11/22] removed zmq threads from client and made it receive packets via for loop --- .../multiSlsDetector/multiSlsDetector.cpp | 523 ++++++++---------- .../multiSlsDetector/multiSlsDetector.h | 38 +- .../slsDetector/slsDetector.cpp | 8 +- slsDetectorSoftware/slsDetector/slsDetector.h | 6 +- .../slsDetector/slsDetectorUtils.h | 6 +- 5 files changed, 244 insertions(+), 337 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index d6317aa58..40498e5d5 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -268,7 +268,12 @@ multiSlsDetector::multiSlsDetector(int id) : slsDetectorUtils(), shmId(-1) getNMods(); getMaxMods(); - threadStarted = false; + dataSocketsStarted = false; + for(int i=0;inumberOfDetectors; + //number of sockets + int numSockets = thisMultiDetector->numberOfDetectors; if(getDetectorsType() == EIGER) - numReadouts *= 2; + numSockets *= 2; - //reset masks - killAllReceivingDataThreads = false; - - //destroy if(destroy){ -#ifdef DEBUG - cout << "Destroying Receiving Data Thread(s)" << endl; -#endif - killAllReceivingDataThreads = true; - for(int i = 0; i < numReadouts; ++i){ - sem_post(&sem_singlewait[i]); - pthread_join(receivingDataThreads[i],NULL); - sem_destroy(&sem_singlewait[i]); - sem_destroy(&sem_singledone[i]); -#ifdef DEBUG - cout << "." << flush << endl; -#endif - } - killAllReceivingDataThreads = false; - threadStarted = false; + cprintf(MAGENTA,"Going to destroy data sockets\n"); + //close socket + for(int i=0;igetReceiver()); + cout<<"rx_hostname:"<h_addr)); + } + //add port + sprintf(dataSocketServerDetails[i],"%s:%d",dataSocketServerDetails[i],DEFAULT_ZMQ_PORTNO + i); + + //create context + context[i] = zmq_ctx_new(); + //create socket + zmqsocket[i] = zmq_socket(context[i], ZMQ_PULL); + //connect socket + zmq_connect(zmqsocket[i], dataSocketServerDetails[i]); + //int hwmval = 10; + //zmq_setsockopt(zmqsocket[i],ZMQ_RCVHWM,&hwmval,sizeof(hwmval)); //set receive HIGH WATER MARK (8-9ms slower//should not drop last packets) + cout << "ZMQ Client[" << i << "] from " << dataSocketServerDetails[i] << endl; + } + + dataSocketsStarted = true; + cout << "Receiving Data Socket(s) created" << endl; + return OK; +} + + + + + + + + + +int multiSlsDetector::getData(int isocket, bool masking, int* image, int size, int &acqIndex, int &frameIndex, int &subframeIndex, string &filename){ + + zmq_msg_t message; + + //scan header------------------------------------------------------------------- + zmq_msg_init (&message); + int len = zmq_msg_recv(&message, zmqsocket[isocket], 0); + if (len == -1) { + cprintf(BG_RED,"Could not read header for socket %d\n",isocket); + zmq_msg_close(&message); + cprintf(RED, "%d message null\n",isocket); + return FAIL; + } + + + // error if you print it + // cout << isocket << " header len:"<startReceivingDataThread(); - //while(true); - - return this_pointer; -} - - -void multiSlsDetector::startReceivingDataThread(){ - - int ithread = currentThreadIndex; //set current thread value index - - //initializations - int numReadoutPerDetector = 1; - bool jungfrau = false; - if(getDetectorsType() == EIGER){ - numReadoutPerDetector = 2; - }else if(getDetectorsType() == JUNGFRAU){ - jungfrau = true; - //expectedsize = 8192*128; - } - int singleDatabytes = detectors[ithread/numReadoutPerDetector]->getDataBytes(); - int nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); - int expectedsize = singleDatabytes/numReadoutPerDetector;//8192*128; //1024*256 - int* image = new int[nel]; - int len,idet = 0; - singleframe[ithread]=NULL; - - - char hostname[100] = "tcp://"; - char rx_hostname[100]; - strcpy(rx_hostname, detectors[ithread/numReadoutPerDetector]->getReceiver()); - cout<<"rx_hostname:"<h_addr)); - } - strcat(hostname,":"); - //server details - //char hostname[100] = "tcp://127.0.0.1:"; - int portno = DEFAULT_ZMQ_PORTNO + ithread; - sprintf(hostname,"%s%d",hostname,portno); - - //socket details - zmq_msg_t message; - void *context; - void *zmqsocket; - context = zmq_ctx_new(); - zmqsocket = zmq_socket(context, ZMQ_PULL); - //int hwmval = 10; - //zmq_setsockopt(zmqsocket,ZMQ_RCVHWM,&hwmval,sizeof(hwmval)); //set receive HIGH WATER MARK (8-9ms slower//should not drop last packets) - cprintf(RED,"connect ret:%d\n",zmq_connect(zmqsocket, hostname)); - cout << "ZMQ Client of " << ithread << " at " << hostname << endl; - cprintf(BLUE,"%d Created socket\n",ithread); - - - - threadStarted = true; //let calling function know thread started and obtained current - - - //infinite loop, exited only (if gui restarted/ enabledatastreaming called) - while(true){ - - //cprintf(GREEN,"%d waiting to copy\n",ithread); - sem_wait(&sem_singlewait[ithread]); //wait for it to be copied - //cprintf(GREEN,"%d gonna copy\n",ithread); - //check to exit thread - if(killAllReceivingDataThreads) - break; - - //scan header------------------------------------------------------------------- - zmq_msg_init (&message); - len = zmq_msg_recv(&message, zmqsocket, 0); - if (len == -1) { - cprintf(BG_RED,"Could not read header for socket %d\n",ithread); - zmq_msg_close(&message); - cprintf(RED, "%d message null\n",ithread); - continue; - } - - - // error if you print it - // cout << ithread << " header len:"<getDataBytes(); - nel=(singleDatabytes/numReadoutPerDetector)/sizeof(int); - delete [] image; - image = new int[nel]; - expectedsize = singleDatabytes/numReadoutPerDetector; - } - singleframe[ithread]=image; - // close the message - zmq_msg_close(&message); - - - //scan data------------------------------------------------------------------- - zmq_msg_init (&message); - len = zmq_msg_recv(&message, zmqsocket, 0); - - //cprintf(BLUE,"%d data %d\n",ithread,len); - //end of socket ("end") - if (len < expectedsize ) { - if(len == 3){ - //cprintf(RED,"%d Received end of acquisition\n", ithread); - singleframe[ithread] = NULL; - //break; - }else{ - cprintf(RED,"Received weird packet size %d in socket for %d\n", len, ithread); - memset((char*)(singleframe[ithread]),0xFF,singleDatabytes/numReadoutPerDetector); - } - - } - else{ - //actual data - //cprintf(BLUE,"%d actual dataaa\n",ithread); - //memset((char*)(singleframe[ithread]),0xFF,singleDatabytes/numReadoutPerDetector); - memcpy((char*)(singleframe[ithread]),(char*)zmq_msg_data(&message),singleDatabytes/numReadoutPerDetector); - //cprintf(GREEN,"%d copied data %d\n",ithread,singleDatabytes/numReadoutPerDetector); - - //jungfrau masking adcval - if(jungfrau){ - for(unsigned int i=0;inumberOfDetectors; + int numSocketsPerSLSDetector = 1; + bool jungfrau = false; + switch(getDetectorsType()){ + case EIGER: + numSocketsPerSLSDetector = 2; + numSockets *= numSocketsPerSLSDetector; maxX = thisMultiDetector->numberOfChannel[X]; maxY = thisMultiDetector->numberOfChannel[Y]; + break; + case JUNGFRAU: + jungfrau = true; + break; + default: + break; } - int numReadouts = numReadoutPerDetector * thisMultiDetector->numberOfDetectors; - //initializing variables - currentFileName=""; - currentAcquisitionIndex = -1; - currentFrameIndex = -1; - currentSubFrameIndex = -1; + //gui variables + int currentAcquisitionIndex = -1; + int currentFrameIndex = -1; + int currentSubFrameIndex = -1; + string currentFileName = ""; - - //getting values - int slsdatabytes = 0, slsmaxchannels = 0, bytesperchannel = 0, slsmaxX = 0, slsmaxY=0; + //getting sls values + int slsdatabytes = 0, slsmaxchannels = 0, bytesperchannel = 0, slsmaxX = 0, slsmaxY=0, nx=0, ny=0; if(detectors[0]){ slsdatabytes = detectors[0]->getDataBytes(); slsmaxchannels = detectors[0]->getMaxNumberOfChannels(); bytesperchannel = slsdatabytes/slsmaxchannels; slsmaxX = detectors[0]->getTotalNumberOfChannels(X); slsmaxY = detectors[0]->getTotalNumberOfChannels(Y); - //cprintf(BLUE,"slsdatabytes:%d slsmaxchannels:%d bytesperchannel:%d slsmaxX:%d slsmaxY:%d\n", - // slsdatabytes,slsmaxchannels,bytesperchannel,slsmaxX,slsmaxY); } + //getting multi values + nx = getTotalNumberOfChannels(slsDetectorDefs::X); + ny = getTotalNumberOfChannels(slsDetectorDefs::Y); + //calculating offsets (for eiger interleaving ports) + int offsetX[numSockets]; int offsetY[numSockets]; + if(maxX){ + for(int i=0; ioffsetY[i/numSocketsPerSLSDetector] + slsmaxY)) * maxX * bytesperchannel; + //the left half or right half + if(!(i%numSocketsPerSLSDetector)) + offsetX[i] = thisMultiDetector->offsetX[i/numSocketsPerSLSDetector]; + else + offsetX[i] = thisMultiDetector->offsetX[i/numSocketsPerSLSDetector] + (slsmaxX/numSocketsPerSLSDetector); + offsetX[i] *= bytesperchannel; + } + } + + int expectedslssize = slsdatabytes/numSocketsPerSLSDetector; + int* image = new int[(expectedslssize/sizeof(int))](); int nel=(thisMultiDetector->dataBytes)/sizeof(int); - //cprintf(BLUE,"multi databytes:%d\n",thisMultiDetector->dataBytes); if(nel <= 0){ cprintf(RED,"Error: Multislsdetector databytes not valid : %d\n", thisMultiDetector->dataBytes); return; } - int* multiframe=new int[nel]; - int idet,offsetY,offsetX; - int halfreadoutoffset = (slsmaxX/numReadoutPerDetector); - int nx =getTotalNumberOfChannels(slsDetectorDefs::X); - int ny =getTotalNumberOfChannels(slsDetectorDefs::Y); + int* multiframe=new int[nel](); + volatile uint64_t dataThreadMask = 0x0; - for(int i = 0; i < numReadouts; ++i) + for(int i = 0; i < numSockets; ++i) dataThreadMask|=(1<numberOfDetectors); //reset frame memory - //post all of them to start - for(int ireadout=0; ireadoutoffsetY[idet] + slsmaxY)) * maxX * bytesperchannel; - //the left half or right half - if(!(ireadout%numReadoutPerDetector)) - offsetX = thisMultiDetector->offsetX[idet]; - else - offsetX = thisMultiDetector->offsetX[idet] + halfreadoutoffset; - offsetX *= bytesperchannel; - //interleaving with other detectors - //bottom - if(((idet+1)%2) == 0){ + if((((isocket/numSocketsPerSLSDetector)+1)%2) == 0){ for(int i=0;i= 0){ - - if(threadStarted != enable){ + if(dataSocketsStarted != enable){ //destroy data threads - if(threadStarted) - createReceivingDataThreads(true); + if(dataSocketsStarted) + createReceivingDataSockets(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; + if(createReceivingDataSockets() == FAIL){ + std::cout << "Could not create data threads in client. Aborting creating data sockets 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)); @@ -5674,7 +5599,7 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ } } - }else enable = threadStarted; + }else enable = dataSocketsStarted; int ret=-100, ret1; for (int idet=0; idetnumberOfDetectors; idet++) { @@ -5690,9 +5615,9 @@ int multiSlsDetector::enableDataStreamingFromReceiver(int enable){ } /* if(enable == -1) - return threadStarted; + return dataSocketsStarted; */ - return (threadStarted & ret); + return (dataSocketsStarted & ret); } int multiSlsDetector::enableReceiverCompression(int i){ diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h index 4228b47a4..1cc895fa5 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h @@ -1196,11 +1196,11 @@ class multiSlsDetector : public slsDetectorUtils { int resetFramesCaught(); /** - * Create Receiving Data Threads - * @param destroy is true to destroy all the threads + * Create Receiving Data Sockets + * @param destroy is true to destroy all the sockets * @return OK or FAIL */ - int createReceivingDataThreads(bool destroy = false); + int createReceivingDataSockets(bool destroy = false); @@ -1392,35 +1392,17 @@ class multiSlsDetector : public slsDetectorUtils { private: - /** - * Static function - Starts Data Thread of this object - * @param this_pointer pointer to this object - */ - static void* staticstartReceivingDataThread(void *this_pointer); /** - * Thread that receives data packets from receiver + * Gets data from socket */ - void startReceivingDataThread(); + int getData(int isocket, bool masking, int* image, int size, int &acqIndex, int &frameIndex, int &subframeIndex, string &filename); - /* synchronizing between zmq threads */ - sem_t sem_singledone[MAXDET]; - sem_t sem_singlewait[MAXDET]; - int* singleframe[MAXDET]; - - /* Parameters given to the gui picked up from zmq threads*/ - int currentAcquisitionIndex; - int currentFrameIndex; - int currentSubFrameIndex; - string currentFileName; - - pthread_t receivingDataThreads[MAXDET]; - /** Ensures if threads created successfully */ - bool threadStarted; - /** Current Thread Index*/ - int currentThreadIndex; - /** Set to self-terminate data receiving threads waiting for semaphores */ - bool killAllReceivingDataThreads; + /** Ensures if sockets created successfully */ + bool dataSocketsStarted; + void *context[MAXDET]; + void *zmqsocket[MAXDET]; + char dataSocketServerDetails[MAXDET][100]; protected: diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 6ae228dd2..fe93af9d6 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -5730,7 +5730,7 @@ int slsDetector::setUDPConnection(){ int ret = FAIL; int fnum = F_SETUP_RECEIVER_UDP; - char args[3][MAX_STR_LENGTH]; + char args[3][MAX_STR_LENGTH]={"","",""}; char retval[MAX_STR_LENGTH]=""; //called before set up @@ -5806,7 +5806,7 @@ int slsDetector::configureMAC(){ int ret=FAIL; int fnum=F_CONFIGURE_MAC,fnum2=F_RECEIVER_SHORT_FRAME; char mess[MAX_STR_LENGTH]=""; - char arg[6][50]; + char arg[6][50]={"","","","","",""}; char cword[50]="", *pcword; string sword; int retval=-1; @@ -7141,7 +7141,7 @@ int slsDetector::setReceiverTCPSocket(string const name, int const receiver_port string slsDetector::setFilePath(string s) { int fnum = F_SET_RECEIVER_FILE_PATH; int ret = FAIL; - char arg[MAX_STR_LENGTH]; + char arg[MAX_STR_LENGTH]=""; char retval[MAX_STR_LENGTH] = ""; struct stat st; @@ -7192,7 +7192,7 @@ string slsDetector::setFilePath(string s) { string slsDetector::setFileName(string s) { int fnum=F_SET_RECEIVER_FILE_NAME; int ret = FAIL; - char arg[MAX_STR_LENGTH]; + char arg[MAX_STR_LENGTH]=""; char retval[MAX_STR_LENGTH]=""; if(!s.empty()){ diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index e00e03ebb..508b28000 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -1586,11 +1586,11 @@ class slsDetector : public slsDetectorUtils, public energyConversion { int resetFramesCaught(); /** - * Create Receiving Data Threads - * @param destroy is true to destroy all the threads + * Create Receiving Data Sockets + * @param destroy is true to destroy all the sockets * @return OK or FAIL */ - int createReceivingDataThreads(bool destroy = false){return 0;}; + int createReceivingDataSockets(bool destroy = false){return 0;}; /** Reads frames from receiver through a constant socket diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index 053a91c01..18ec00524 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -656,11 +656,11 @@ virtual int getReceiverCurrentFrameIndex()=0; virtual int resetFramesCaught()=0; /** - * Create Receiving Data Threads - * @param destroy is true to destroy all the threads + * Create Receiving Data Sockets + * @param destroy is true to destroy all the sockets * @return OK or FAIL */ -virtual int createReceivingDataThreads(bool destroy = false)=0; +virtual int createReceivingDataSockets(bool destroy = false)=0; /** Reads frames from receiver through a constant socket From 09d146ee55c8bdcde519f415d35c38f9764b100f Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 22 Nov 2016 11:39:47 +0100 Subject: [PATCH 12/22] changed a printout --- slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 6ab1b07c3..3ec9ab998 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -524,7 +524,7 @@ void* postProcessing::processData(int delflag) { if (ifp!=0){ c=fgetc(stdin); if (c=='q') { - cout<<"gonna stop"< Date: Tue, 22 Nov 2016 14:01:07 +0100 Subject: [PATCH 13/22] changed everything to depend on receiver online shared memory flag, and if it is online is only checked rarely --- .../slsDetector/slsDetector.cpp | 112 +++++++++--------- .../slsDetector/slsDetectorCommand.cpp | 34 +++++- .../slsDetector/slsDetectorUtils.cpp | 12 +- 3 files changed, 88 insertions(+), 70 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index fe93af9d6..e5b0d877c 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -1311,7 +1311,7 @@ int slsDetector::activate(int const enable){ #endif if(ret!=FAIL){ - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Activating/Deactivating Receiver: " << retval << std::endl; #endif @@ -1623,9 +1623,9 @@ int slsDetector::setDetectorType(detectorType const type){ //receiver - if((retType != GENERIC) && (setReceiverOnline()==ONLINE_FLAG)) { + if((retType != GENERIC) && (thisDetector->receiverOnlineFlag==ONLINE_FLAG)) { retval = FAIL; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending detector type to Receiver " << (int)thisDetector->myDetectorType << std::endl; #endif @@ -1997,7 +1997,7 @@ int64_t slsDetector::getId( idMode mode, int imod){ retval=SVNREVLIB; retval=(retval<<32) | SVNDATELIB; } else if (mode==RECEIVER_VERSION) { - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) { if (connectData() == OK){ ret=thisReceiver->getInt(fnum2,retval); disconnectData(); @@ -4068,7 +4068,7 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t){ args[0] = index; args[1] = thisDetector->timerValue[index]; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ //set #frames, #cycles if((index==FRAME_NUMBER)||(index==CYCLES_NUMBER)){ @@ -4629,7 +4629,7 @@ int slsDetector::setDynamicRange(int n){ if(ret != FAIL){ retval = thisDetector->dynamicRange; if((n==-1) && (ret!= FORCE_UPDATE)) n =-1; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending/Getting dynamic range to/from receiver " << n << std::endl; #endif @@ -5142,7 +5142,7 @@ int slsDetector::setRateCorrection(double t){ #ifdef VERBOSE std::cout<< "Setting Rate Correction to " << arg << endl; #endif - if (setOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->onlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); controlSocket->SendDataOnly(&arg,sizeof(arg)); @@ -5224,7 +5224,7 @@ double slsDetector::getRateCorrectionTau(){ #ifdef VERBOSE std::cout<< "Setting Rate Correction to " << arg << endl; #endif - if (setOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->onlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); controlSocket->ReceiveDataOnly(&ret,sizeof(ret)); @@ -5768,7 +5768,7 @@ int slsDetector::setUDPConnection(){ #endif //set up receiver for UDP Connection and get receivermac address - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Setting up UDP Connection for Receiver " << args[0] << "\t" << args[1] << std::endl; #endif @@ -5934,7 +5934,6 @@ int slsDetector::configureMAC(){ pthread_mutex_unlock(&ms); //connect to receiver if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending adc val to receiver " << retval << std::endl; #endif @@ -5944,7 +5943,6 @@ int slsDetector::configureMAC(){ } if(ret==FAIL) setErrorMask((getErrorMask())|(COULD_NOT_CONFIGURE_MAC)); - } } } @@ -6544,7 +6542,7 @@ int slsDetector::programFPGA(string fname){ #ifdef VERBOSE std::cout<< "Sending programming binary to detector " << endl; #endif - if (setOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->onlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); controlSocket->SendDataOnly(&filesize,sizeof(filesize)); @@ -6639,7 +6637,7 @@ int slsDetector::resetFPGA(){ #ifdef VERBOSE std::cout<< "Sending reset to FPGA " << endl; #endif - if (setOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->onlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); @@ -6675,7 +6673,7 @@ int slsDetector::powerChip(int ival){ #ifdef VERBOSE std::cout<< "Sending power on/off/get to the chip " << endl; #endif - if (setOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->onlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); controlSocket->SendDataOnly(&ival,sizeof(ival)); @@ -7049,10 +7047,10 @@ string slsDetector::checkReceiverOnline() { thisDetector->receiverOnlineFlag=OFFLINE_FLAG; delete dataSocket; dataSocket=NULL; - retval = FAIL; #ifdef VERBOSE std::cout<< "receiver offline!" << std::endl; #endif + return string(thisDetector->receiver_hostname); } else { thisDetector->receiverOnlineFlag=ONLINE_FLAG; dataSocket->SetTimeOut(100); @@ -7060,9 +7058,9 @@ string slsDetector::checkReceiverOnline() { #ifdef VERBOSE std::cout<< "receiver online!" << std::endl; #endif + return string(""); } } - return retval; } @@ -7158,7 +7156,7 @@ string slsDetector::setFilePath(string s) { } } - else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + else{ strcpy(arg,s.c_str()); #ifdef VERBOSE std::cout << "Sending file path to receiver " << arg << std::endl; @@ -7207,27 +7205,25 @@ string slsDetector::setFileName(string s) { } if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ - strcpy(arg,s.c_str()); + strcpy(arg,s.c_str()); #ifdef VERBOSE - std::cout << "Sending file name to receiver " << arg << std::endl; + std::cout << "Sending file name to receiver " << arg << std::endl; #endif - if (connectData() == OK){ - ret=thisReceiver->sendString(fnum,retval,arg); - disconnectData(); - } - if(ret!=FAIL){ -#ifdef VERBOSE - std::cout << "Complete file prefix from receiver: " << retval << std::endl; -#endif - pthread_mutex_lock(&ms); - fileIO::setFileName(parentDet->getNameFromReceiverFilePrefix(string(retval))); - pthread_mutex_unlock(&ms); - - } - if(ret==FORCE_UPDATE) - updateReceiver(); + if (connectData() == OK){ + ret=thisReceiver->sendString(fnum,retval,arg); + disconnectData(); } + if(ret!=FAIL){ +#ifdef VERBOSE + std::cout << "Complete file prefix from receiver: " << retval << std::endl; +#endif + pthread_mutex_lock(&ms); + fileIO::setFileName(parentDet->getNameFromReceiverFilePrefix(string(retval))); + pthread_mutex_unlock(&ms); + + } + if(ret==FORCE_UPDATE) + updateReceiver(); } pthread_mutex_lock(&ms); @@ -7256,7 +7252,7 @@ int slsDetector::setFileIndex(int i) { } } - else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + else{ #ifdef VERBOSE std::cout << "Sending file index to receiver " << arg << std::endl; #endif @@ -7284,7 +7280,7 @@ int slsDetector::startReceiver(){ int ret = FAIL; char mess[MAX_STR_LENGTH] = ""; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Starting Receiver " << std::endl; #endif @@ -7321,7 +7317,7 @@ int slsDetector::stopReceiver(){ if(thisDetector->myDetectorType != EIGER && thisDetector->myDetectorType != JUNGFRAU) detectorSendToReceiver(false); - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Stopping Receiver " << std::endl; #endif @@ -7347,7 +7343,7 @@ slsDetectorDefs::runStatus slsDetector::startReceiverReadout(){ int retval=-1; runStatus s=ERROR; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Starting Receiver Readout" << std::endl; #endif @@ -7405,7 +7401,7 @@ slsDetectorDefs::runStatus slsDetector::getReceiverStatus(){ int retval=-1; runStatus s=ERROR; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Getting Receiver Status" << std::endl; #endif @@ -7430,7 +7426,7 @@ int slsDetector::getFramesCaughtByReceiver(){ int ret = FAIL; int retval=-1; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Getting Frames Caught by Receiver " << std::endl; #endif @@ -7452,7 +7448,7 @@ int slsDetector::getReceiverCurrentFrameIndex(){ int ret = FAIL; int retval=-1; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Getting Current Frame Index of Receiver " << std::endl; #endif @@ -7475,7 +7471,7 @@ int slsDetector::resetFramesCaught(){ int ret = FAIL; char mess[MAX_STR_LENGTH] = ""; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) { #ifdef VERBOSE std::cout << "Reset Frames Caught by Receiver" << std::endl; #endif @@ -7502,7 +7498,7 @@ int slsDetector::lockReceiver(int lock){ int arg=lock; - if(setReceiverOnline(ONLINE_FLAG)!=ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Locking or Unlocking Receiver " << std::endl; #endif @@ -7527,7 +7523,7 @@ string slsDetector::getReceiverLastClientIP(){ int ret = FAIL; char retval[INET_ADDRSTRLEN]=""; - if(setReceiverOnline(ONLINE_FLAG)!=ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Geting Last Client IP connected to Receiver " << std::endl; #endif @@ -7585,7 +7581,7 @@ int slsDetector::updateReceiver() { int ret=OK; char mess[MAX_STR_LENGTH]=""; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) { if (connectData() == OK){ dataSocket->SendDataOnly(&fnum,sizeof(fnum)); dataSocket->ReceiveDataOnly(&ret,sizeof(ret)); @@ -7612,7 +7608,7 @@ int slsDetector::exitReceiver(){ int retval; int fnum=F_EXIT_RECEIVER; - if (setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG) { + if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) { if (dataSocket) { dataSocket->Connect(); dataSocket->SendDataOnly(&fnum,sizeof(fnum)); @@ -7648,7 +7644,7 @@ int slsDetector::enableWriteToFile(int enable){ } } - else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + else if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending enable file write to receiver " << arg << std::endl; #endif @@ -7690,7 +7686,7 @@ int slsDetector::overwriteFile(int enable){ } } - else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + else if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending enable file write to receiver " << arg << std::endl; #endif @@ -7729,7 +7725,7 @@ int slsDetector::setFrameIndex(int index){ pthread_mutex_unlock(&ms); } - else if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + else if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending frame index to receiver " << arg << std::endl; #endif @@ -7809,7 +7805,7 @@ int slsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){ if(!getFromReceiver) return retval; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending read frequency to receiver " << arg << std::endl; #endif @@ -7838,7 +7834,7 @@ int slsDetector::setReceiverReadTimer(int time_in_ms){ int arg = time_in_ms; int retval = -1; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending read timer to receiver " << arg << std::endl; #endif @@ -7866,7 +7862,7 @@ int slsDetector::enableDataStreamingFromReceiver(int enable){ int arg = enable; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "***************Sending Data Streaming in Receiver " << arg << std::endl; #endif @@ -7895,7 +7891,7 @@ int slsDetector::enableReceiverCompression(int i){ int retval=-1; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Getting/Enabling/Disabling Receiver Compression with argument " << i << std::endl; #endif @@ -7917,7 +7913,7 @@ void slsDetector::setDetectorHostname(){ char retval[MAX_STR_LENGTH]=""; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Sending detector hostname to Receiver " << thisDetector->hostname << std::endl; #endif @@ -7966,7 +7962,7 @@ int slsDetector::enableTenGigabitEthernet(int i){ if(configureMAC() != FAIL){ ret = FAIL; retval=-1; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE std::cout << "Enabling / Disabling 10Gbe in receiver: " << i << std::endl; #endif @@ -7994,7 +7990,7 @@ int slsDetector::setReceiverFifoDepth(int i){ int retval=-1; - if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ + if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ #ifdef VERBOSE if(i ==-1) std::cout<< "Getting Receiver Fifo Depth" << endl; @@ -8029,7 +8025,7 @@ int slsDetector::setCTBPattern(string fname) { char retval[MAX_STR_LENGTH]=""; -// if(setReceiverOnline(ONLINE_FLAG)==ONLINE_FLAG){ +// if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){ // #ifdef VERBOSE // std::cout << "Sending detector hostname to Receiver " << thisDetector->hostname << std::endl; // #endif diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index 3c62d302e..7631f939e 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -1233,12 +1233,13 @@ string slsDetectorCommand::cmdAcquire(int narg, char *args[], int action) { myDet->setOnline(ONLINE_FLAG); + myDet->setReceiverOnline(ONLINE_FLAG); if(myDet->acquire() == FAIL) return string("acquire unsuccessful"); if(myDet->setReceiverOnline()==ONLINE_FLAG){ char answer[100]; - sprintf(answer,"\n%d",myDet->getFramesCaughtByReceiver()); + sprintf(answer,"\nAcquired %d",myDet->getFramesCaughtByReceiver()); return string(answer); } @@ -1277,6 +1278,7 @@ string slsDetectorCommand::cmdData(int narg, char *args[], int action) { b=myDet->setThreadedProcessing(-1); myDet->setThreadedProcessing(0); myDet->setOnline(ONLINE_FLAG); + myDet->setReceiverOnline(ONLINE_FLAG); myDet->readAll(); //processdata in receiver is useful only for gui purposes if(myDet->setReceiverOnline()==OFFLINE_FLAG) @@ -1311,6 +1313,7 @@ string slsDetectorCommand::cmdFrame(int narg, char *args[], int action) { b=myDet->setThreadedProcessing(-1); myDet->setThreadedProcessing(0); myDet->setOnline(ONLINE_FLAG); + myDet->setReceiverOnline(ONLINE_FLAG); myDet->readFrame(); //processdata in receiver is useful only for gui purposes if(myDet->setReceiverOnline()==OFFLINE_FLAG) @@ -1719,6 +1722,7 @@ string slsDetectorCommand::cmdExitServer(int narg, char *args[], int action){ return string("Error closing server\n"); } else if (cmd=="exitreceiver"){ + myDet->setReceiverOnline(ONLINE_FLAG); if(myDet->exitReceiver()!=OK) return string("Receiver shut down\n"); else @@ -1840,6 +1844,7 @@ string slsDetectorCommand::helpTrimEn(int narg, char *args[], int action) { string slsDetectorCommand::cmdOutDir(int narg, char *args[], int action){ + myDet->setReceiverOnline(ONLINE_FLAG); if (action==HELP_ACTION) return helpOutDir(narg, args, action); @@ -1864,6 +1869,7 @@ string slsDetectorCommand::helpOutDir(int narg, char *args[], int action){ string slsDetectorCommand::cmdFileName(int narg, char *args[], int action){ + myDet->setReceiverOnline(ONLINE_FLAG); if (action==HELP_ACTION) return helpFileName(narg, args, action); if (cmd=="fname") { @@ -1893,7 +1899,7 @@ string slsDetectorCommand::cmdEnablefwrite(int narg, char *args[], int action){ int i; char ans[100]; - + myDet->setReceiverOnline(ONLINE_FLAG); if (action==HELP_ACTION) { return helpEnablefwrite(narg, args, action); } @@ -1925,7 +1931,7 @@ string slsDetectorCommand::cmdOverwrite(int narg, char *args[], int action){ int i; char ans[100]; - + myDet->setReceiverOnline(ONLINE_FLAG); if (action==HELP_ACTION) { return helpOverwrite(narg, args, action); } @@ -1957,7 +1963,7 @@ string slsDetectorCommand::helpOverwrite(int narg, char *args[], int action){ string slsDetectorCommand::cmdFileIndex(int narg, char *args[], int action){ char ans[100]; int i; - + myDet->setReceiverOnline(ONLINE_FLAG); if (action==HELP_ACTION) { return helpFileName(narg, args, action); } @@ -2070,6 +2076,8 @@ string slsDetectorCommand::cmdRateCorr(int narg, char *args[], int action){ double fval; char answer[1000]; + myDet->setOnline(ONLINE_FLAG); + if (action==PUT_ACTION) { sscanf(args[1],"%lf",&fval); myDet->setRateCorrection(fval); @@ -2767,6 +2775,7 @@ string slsDetectorCommand::cmdNetworkParameter(int narg, char *args[], int actio return helpNetworkParameter(narg,args,action); myDet->setOnline(ONLINE_FLAG); + myDet->setReceiverOnline(ONLINE_FLAG); if (cmd=="detectormac") { t=DETECTOR_MAC; @@ -2936,6 +2945,7 @@ string slsDetectorCommand::cmdLock(int narg, char *args[], int action) { else if(cmd=="r_lock"){ + myDet->setReceiverOnline(ONLINE_FLAG); if (action==PUT_ACTION) { if (sscanf(args[1],"%d",&val)) myDet->lockReceiver(val); @@ -2986,8 +2996,10 @@ string slsDetectorCommand::cmdLastClient(int narg, char *args[], int action) { return myDet->getLastClientIP(); } - else if(cmd=="r_lastclient") + else if(cmd=="r_lastclient"){ + myDet->setReceiverOnline(ONLINE_FLAG); return myDet->getReceiverLastClientIP(); + } return string("cannot decode command"); } @@ -3033,6 +3045,7 @@ string slsDetectorCommand::cmdOnline(int narg, char *args[], int action) { } else if(cmd=="activate"){ myDet->setOnline(ONLINE_FLAG); + myDet->setReceiverOnline(ONLINE_FLAG); if (action==PUT_ACTION) { if (!sscanf(args[1],"%d",&ival)) return string("Could not scan activate mode ")+string(args[1]); @@ -3054,11 +3067,12 @@ string slsDetectorCommand::cmdOnline(int narg, char *args[], int action) { else{ if (action==PUT_ACTION) return string("cannot set"); + myDet->setReceiverOnline(ONLINE_FLAG); strcpy(ans,myDet->checkReceiverOnline().c_str()); if(!strlen(ans)) strcpy(ans,"All receiver online"); else - strcat(ans," :Not receiver online"); + strcat(ans," :Not all receiver online"); } return ans; @@ -3095,6 +3109,7 @@ string slsDetectorCommand::cmdConfigureMac(int narg, char *args[], int action) { if (action==PUT_ACTION){ myDet->setOnline(ONLINE_FLAG); + myDet->setReceiverOnline(ONLINE_FLAG); ret=myDet->configureMAC(); } else @@ -3165,6 +3180,7 @@ string slsDetectorCommand::cmdDetectorSize(int narg, char *args[], int action) { } else if (cmd=="maxmod") { ret=myDet->getMaxNumberOfModules(); } else if (cmd=="dr") { + myDet->setReceiverOnline(ONLINE_FLAG); ret=myDet->setDynamicRange(val); } else if (cmd=="roi") { myDet->getROI(ret); @@ -3404,6 +3420,7 @@ string slsDetectorCommand::cmdSN(int narg, char *args[], int action) { } if (cmd=="receiverversion") { + myDet->setReceiverOnline(ONLINE_FLAG); sprintf(answer,"%llx",myDet->getId(RECEIVER_VERSION)); return string(answer); } @@ -4082,6 +4099,7 @@ string slsDetectorCommand::cmdTimer(int narg, char *args[], int action) { myDet->setOnline(ONLINE_FLAG); + myDet->setReceiverOnline(ONLINE_FLAG); ret=myDet->setTimer(index,t); if (index==ACQUISITION_TIME || index==SUBFRAME_ACQUISITION_TIME || index==FRAME_PERIOD || index==DELAY_AFTER_TRIGGER) @@ -4509,10 +4527,12 @@ string slsDetectorCommand::cmdConfiguration(int narg, char *args[], int action) } return sval; } else if (cmd=="rx_printconfig"){ + myDet->setReceiverOnline(ONLINE_FLAG); if (action==PUT_ACTION) return string("cannot put"); return string(""+myDet->printReceiverConfiguration()); }else if (cmd=="parameters") { + myDet->setReceiverOnline(ONLINE_FLAG); if (action==PUT_ACTION) { sval=string(args[1]); myDet->retrieveDetectorSetup(sval); @@ -4522,6 +4542,7 @@ string slsDetectorCommand::cmdConfiguration(int narg, char *args[], int action) } return sval; } else if (cmd=="setup") { + myDet->setReceiverOnline(ONLINE_FLAG); if (action==PUT_ACTION) { sval=string(args[1]); myDet->retrieveDetectorSetup(sval,2); @@ -4576,6 +4597,7 @@ string slsDetectorCommand::cmdReceiver(int narg, char *args[], int action) { myDet->setOnline(ONLINE_FLAG); + myDet->setReceiverOnline(ONLINE_FLAG); if(cmd=="receiver"){ if (action==PUT_ACTION) { diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index 7c3b13a6d..30e6ce385 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -286,12 +286,6 @@ int slsDetectorUtils::acquire(int delflag){ //send receiver file name pthread_mutex_lock(&mg); setFileName(fileIO::getFileName()); - if(setReceiverOnline()==OFFLINE_FLAG){ - stopReceiver(); - *stoppedFlag=1; - pthread_mutex_unlock(&mg); - break; - } //start receiver if(startReceiver() == FAIL) { stopReceiver(); @@ -349,6 +343,12 @@ int slsDetectorUtils::acquire(int delflag){ } //online else{ + if(setReceiverOnline(ONLINE_FLAG)!=ONLINE_FLAG){ + stopAcquisition(); + stopReceiver(); + pthread_mutex_unlock(&mg); + break; + } stopReceiver(); // cout<<"***********receiver stopped"< Date: Fri, 25 Nov 2016 12:22:00 +0100 Subject: [PATCH 14/22] smaller changes to make arguments const --- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp | 4 ++-- slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h | 4 ++-- slsDetectorSoftware/slsDetector/slsDetector.cpp | 1 + slsDetectorSoftware/slsDetector/slsDetector.h | 2 +- slsDetectorSoftware/slsDetector/slsDetectorUtils.h | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 40498e5d5..3b77c1085 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5034,7 +5034,7 @@ int multiSlsDetector::resetFramesCaught() { -int multiSlsDetector::createReceivingDataSockets(bool destroy){ +int multiSlsDetector::createReceivingDataSockets(const bool destroy){ //number of sockets int numSockets = thisMultiDetector->numberOfDetectors; @@ -5108,7 +5108,7 @@ int multiSlsDetector::createReceivingDataSockets(bool destroy){ -int multiSlsDetector::getData(int isocket, bool masking, int* image, int size, int &acqIndex, int &frameIndex, int &subframeIndex, string &filename){ +int multiSlsDetector::getData(const int isocket, const bool masking, int* image, const int size, int &acqIndex, int &frameIndex, int &subframeIndex, string &filename){ zmq_msg_t message; diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h index 1cc895fa5..981dd4732 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h @@ -1200,7 +1200,7 @@ class multiSlsDetector : public slsDetectorUtils { * @param destroy is true to destroy all the sockets * @return OK or FAIL */ - int createReceivingDataSockets(bool destroy = false); + int createReceivingDataSockets(const bool destroy = false); @@ -1396,7 +1396,7 @@ private: /** * Gets data from socket */ - int getData(int isocket, bool masking, int* image, int size, int &acqIndex, int &frameIndex, int &subframeIndex, string &filename); + int getData(const int isocket, const bool masking, int* image, const int size, int &acqIndex, int &frameIndex, int &subframeIndex, string &filename); /** Ensures if sockets created successfully */ bool dataSocketsStarted; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index e5b0d877c..04e7a8060 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -5599,6 +5599,7 @@ char* slsDetector::setReceiver(string receiverIP){ setTimer(FRAME_PERIOD,thisDetector->timerValue[FRAME_PERIOD]); setTimer(FRAME_NUMBER,thisDetector->timerValue[FRAME_NUMBER]); + setTimer(ACQUISITION_TIME,thisDetector->timerValue[ACQUISITION_TIME]); setDynamicRange(thisDetector->dynamicRange); if(thisDetector->myDetectorType == EIGER) activate(-1); diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 508b28000..7f09daa71 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -1590,7 +1590,7 @@ class slsDetector : public slsDetectorUtils, public energyConversion { * @param destroy is true to destroy all the sockets * @return OK or FAIL */ - int createReceivingDataSockets(bool destroy = false){return 0;}; + int createReceivingDataSockets(const bool destroy = false){return 0;}; /** Reads frames from receiver through a constant socket diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index 18ec00524..791bbc816 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -660,7 +660,7 @@ virtual int resetFramesCaught()=0; * @param destroy is true to destroy all the sockets * @return OK or FAIL */ -virtual int createReceivingDataSockets(bool destroy = false)=0; +virtual int createReceivingDataSockets(const bool destroy = false)=0; /** Reads frames from receiver through a constant socket From 466f1506a55924f472217abb9367187cbf7e0218 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 30 Nov 2016 10:36:34 +0100 Subject: [PATCH 15/22] bottom is defined as flippeddatax in config file, not anymore as argument for receiver --- slsDetectorSoftware/commonFiles/error_defs.h | 4 ++ ....0.16.3 => eigerDetectorServerv2.2.0.16.4} | Bin 281889 -> 281889 bytes .../slsDetectorFunctionList.c | 4 ++ .../multiSlsDetector/multiSlsDetector.cpp | 37 +++++++++++- .../multiSlsDetector/multiSlsDetector.h | 14 +++++ .../slsDetector/slsDetector.cpp | 55 +++++++++++++++++- slsDetectorSoftware/slsDetector/slsDetector.h | 26 +++++---- .../slsDetector/slsDetectorCommand.cpp | 44 ++++++++++++-- .../slsDetector/slsDetectorUtils.h | 17 +++++- 9 files changed, 179 insertions(+), 22 deletions(-) rename slsDetectorSoftware/eigerDetectorServer/bin/{eigerDetectorServerv2.2.0.16.3 => eigerDetectorServerv2.2.0.16.4} (75%) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 6d00e1ef0..7020f9f5b 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -75,6 +75,7 @@ using namespace std; #define POWER_CHIP 0x0000000004000000ULL #define RECEIVER_READ_TIMER 0x0000000008000000ULL #define RECEIVER_ACQ_TIME_NOT_SET 0x0000000010000000ULL +#define RECEIVER_FLIPPED_DATA_NOT_SET 0x0000000020000000ULL // 0x00000000FFFFFFFFULL /** @short class returning all error messages for error mask */ @@ -232,6 +233,9 @@ public: if(slsErrorMask&RECEIVER_READ_TIMER) retval.append("Could not set receiver read timer\n"); + if(slsErrorMask&RECEIVER_FLIPPED_DATA_NOT_SET) + retval.append("Could not set receiver flipped data/bottom\n"); + //------------------------------------------------------ length of message diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.3 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.4 similarity index 75% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.3 rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.4 index b6f4f48d77a3e3825e995892b0928c3bbadb7d85..49d7761c5803dac50856481c851f67f494a5ced9 100755 GIT binary patch delta 19751 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 B!Jz;E delta 19457 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 MaYsg|`Gdj#1L4B%?f?J) diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index b6976a439..cb541697b 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -1120,6 +1120,8 @@ int configureMAC(int ipad, long long int macad, long long int detectormacadd, in int beb_num = BEB_NUM;//Feb_Control_GetModuleNumber(); int header_number = 0; int dst_port = udpport; + if(!top) + dst_port = udpport2; printf("dst_port:%d\n\n",dst_port); @@ -1133,6 +1135,8 @@ int configureMAC(int ipad, long long int macad, long long int detectormacadd, in header_number = 32; dst_port = udpport2; + if(!top) + dst_port = udpport; printf("dst_port:%d\n\n",dst_port); /*for(i=0;i<32;i++){*//** modified for Aldo*/ diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 3b77c1085..62513113d 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -3794,6 +3794,20 @@ int multiSlsDetector::getMaxNumberOfModules(dimension d) { } + +int multiSlsDetector::getFlippedData(dimension d){ + int ret=-100,ret1; + for (int idet=0; idetnumberOfDetectors; idet++) + if (detectors[idet]){ + ret1=detectors[idet]->getFlippedData(d); + if(ret==-100) + ret=ret1; + else if (ret!=ret1) + ret=-1; + } + return ret; +} + int multiSlsDetector::setNumberOfModules(int p, dimension d) { int ret=0;//, ret1; @@ -3833,6 +3847,24 @@ int multiSlsDetector::setNumberOfModules(int p, dimension d) { } + + +int multiSlsDetector::setFlippedData(dimension d, int value){ + int ret=-100,ret1; + for (int idet=0; idetnumberOfDetectors; idet++) + if (detectors[idet]){ + ret1=detectors[idet]->setFlippedData(d,value); + if(ret==-100) + ret=ret1; + else if (ret!=ret1) + ret=-1; + } + return ret; +} + + + + int multiSlsDetector::decodeNMod(int i, int &id, int &im) { #ifdef VERBOSE cout << " Module " << i << " belongs to detector " << id << endl;; @@ -5240,6 +5272,7 @@ void multiSlsDetector::readFrameFromReceiver(){ ny = getTotalNumberOfChannels(slsDetectorDefs::Y); //calculating offsets (for eiger interleaving ports) int offsetX[numSockets]; int offsetY[numSockets]; + bool bottom[numSockets]; if(maxX){ for(int i=0; ioffsetY[i/numSocketsPerSLSDetector] + slsmaxY)) * maxX * bytesperchannel; @@ -5249,6 +5282,7 @@ void multiSlsDetector::readFrameFromReceiver(){ else offsetX[i] = thisMultiDetector->offsetX[i/numSocketsPerSLSDetector] + (slsmaxX/numSocketsPerSLSDetector); offsetX[i] *= bytesperchannel; + bottom[i] = detectors[i/numSocketsPerSLSDetector]->getFlippedData(X);/*only for eiger*/ } } @@ -5286,7 +5320,8 @@ void multiSlsDetector::readFrameFromReceiver(){ if(maxX){ //bottom - if((((isocket/numSocketsPerSLSDetector)+1)%2) == 0){ + if(bottom[isocket]){ + //if((((isocket/numSocketsPerSLSDetector)+1)%2) == 0){ for(int i=0;imaxNumberOfChannelsPerDetector[d];}; + /** returns the enable if data will be flipped across x or y axis + * \param d axis across which data is flipped + * returns 1 or 0 + */ + int getFlippedData(dimension d=X); + int setMaxNumberOfChannelsPerDetector(dimension d,int i){thisMultiDetector->maxNumberOfChannelsPerDetector[d]=i; return thisMultiDetector->maxNumberOfChannelsPerDetector[d];}; double getScanStep(int index, int istep){return thisMultiDetector->scanSteps[index][istep];}; @@ -979,6 +985,14 @@ class multiSlsDetector : public slsDetectorUtils { int configureMAC(); int setNumberOfModules(int i=-1, dimension d=X); + + /** sets the enable which determines if data will be flipped across x or y axis + * \param d axis across which data is flipped + * \param value 0 or 1 to reset/set or -1 to get value + * \return enable flipped data across x or y axis + */ + int setFlippedData(dimension d=X, int value=-1); + int getMaxNumberOfModules(dimension d=X); int setDynamicRange(int i=-1); diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 04e7a8060..46cfe99bf 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -1826,6 +1826,57 @@ int slsDetector::getMaxNumberOfModules(dimension d){ + + +int slsDetector::setFlippedData(dimension d, int value){ + int retval=-1; + int fnum=F_SET_FLIPPED_DATA_RECEIVER; + int ret=FAIL; + char mess[MAX_STR_LENGTH]=""; + int args[2]={X,-1}; + + + if(thisDetector->myDetectorType!= EIGER){ + std::cout << "Flipped Data is not implemented in this detector" << std::endl; + setErrorMask((getErrorMask())|(RECEIVER_FLIPPED_DATA_NOT_SET)); + return -1; + } + +#ifdef VERBOSE + std::cout << std::endl; + std::cout << "Setting/Getting flipped data across axis " << d <<" with value " << value << std::endl; +#endif + if(value > -1){ + thisDetector->flippedData[d] = value; + args[1] = value; + }else + args[1] = thisDetector->flippedData[d]; + + args[0] = d; + + if (thisDetector->receiverOnlineFlag==ONLINE_FLAG) { + if (connectData() == OK){ + ret=thisReceiver->sendIntArray(fnum,retval,args); + + disconnectData(); + } + + if((args[1] != retval && args[1]>=0) || (ret==FAIL)){ + ret = FAIL; + setErrorMask((getErrorMask())|(RECEIVER_FLIPPED_DATA_NOT_SET)); + } + + if(ret==FORCE_UPDATE) + updateReceiver(); + } + + + return thisDetector->flippedData[d]; +} + + + + /* This function is used to set the polarity and meaning of the digital I/O signals (signal index) @@ -5601,8 +5652,10 @@ char* slsDetector::setReceiver(string receiverIP){ setTimer(FRAME_NUMBER,thisDetector->timerValue[FRAME_NUMBER]); setTimer(ACQUISITION_TIME,thisDetector->timerValue[ACQUISITION_TIME]); setDynamicRange(thisDetector->dynamicRange); - if(thisDetector->myDetectorType == EIGER) + if(thisDetector->myDetectorType == EIGER){ + setFlippedData(X,-1); activate(-1); + } //std::cout << "***********************************dataStreaming:" << parentDet->enableDataStreamingFromReceiver(-1) << endl << endl; //parentDet->enableDataStreamingFromReceiver(parentDet->enableDataStreamingFromReceiver(-1)); //set scan tag diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 7f09daa71..9c861e179 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -267,6 +267,8 @@ class slsDetector : public slsDetectorUtils, public energyConversion { /** flag for acquiring */ bool acquiringFlag; + /** flipped data across x or y axis */ + bool flippedData[2]; } sharedSlsDetector; @@ -657,6 +659,12 @@ class slsDetector : public slsDetectorUtils, public energyConversion { int getMaxNumberOfChannels(dimension d){return thisDetector->nChan[d]*thisDetector->nChip[d]*thisDetector->nModMax[d];}; + /** returns the enable if data will be flipped across x or y axis + * \param d axis across which data is flipped + * returns 1 or 0 + */ + int getFlippedData(dimension d=X){return thisDetector->flippedData[d];}; + /** Returns number of rois */ int getNRoi(){return thisDetector->nROI;}; @@ -722,6 +730,12 @@ class slsDetector : public slsDetectorUtils, public energyConversion { int setNumberOfModules(int n=GET_FLAG, dimension d=X); // if n=GET_FLAG returns the number of installed modules + /** sets the enable which determines if data will be flipped across x or y axis + * \param d axis across which data is flipped + * \param value 0 or 1 to reset/set or -1 to get value + * \return enable flipped data across x or y axis + */ + int setFlippedData(dimension d=X, int value=-1); /* @@ -1585,18 +1599,6 @@ class slsDetector : public slsDetectorUtils, public energyConversion { */ int resetFramesCaught(); - /** - * Create Receiving Data Sockets - * @param destroy is true to destroy all the sockets - * @return OK or FAIL - */ - int createReceivingDataSockets(const bool destroy = false){return 0;}; - - - /** Reads frames from receiver through a constant socket - */ - void readFrameFromReceiver(){}; - /** Locks/Unlocks the connection to the receiver /param lock sets (1), usets (0), gets (-1) the lock /returns lock status of the receiver diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index 7631f939e..39fefe1a7 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -432,7 +432,13 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdDetectorSize; i++; + descrToFuncMap[i].m_pFuncName="flippeddatax"; // + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdDetectorSize; + i++; + descrToFuncMap[i].m_pFuncName="flippeddatay"; // + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdDetectorSize; + i++; /* flags */ @@ -3136,7 +3142,7 @@ string slsDetectorCommand::cmdDetectorSize(int narg, char *args[], int action) { if (action==HELP_ACTION) return helpDetectorSize(narg,args,action); int ret, val=-1, pos=-1,i; - char ans[1000], temp[100]; + char ans[1000]; myDet->setOnline(ONLINE_FLAG); @@ -3173,6 +3179,21 @@ string slsDetectorCommand::cmdDetectorSize(int narg, char *args[], int action) { myDet->setMaxNumberOfChannelsPerDetector(Y,val); } + if(cmd=="flippeddatax"){ + if ((!sscanf(args[1],"%d",&val)) || (val!=0 && val != 1)) + return string ("cannot scan flippeddata x mode: must be 0 or 1"); + myDet->setReceiverOnline(ONLINE_FLAG); + myDet->setFlippedData(X,val); + } + + if(cmd=="flippeddatay"){ + return string("Not required for this detector\n"); + if ((!sscanf(args[1],"%d",&val)) || (val!=0 && val != 1)) + return string ("cannot scan flippeddata y mode: must be 0 or 1"); + myDet->setReceiverOnline(ONLINE_FLAG); + myDet->setFlippedData(Y,val); + } + } if (cmd=="nmod" || cmd=="roimask") { @@ -3185,10 +3206,18 @@ string slsDetectorCommand::cmdDetectorSize(int narg, char *args[], int action) { } else if (cmd=="roi") { myDet->getROI(ret); } else if (cmd=="detsizechan") { - sprintf(ans,"%d",myDet->getMaxNumberOfChannelsPerDetector(X)); - sprintf(temp,"%d",myDet->getMaxNumberOfChannelsPerDetector(Y)); - strcat(ans," "); - strcat(ans,temp); + sprintf(ans,"%d %d",myDet->getMaxNumberOfChannelsPerDetector(X),myDet->getMaxNumberOfChannelsPerDetector(Y)); + return string(ans); + } + else if(cmd=="flippeddatax"){ + myDet->setReceiverOnline(ONLINE_FLAG); + sprintf(ans,"%d",myDet->getFlippedData(X)); + return string(ans); + } + else if(cmd=="flippeddatay"){ + return string("Not required for this detector\n"); + myDet->setReceiverOnline(ONLINE_FLAG); + sprintf(ans,"%d",myDet->getFlippedData(Y)); return string(ans); } else @@ -3212,6 +3241,8 @@ string slsDetectorCommand::helpDetectorSize(int narg, char *args[], int action) os << "dr i \n sets the dynamic range of the detector"<< std::endl; os << "roi i xmin xmax ymin ymax \n sets region of interest where i is number of rois;i=0 to clear rois"<< std::endl; os << "detsizechan x y \n sets the maximum number of channels for complete detector set in both directions; -1 is no limit"<< std::endl; + os << "flippeddatax x \n sets if the data should be flipped on the x axis"<< std::endl; + os << "flippeddatay y \n sets if the data should be flipped on the y axis"<< std::endl; } if (action==GET_ACTION || action==HELP_ACTION) { os << "nmod \n gets the number of modules of the detector"<< std::endl; @@ -3219,7 +3250,8 @@ string slsDetectorCommand::helpDetectorSize(int narg, char *args[], int action) os << "dr \n gets the dynamic range of the detector"<< std::endl; os << "roi \n gets region of interest"<< std::endl; os << "detsizechan \n gets the maximum number of channels for complete detector set in both directions; -1 is no limit"<< std::endl; - + os << "flippeddatax\n gets if the data will be flipped on the x axis respectively"<< std::endl; + os << "flippeddatay\n gets if the data will be flipped on the y axis respectively"<< std::endl; } return os.str(); diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index 791bbc816..e74a8ab7e 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -70,6 +70,13 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing { virtual int setMaxNumberOfChannelsPerDetector(dimension d,int i){return -1;}; + /** sets the enable which determines if data will be flipped across x or y axis + * \param d axis across which data is flipped + * \param value 0 or 1 to reset/set or -1 to get value + * \return enable flipped data across x or y axis + */ + virtual int setFlippedData(dimension d=X, int value=-1)=0; + //int setPositions(int nPos, double *pos){return angularConversion::setPositions(nPos, pos);}; // int getPositions(double *pos=NULL){return angularConversion::getPositions(pos);}; @@ -425,6 +432,12 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing { virtual int getMaxNumberOfChannels()=0; virtual int getMaxNumberOfChannels(dimension d)=0; + /** returns the enable if data will be flipped across x or y axis + * \param d axis across which data is flipped + * returns 1 or 0 + */ + virtual int getFlippedData(dimension d=X)=0; + // virtual int getParameters(); @@ -660,12 +673,12 @@ virtual int resetFramesCaught()=0; * @param destroy is true to destroy all the sockets * @return OK or FAIL */ -virtual int createReceivingDataSockets(const bool destroy = false)=0; +virtual int createReceivingDataSockets(const bool destroy = false){return -1;}; /** Reads frames from receiver through a constant socket */ -virtual void readFrameFromReceiver()=0; +virtual void readFrameFromReceiver(){}; /** Turns off the receiver server! From 790cef37ffcd9c335e06bdfc61e8329740390e9e Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 30 Nov 2016 11:20:16 +0100 Subject: [PATCH 16/22] updaterev --- .../bin/eigerDetectorServerv2.2.0.16.4 | Bin 281889 -> 281889 bytes .../eigerDetectorServer/gitInfo.txt | 8 ++++---- .../eigerDetectorServer/gitInfoEiger.h | 8 ++++---- slsDetectorSoftware/gitInfo.txt | 8 ++++---- .../jungfrauDetectorServer/gitInfo.txt | 8 ++++---- .../jungfrauDetectorServer/gitInfoJungfrau.h | 8 ++++---- slsDetectorSoftware/slsDetector/gitInfoLib.h | 8 ++++---- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.4 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv2.2.0.16.4 index 49d7761c5803dac50856481c851f67f494a5ced9..9eaa0aef85a1e69ee8e27900e83a96298b37354d 100755 GIT binary patch delta 34 pcmZ2DOK{;V!42}y8HFb+JXdBkXm)wt?(&=wh?%y#JZHX}3IO(O4vhc+ delta 34 pcmZ2DOK{;V!42}y8JQ+4JXdBEY<79x?(&=wh?%y#JZHX}3IOt^4qX5M diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt index b3f54a7c3..ca2583820 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: ace333e2bbcde07585c0f0232c653a66eef73b52 -Revision: 261 +Repsitory UUID: 230d6b36e9852214f4ba5ae7c92647f35000b24d +Revision: 263 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1302 -Last Changed Date: 2016-11-11 14:43:55 +0100 +Last Changed Rev: 1313 +Last Changed Date: 2016-11-30 10:36:34 +0100 diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h index 5dc5d46f5..b4ce91247 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "ace333e2bbcde07585c0f0232c653a66eef73b52" -//#define SVNREV 0x1302 +#define SVNREPUUID "230d6b36e9852214f4ba5ae7c92647f35000b24d" +//#define SVNREV 0x1313 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTH "Dhanya_Maliakal" -#define SVNREV 0x1302 -#define SVNDATE 0x20161111 +#define SVNREV 0x1313 +#define SVNDATE 0x20161130 // diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index 760f0563f..e0d45202f 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 128d45884fff3d224a5a7eb387f79f4a32bea3e6 -Revision: 1305 +Repsitory UUID: 230d6b36e9852214f4ba5ae7c92647f35000b24d +Revision: 1313 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1305 -Last Changed Date: 2016-11-14 11:57:29 +0100 +Last Changed Rev: 1313 +Last Changed Date: 2016-11-30 10:36:34 +0100 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt index 28267fca2..c64e4f71a 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/jungfrauDetectorServer Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: 69e9e77d6b5517bc932f2ff4d54386d886ef6c39 -Revision: 53 +Repsitory UUID: 230d6b36e9852214f4ba5ae7c92647f35000b24d +Revision: 56 Branch: developer Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1296 -Last Changed Date: 2016-11-08 15:25:16 +0100 +Last Changed Rev: 1313 +Last Changed Date: 2016-11-30 10:36:34 +0100 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h index 686601243..633eb8933 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/jungfrauDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "69e9e77d6b5517bc932f2ff4d54386d886ef6c39" -//#define SVNREV 0x1296 +#define SVNREPUUID "230d6b36e9852214f4ba5ae7c92647f35000b24d" +//#define SVNREV 0x1313 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTH "Dhanya_Maliakal" -#define SVNREV 0x1296 -#define SVNDATE 0x20161108 +#define SVNREV 0x1313 +#define SVNDATE 0x20161130 // diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index 0b617ba56..a7e8cf690 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "128d45884fff3d224a5a7eb387f79f4a32bea3e6" -//#define SVNREV 0x1305 +#define SVNREPUUIDLIB "230d6b36e9852214f4ba5ae7c92647f35000b24d" +//#define SVNREV 0x1313 //#define SVNKIND "" //#define SVNSCHED "" #define SVNAUTHLIB "Dhanya_Maliakal" -#define SVNREVLIB 0x1305 -#define SVNDATELIB 0x20161114 +#define SVNREVLIB 0x1313 +#define SVNDATELIB 0x20161130 // From dd9387ef292bc52d5255595aa44e40d57cdb3daa Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 2 Dec 2016 08:53:08 +0100 Subject: [PATCH 17/22] using detid to calculte zmq port in case of shmget error and det id does not start with 0 and 1 as in receiver zmq server ports --- .../multiSlsDetector/multiSlsDetector.cpp | 15 +++++++++------ slsDetectorSoftware/slsDetector/slsDetector.cpp | 2 ++ slsDetectorSoftware/slsDetector/slsDetector.h | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 62513113d..c6cc741cf 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5070,9 +5070,11 @@ int multiSlsDetector::createReceivingDataSockets(const bool destroy){ //number of sockets int numSockets = thisMultiDetector->numberOfDetectors; - if(getDetectorsType() == EIGER) - numSockets *= 2; - + int numSocketsPerDetector = 1; + if(getDetectorsType() == EIGER){ + numSocketsPerDetector = 2; + } + numSockets *= numSocketsPerDetector; if(destroy){ cprintf(MAGENTA,"Going to destroy data sockets\n"); @@ -5099,7 +5101,7 @@ int multiSlsDetector::createReceivingDataSockets(const bool destroy){ //get name of rx_hostname char rx_hostname[100]; strcpy(dataSocketServerDetails[i],"tcp://"); - strcpy(rx_hostname, detectors[i/numSockets]->getReceiver()); + strcpy(rx_hostname, detectors[i/numSocketsPerDetector]->getReceiver()); cout<<"rx_hostname:"<h_addr)); } //add port - sprintf(dataSocketServerDetails[i],"%s:%d",dataSocketServerDetails[i],DEFAULT_ZMQ_PORTNO + i); + sprintf(dataSocketServerDetails[i],"%s:%d",dataSocketServerDetails[i],DEFAULT_ZMQ_PORTNO + + (detectors[i/numSocketsPerDetector]->getDetectorId())*numSocketsPerDetector + (i%numSocketsPerDetector));//using this instead of i in the offchance, detid doesnt start at 0 (shmget error) //create context context[i] = zmq_ctx_new(); @@ -5272,7 +5275,7 @@ void multiSlsDetector::readFrameFromReceiver(){ ny = getTotalNumberOfChannels(slsDetectorDefs::Y); //calculating offsets (for eiger interleaving ports) int offsetX[numSockets]; int offsetY[numSockets]; - bool bottom[numSockets]; + int bottom[numSockets]; if(maxX){ for(int i=0; ioffsetY[i/numSocketsPerSLSDetector] + slsmaxY)) * maxX * bytesperchannel; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 46cfe99bf..1983e54c7 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -754,6 +754,8 @@ int slsDetector::initializeDetectorSize(detectorType type) { thisDetector->tenGigaEnable=0; thisDetector->acquiringFlag = false; + thisDetector->flippedData[0] = 0; + thisDetector->flippedData[1] = 0; for (int ia=0; iaactionScript[ia],"none"); diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 9c861e179..4f332907d 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -268,7 +268,7 @@ class slsDetector : public slsDetectorUtils, public energyConversion { /** flag for acquiring */ bool acquiringFlag; /** flipped data across x or y axis */ - bool flippedData[2]; + int flippedData[2]; } sharedSlsDetector; From a67f9d50de1e01f9057e849211d6630c2fd19aa2 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 2 Dec 2016 12:47:01 +0100 Subject: [PATCH 18/22] removed the allocating of memory for eiger and jungfrau to receive data via tcp from detector as this will not happen --- .../multiSlsDetector/multiSlsDetector.cpp | 39 +++++++++++-------- .../slsDetector/slsDetector.cpp | 29 +++++++------- 2 files changed, 38 insertions(+), 30 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index c6cc741cf..8642b1af2 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -1420,40 +1420,45 @@ int multiSlsDetector::startReadOut(){ int* multiSlsDetector::getDataFromDetector() { int nel=thisMultiDetector->dataBytes/sizeof(int); - int n; - int* retval=new int[nel]; + int n = 0; + int* retval= NULL; int *retdet, *p=retval; - int nodata=1, nodatadet=-1;; + int nodata=1, nodatadet=-1; + int nodatadetectortype = false; + detectorType types = getDetectorsType(); + if(types == EIGER || types == JUNGFRAU){ + nodatadetectortype = true; + } + + if(!nodatadetectortype) + retval=new int[nel]; for (int id=0; idnumberOfDetectors; id++) { if (detectors[id]) { retdet=detectors[id]->getDataFromDetector(p); - n=detectors[id]->getDataBytes(); if(detectors[id]->getErrorMask()) setErrorMask(getErrorMask()|(1<getDataBytes(); + if (retdet) { + nodata=0; #ifdef VERBOSE - cout << "Detector " << id << " returned " << n << " bytes " << endl; + cout << "Detector " << id << " returned " << n << " bytes " << endl; #endif - } else { - nodatadet=id; + } else { + nodatadet=id; #ifdef VERBOSE - cout << "Detector " << id << " does not have data left " << endl; + cout << "Detector " << id << " does not have data left " << endl; #endif - /*if((detectors[id]->getDetectorsType() != EIGER)||(detectors[id]->getDetectorsType() != JUNGFRAU)) - break;*/ + } + p+=n/sizeof(int); } - p+=n/sizeof(int); } } //eiger returns only null - detectorType types = getDetectorsType(); - if(types == EIGER || types == JUNGFRAU){ - delete [] retval; + if(nodatadetectortype){ return NULL; } diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 1983e54c7..7e3f049ad 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -3807,19 +3807,21 @@ int* slsDetector::readFrame(){ int* slsDetector::getDataFromDetector(int *retval){ - int nel=thisDetector->dataBytes/sizeof(int); - int n; - - int *r=retval; - - - // int* retval=new int[nel]; - - if (retval==NULL) - retval=new int[nel]; - int ret=FAIL; char mess[MAX_STR_LENGTH]="Nothing"; + int nel=thisDetector->dataBytes/sizeof(int); + int n; + int *r=retval; + + int nodatadetectortype = false; + detectorType types = getDetectorsType(); + if(types == EIGER || types == JUNGFRAU){ + nodatadetectortype = true; + } + + if (!nodatadetectortype && retval==NULL) + retval=new int[nel]; + #ifdef VERBOSE std::cout<< "getting data "<< thisDetector->dataBytes << " " << nel<< std::endl; @@ -3841,11 +3843,12 @@ int* slsDetector::getDataFromDetector(int *retval){ std::cout<< "Detector successfully returned: " << mess << " " << n << std::endl; #endif } - if (r==NULL) { + if ((!nodatadetectortype) && (r==NULL)){ delete [] retval; } return NULL; - } else { + } else if (!nodatadetectortype){ + n=controlSocket->ReceiveDataOnly(retval,thisDetector->dataBytes); #ifdef VERBOSE From 2a508435c77b5d7a37bdfb0e53cfb6cf181b5369 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 13 Dec 2016 11:41:27 +0100 Subject: [PATCH 19/22] change the filenaming according to det position and not det id --- .../multiSlsDetector/multiSlsDetector.cpp | 12 ++++++------ slsDetectorSoftware/slsDetector/slsDetector.cpp | 13 ++++++++----- slsDetectorSoftware/slsDetector/slsDetector.h | 14 +++++++++++--- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 8642b1af2..7456c8408 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -251,7 +251,7 @@ multiSlsDetector::multiSlsDetector(int id) : slsDetectorUtils(), shmId(-1) #ifdef VERBOSE cout << thisMultiDetector->detectorIds[i] << endl; #endif - detectors[i]=new slsDetector(thisMultiDetector->detectorIds[i], this); + detectors[i]=new slsDetector(i, thisMultiDetector->detectorIds[i], this); // setAngularConversionPointer(detectors[i]->getAngularConversionPointer(),detectors[i]->getNModsPointer(),detectors[i]->getNChans()*detectors[i]->getNChips(), i); @@ -372,7 +372,7 @@ int multiSlsDetector::addSlsDetector(int id, int pos) { cout << "Creating new detector " << pos << endl; #endif - detectors[pos]=new slsDetector(id, this); + detectors[pos]=new slsDetector(pos, id, this); thisMultiDetector->detectorIds[pos]=detectors[pos]->getDetectorId(); thisMultiDetector->numberOfDetectors++; @@ -687,7 +687,7 @@ int multiSlsDetector::addSlsDetector(const char *name, int pos) { #ifdef VERBOSE cout << "Detector " << id << " already exists" << endl; #endif - s=new slsDetector(id, this); + s=new slsDetector(pos, id, this); if (s->getHostname()==string(name)) break; delete s; @@ -728,7 +728,7 @@ int multiSlsDetector::addSlsDetector(const char *name, int pos) { #ifdef VERBOSE cout << "Creating detector " << id << " of type " << getDetectorType(t) << endl; #endif - s=new slsDetector(t, id, this); + s=new slsDetector(pos, t, id, this); if (online) { s->setTCPSocket(name); setOnline(ONLINE_FLAG); @@ -761,7 +761,7 @@ int multiSlsDetector::addSlsDetector(detectorType t, int pos) { #ifdef VERBOSE cout << "Creating detector " << id << " of type " << getDetectorType(t) << endl; #endif - slsDetector *s=new slsDetector(t, id, this); + slsDetector *s=new slsDetector(pos, t, id, this); s=NULL; #ifdef VERBOSE cout << "Adding it to the multi detector structure" << endl; @@ -5122,7 +5122,7 @@ int multiSlsDetector::createReceivingDataSockets(const bool destroy){ } //add port sprintf(dataSocketServerDetails[i],"%s:%d",dataSocketServerDetails[i],DEFAULT_ZMQ_PORTNO + - (detectors[i/numSocketsPerDetector]->getDetectorId())*numSocketsPerDetector + (i%numSocketsPerDetector));//using this instead of i in the offchance, detid doesnt start at 0 (shmget error) + (i/numSocketsPerDetector)*numSocketsPerDetector + (i%numSocketsPerDetector));//using this instead of i in the offchance, detid doesnt start at 0 (shmget error) //create context context[i] = zmq_ctx_new(); diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 7e3f049ad..4bd7cd9db 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -152,9 +152,10 @@ int slsDetector::freeSharedMemory() { -slsDetector::slsDetector(int id,multiSlsDetector *p) :slsDetectorUtils(), +slsDetector::slsDetector(int pos, int id, multiSlsDetector *p) :slsDetectorUtils(), thisDetector(NULL), detId(id), + posId(pos), parentDet(p), shmId(-1), controlSocket(NULL), @@ -204,9 +205,10 @@ slsDetector::slsDetector(int id,multiSlsDetector *p) :slsDetectorUtils(), -slsDetector::slsDetector(detectorType type, int id,multiSlsDetector *p): slsDetectorUtils(), +slsDetector::slsDetector(int pos, detectorType type, int id, multiSlsDetector *p): slsDetectorUtils(), thisDetector(NULL), detId(id), + posId(pos), parentDet(p), shmId(-1), controlSocket(NULL), @@ -260,9 +262,10 @@ slsDetector::~slsDetector(){ delete thisReceiver; }; -slsDetector::slsDetector(char *name, int id, int cport,multiSlsDetector *p) : slsDetectorUtils(), +slsDetector::slsDetector(int pos, char *name, int id, int cport,multiSlsDetector *p) : slsDetectorUtils(), thisDetector(NULL), detId(id), + posId(pos), parentDet(p), shmId(-1), controlSocket(NULL), @@ -7256,9 +7259,9 @@ string slsDetector::setFileName(string s) { pthread_mutex_lock(&ms); fileIO::setFileName(s); if(thisDetector->myDetectorType == EIGER) - parentDet->setDetectorIndex(detId); + parentDet->setDetectorIndex(posId); else if(parentDet->getNumberOfDetectors()>1) - parentDet->setDetectorIndex(detId); + parentDet->setDetectorIndex(posId); s=parentDet->createReceiverFilePrefix(); pthread_mutex_unlock(&ms); } diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index 4f332907d..5602758b6 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -297,20 +297,22 @@ class slsDetector : public slsDetectorUtils, public energyConversion { /** (default) constructor \param type is needed to define the size of the detector shared memory 9defaults to GENERIC i.e. the largest shared memory needed by any slsDetector is allocated \param id is the detector index which is needed to define the shared memory id. Different physical detectors should have different IDs in order to work independently + \param pos is the index of object in the parent multislsdet array \param p is the parent multislsdet to access filename ,path etc */ - slsDetector(detectorType type=GENERIC, int id=0, multiSlsDetector *p=NULL); + slsDetector(int pos, detectorType type=GENERIC, int id=0, multiSlsDetector *p=NULL); /** constructor \param id is the detector index which is needed to define the shared memory id. Different physical detectors should have different IDs in order to work independently + \param pos is the index of object in the parent multislsdet array \param p is the parent multislsdet to access filename ,path etc */ - slsDetector(int id, multiSlsDetector *p=NULL); + slsDetector(int pos, int id, multiSlsDetector *p=NULL); - slsDetector(char *name, int id=0, int cport=DEFAULT_PORTNO, multiSlsDetector *p=NULL); + slsDetector(int pos, char *name, int id=0, int cport=DEFAULT_PORTNO, multiSlsDetector *p=NULL); //slsDetector(string const fname); // ~slsDetector(){while(dataQueue.size()>0){}}; /** destructor */ @@ -1415,6 +1417,7 @@ class slsDetector : public slsDetectorUtils, public energyConversion { */ int getDetectorId(int i=-1) {return detId;}; + /** Receives a data frame from the detector socket \returns pointer to the data (or NULL if failed) @@ -1836,6 +1839,11 @@ class slsDetector : public slsDetectorUtils, public energyConversion { */ int detId; + /** + position ID + */ + int posId; + /** * parent multi detector From 64843c1c767958f42e9fafd453415098bcc62180 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 16 Dec 2016 14:46:54 +0100 Subject: [PATCH 20/22] made the scans work, where the the dummy message from rxr doesnt stop it from listening for the scans/measurement, only at set join thread --- .../multiSlsDetector/multiSlsDetector.cpp | 44 ++++++++++++++----- .../slsDetector/slsDetectorUtils.cpp | 13 ++++++ .../slsDetector/slsDetectorUtils.h | 4 +- 3 files changed, 47 insertions(+), 14 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 7456c8408..b6e6c3001 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -5305,11 +5305,18 @@ void multiSlsDetector::readFrameFromReceiver(){ volatile uint64_t dataThreadMask = 0x0; + + //wait for real time acquisition to start + bool running = true; + sem_wait(&sem_newRTAcquisition); + if(checkJoinThread()) + running = false; + for(int i = 0; i < numSockets; ++i) dataThreadMask|=(1<numberOfDetectors); //reset frame memory //get each frame @@ -5354,21 +5361,36 @@ void multiSlsDetector::readFrameFromReceiver(){ } + //all done - if(!dataThreadMask) - break; + if(!dataThreadMask){ + sem_wait(&sem_newRTAcquisition); + //done with complete acquisition + if(checkJoinThread()) + break; + else{ + //starting a new scan/measurement + for(int i = 0; i < numSockets; ++i) + dataThreadMask|=(1<0) { @@ -462,6 +471,9 @@ int slsDetectorUtils::acquire(int delflag){ } + //let processing thread continue and checkjointhread + sem_post(&sem_newRTAcquisition); + // waiting for the data processing thread to finish! if (*threadedProcessing) { #ifdef VERBOSE @@ -499,6 +511,7 @@ int slsDetectorUtils::acquire(int delflag){ #endif setAcquiringFlag(false); + sem_destroy(&sem_newRTAcquisition); clock_gettime(CLOCK_REALTIME, &end); cout << "Elapsed time for acquisition:" << (( end.tv_sec - begin.tv_sec ) + ( end.tv_nsec - begin.tv_nsec ) / 1000000000.0) << " seconds" << endl; diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index e74a8ab7e..cc354b737 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -878,12 +878,10 @@ virtual int setReceiverFifoDepth(int i = -1)=0; int (*acquisition_finished)(double,int,void*); int (*measurement_finished)(int,int,void*); void *acqFinished_p, *measFinished_p; - - - int (*progress_call)(double,void*); void *pProgressCallArg; + sem_t sem_newRTAcquisition; }; From 2d1c91c0e0269073b01f5d729a5696e131175a2e Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Fri, 16 Dec 2016 14:59:55 +0100 Subject: [PATCH 21/22] bug in sem for new scans --- slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index f30567572..0e6d5e763 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -471,8 +471,6 @@ int slsDetectorUtils::acquire(int delflag){ } - //let processing thread continue and checkjointhread - sem_post(&sem_newRTAcquisition); // waiting for the data processing thread to finish! if (*threadedProcessing) { @@ -480,6 +478,10 @@ int slsDetectorUtils::acquire(int delflag){ cout << "wait for data processing thread" << endl; #endif setJoinThread(1); + + //let processing thread continue and checkjointhread + sem_post(&sem_newRTAcquisition); + pthread_join(dataProcessingThread, &status); #ifdef VERBOSE cout << "data processing thread joined" << endl; From bd1601c2ebe1f17c286d84a8b298a61cbe1b3f51 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Mon, 19 Dec 2016 11:37:14 +0100 Subject: [PATCH 22/22] fixwed the printing of errors but not error message --- slsDetectorSoftware/commonFiles/error_defs.h | 42 +++++++++---------- .../multiSlsDetector/multiSlsDetector.cpp | 1 + 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 7020f9f5b..fed6af415 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -8,16 +8,14 @@ #ifndef ERROR_DEFS_H_ #define ERROR_DEFS_H_ +#include "ansi.h" +#include "sls_detector_defs.h" +#include #include #include -using namespace std; - - -#include "sls_detector_defs.h" -#include #include - +using namespace std; /** Error flags */ /*Assumption: Only upto 63 detectors */ @@ -26,22 +24,22 @@ using namespace std; #define MULTI_DETECTORS_NOT_ADDED 0x8000000000000000ULL -#define CANNOT_CONNECT_TO_DETECTOR 0x8000000000000000ULL -#define CANNOT_CONNECT_TO_RECEIVER 0x4000000000000000ULL -#define COULDNOT_SET_CONTROL_PORT 0x2000000000000000ULL -#define COULDNOT_SET_STOP_PORT 0x1000000000000000ULL -#define COULDNOT_SET_DATA_PORT 0x0800000000000000ULL -#define FILE_PATH_DOES_NOT_EXIST 0x0400000000000000ULL -#define COULDNOT_CREATE_UDP_SOCKET 0x0200000000000000ULL -#define COULDNOT_CREATE_FILE 0x0100000000000000ULL -#define COULDNOT_ENABLE_COMPRESSION 0x0080000000000000ULL -#define RECEIVER_DET_HOSTNAME_NOT_SET 0x0040000000000000ULL -#define RECEIVER_DET_HOSTTYPE_NOT_SET 0x0020000000000000ULL -#define DETECTOR_TEN_GIGA 0x0010000000000000ULL -#define DETECTOR_ACTIVATE 0x0008000000000000ULL -#define COULD_NOT_CONFIGURE_MAC 0x0004000000000000ULL -#define COULDNOT_START_RECEIVER 0x0002000000000000ULL // default error like starting threads -#define COULDNOT_STOP_RECEIVER 0x0001000000000000ULL +#define CANNOT_CONNECT_TO_DETECTOR 0x4000000000000000ULL +#define CANNOT_CONNECT_TO_RECEIVER 0x2000000000000000ULL +#define COULDNOT_SET_CONTROL_PORT 0x1000000000000000ULL +#define COULDNOT_SET_STOP_PORT 0x0800000000000000ULL +#define COULDNOT_SET_DATA_PORT 0x0400000000000000ULL +#define FILE_PATH_DOES_NOT_EXIST 0x0200000000000000ULL +#define COULDNOT_CREATE_UDP_SOCKET 0x0100000000000000ULL +#define COULDNOT_CREATE_FILE 0x0080000000000000ULL +#define COULDNOT_ENABLE_COMPRESSION 0x0040000000000000ULL +#define RECEIVER_DET_HOSTNAME_NOT_SET 0x0020000000000000ULL +#define RECEIVER_DET_HOSTTYPE_NOT_SET 0x0010000000000000ULL +#define DETECTOR_TEN_GIGA 0x0008000000000000ULL +#define DETECTOR_ACTIVATE 0x0004000000000000ULL +#define COULD_NOT_CONFIGURE_MAC 0x0002000000000000ULL +#define COULDNOT_START_RECEIVER 0x0001000000000000ULL // default error like starting threads +#define COULDNOT_STOP_RECEIVER 0x0000800000000000ULL // 0xFFFFFFFF00000000ULL diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index b6e6c3001..bd15cdaa2 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4359,6 +4359,7 @@ int multiSlsDetector::readConfigurationFile(string const fname){ // char ext[100]; setAcquiringFlag(false); + clearAllErrorMask(); string ans; string str;