From 7e46a407c66a67931307c972b7b971cb87313b12 Mon Sep 17 00:00:00 2001 From: Maliakal Dhanya Date: Mon, 21 Jul 2014 16:39:36 +0200 Subject: [PATCH] added trimval function, but sending trimbits from char to int bug --- slsDetectorSoftware/commonFiles/error_defs.h | 4 + .../commonFiles/sls_detector_funcs.h | 3 +- .../EigerHighLevelFunctions.c | 51 +++++---- .../eigerDetectorServer/FebControl.cxx | 102 +++++++++--------- .../eigerDetectorServer/FebServer.cxx | 7 +- .../bin/eigerDetectorServer | Bin 142552 -> 145849 bytes .../eigerDetectorServer/bin/feb_debug | Bin 146759 -> 147813 bytes .../slsDetectorFunctionList.c | 29 ++++- .../multiSlsDetector/multiSlsDetector.cpp | 30 ++++++ .../multiSlsDetector/multiSlsDetector.h | 8 ++ .../slsDetector/slsDetector.cpp | 35 ++++++ slsDetectorSoftware/slsDetector/slsDetector.h | 7 ++ .../slsDetector/slsDetectorCommand.cpp | 14 +++ .../slsDetector/slsDetectorUtils.h | 8 ++ .../slsDetectorFunctionList.h | 2 + .../slsDetectorServer_funcs.c | 59 +++++++++- .../slsDetectorServer_funcs.h | 1 + 17 files changed, 276 insertions(+), 84 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index 770a5a405..5050478ed 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -49,6 +49,7 @@ using namespace std; #define RECEIVER_FRAME_NUM_NOT_SET 0x0000000000000400ULL #define RECEIVER_DYNAMIC_RANGE 0x0000000000000800ULL #define RECEIVER_TEN_GIGA 0x0000000000001000ULL +#define ALLTIMBITS_NOT_SET 0x0000000000002000ULL // 0x00000000FFFFFFFFULL /** @short class returning all error messages for error mask */ @@ -146,6 +147,9 @@ public: if(slsErrorMask&RECEIVER_TEN_GIGA) retval.append("Could not enable/disable 10GbE in the receiver.\n"); + if(slsErrorMask&ALLTIMBITS_NOT_SET) + retval.append("Could not set all trimbits to value.\n"); + return retval; diff --git a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h index c45b7d04b..87bb241aa 100644 --- a/slsDetectorSoftware/commonFiles/sls_detector_funcs.h +++ b/slsDetectorSoftware/commonFiles/sls_detector_funcs.h @@ -89,7 +89,8 @@ enum { F_RESET_COUNTER_BLOCK, /**< resets the counter block memory for gotthard */ F_CALIBRATE_PEDESTAL, /**< starts acquistion, calibrates pedestal and write back to fpga */ - F_ENABLE_TEN_GIGA /**< enable 10Gbe */ + F_ENABLE_TEN_GIGA, /**< enable 10Gbe */ + F_SET_ALL_TRIMBITS /** < set all trimbits to this value */ /* Always append functions hereafter!!! */ diff --git a/slsDetectorSoftware/eigerDetectorServer/EigerHighLevelFunctions.c b/slsDetectorSoftware/eigerDetectorServer/EigerHighLevelFunctions.c index 1e44e5170..eb556796b 100644 --- a/slsDetectorSoftware/eigerDetectorServer/EigerHighLevelFunctions.c +++ b/slsDetectorSoftware/eigerDetectorServer/EigerHighLevelFunctions.c @@ -13,8 +13,8 @@ #include "slsDetectorServer_defs.h" //include port number struct sockaddr_in eiger_socket_addr; -int eiger_max_message_length = 1024; -char eiger_message[1024]; +int eiger_max_message_length = 270000;//263681 +char eiger_message[270000];//263681 int eiger_message_length = 0; int eiger_ret_val=0; @@ -55,6 +55,8 @@ int EigerGetExternalGating(){return eiger_extgating;} int EigerGetExternalGatingPolarity(){return eiger_extgatingpolarity;} int EigerInit(){ + saved_trimbits[0] = -1; + static int passed = 0; if(!passed){ @@ -145,7 +147,7 @@ int EigerSetTrimbits(const int *data){ int ichip; // convert the trimbits from int32 to chars and add border pixels. - for(iy=0;iy<256;y++) { + for(iy=0;iy<256;iy++) { for (ichip=0; ichip<4; ichip++) { for(ix=0;ix<256;ix++) { tt[ip++]=(char)(data[ich++]&(0x3f)); @@ -170,12 +172,13 @@ int EigerSetAllTrimbits(unsigned int value){ int ip=0, ich=0; int iy, ix; int ichip; + int sl=0; // convert the trimbits from int32 to chars and add border pixels. - for(iy=0;iy<256;y++) { + for(iy=0;iy<256;iy++) { for (ichip=0; ichip<4; ichip++) { for(ix=0;ix<256;ix++) { - tt[ip++]=value&0x3f; + tt[ip++]=(char)(value&0x3f); } if (ichip<3) { tt[ip++]=0; @@ -183,30 +186,27 @@ int EigerSetAllTrimbits(unsigned int value){ } } } - eiger_message_length = sprintf(eiger_message,"settrimbits %s", tt); - memcpy(saved_trimbits,data,256*256*4*sizeof(int)); + + char s2[270000]; + strcpy(s2,"settrimbits "); + //for() + sl=strlen(s2); + strncpy(s2+sl,tt, 263680); + s2[263680+sl]='\0'; + + eiger_message_length = strlen(s2); + //eiger_message_length = sprintf(eiger_message,"settrimbits %s", tt); + for (iy=0;iy<263680;++iy) + printf("%d:%c\t\t",iy,tt[iy]); + printf("tfggt:%s , length :%d\n",tt, strlen(tt)); + printf("Command sent:%s , length :%d\n",s2, eiger_message_length); + for(iy=0;iy<256*256*4;++iy) + saved_trimbits[iy] = value; return EigerSendCMD(); } - -/* int EigerGetTrimbits(const int *data){ */ -/* eiger_ret_val=0; */ -/* char tt[263681]; */ -/* tt[263680]='\0'; */ -/* int ip=0, ich=0; */ -/* int iy, ix; */ -/* int ichip; */ - -/* eiger_message_length = sprintf(eiger_message,"settrimbits %s", tt); */ -/* memcpy(data,saved_trimbits,256*256*4*sizeof(int)); */ -/* return EigerSendCMD(); */ -/* } */ - - - - int EigerGetTrimbits(const int *data){ eiger_ret_val=0; char tt[263681]; @@ -222,9 +222,6 @@ int EigerSetAllTrimbits(unsigned int value){ - - - int EigerGetDAC(const char* iname){ eiger_ret_val=1; eiger_message_length = sprintf(eiger_message,"getdacvalue %s",iname); diff --git a/slsDetectorSoftware/eigerDetectorServer/FebControl.cxx b/slsDetectorSoftware/eigerDetectorServer/FebControl.cxx index 6ac58cdd8..9f1ac72d0 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebControl.cxx +++ b/slsDetectorSoftware/eigerDetectorServer/FebControl.cxx @@ -698,62 +698,62 @@ float FebControl::GetDAC(string s){ */ bool FebControl::SetTrimbits(unsigned int module_num, unsigned char *trimbits){ - - unsigned int module_index=0; - if(!GetModuleIndex(module_num,module_index)){ - cout<<"Warning could not set trimbits, bad module number."<>3)<<((7-i)*4);//upper - trimbits_to_load_r[offset+chip_sc] |= ( 0x7 & trimbits[263679 - (row_set*16480+super_column_start_position_r+i)])<<((7-i)*4);//low - trimbits_to_load_r[offset+chip_sc+32] |= ((0x38 & trimbits[263679 - (row_set*16480+super_column_start_position_r+i)])>>3)<<((7-i)*4);//upper - } // end column loop i - } //end supercolumn loop sc - } //end row loop + if(!(WriteRegister(0xfff,DAQ_REG_STATIC_BITS,disable_chip_mask|DAQ_STATIC_BIT_PROGRAM|DAQ_STATIC_BIT_M8)&&SetCommandRegister(DAQ_SET_STATIC_BIT)&&StartDAQOnlyNWaitForFinish())){ + cout<<"Could not select chips"<GetTopLeftAddress(),0,0,1024,trimbits_to_load_r)||!WriteMemory(modules[0]->GetTopRightAddress(),0,0,1024,trimbits_to_load_l)||!StartDAQOnlyNWaitForFinish()) return 0; - } //end row_set loop (groups of 16 rows) - } // end l_r loop + for(int row_set=0;row_set<16;row_set++){ //16 rows at a time + if(row_set==0){ + if(!SetCommandRegister(DAQ_RESET_COMPLETELY|DAQ_SEND_A_TOKEN_IN|DAQ_LOAD_16ROWS_OF_TRIMBITS)){ + cout<<"Warning: Could not SetCommandRegister for loading trim bits."<>3)<<((7-i)*4);//upper + trimbits_to_load_r[offset+chip_sc] |= ( 0x7 & trimbits[263679 - (row_set*16480+super_column_start_position_r+i)])<<((7-i)*4);//low + trimbits_to_load_r[offset+chip_sc+32] |= ((0x38 & trimbits[263679 - (row_set*16480+super_column_start_position_r+i)])>>3)<<((7-i)*4);//upper + } // end column loop i + } //end supercolumn loop sc + } //end row loop - return SetStaticBits(); //send the static bits + if(!WriteMemory(modules[0]->GetTopLeftAddress(),0,0,1024,trimbits_to_load_r)||!WriteMemory(modules[0]->GetTopRightAddress(),0,0,1024,trimbits_to_load_l)||!StartDAQOnlyNWaitForFinish()) return 0; + } //end row_set loop (groups of 16 rows) + } // end l_r loop + + memcpy(last_downloaded_trimbits,trimbits,trimbit_size*sizeof(unsigned char)); + + return SetStaticBits(); //send the static bits } diff --git a/slsDetectorSoftware/eigerDetectorServer/FebServer.cxx b/slsDetectorSoftware/eigerDetectorServer/FebServer.cxx index 9217a07b8..ad9e94ed8 100755 --- a/slsDetectorSoftware/eigerDetectorServer/FebServer.cxx +++ b/slsDetectorSoftware/eigerDetectorServer/FebServer.cxx @@ -259,7 +259,12 @@ int main(int argc, char* argv[]){ break; case evSetTrimBits : - feb_controler->SetTrimbits(0,(unsigned char*)data); + tmp_str[0] = GetNextString(data); + /*char tt[263681];*/ + for(int i=0;i<10;i++) + cout <SetTrimbits(0,(unsigned char*)(tmp_str[0].c_str())); return_message.append("\tExecuted: SetTrimBits "); AddNumber(return_message,n[0]); return_message.append("\n"); ret_val = 0; break; diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer index 01b998f5dd2e6f7588b144f4e622ee6e7c03f3ba..2937d1af0bd04796bba762046872705245f1cbe9 100755 GIT binary patch delta 31678 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 delta 28600 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 T4$(5Xdy`#T?2Z|#{pSAyg5|fo diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/feb_debug b/slsDetectorSoftware/eigerDetectorServer/bin/feb_debug index 679aad0f56c3972bbebee81533a42ad97967f41d..5c402a301aaa08efc1ad1cdc1b8234cea04a64a4 100755 GIT binary patch literal 147813 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 Pc}JY-I}s{7VAlQ*PU8*X delta 52188 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

e#@1>#9Y)FcSa%1p3m$=-2=Am%7d~223`ICcl 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 diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index fb404469a..9ee7e5205 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -141,6 +141,7 @@ int64_t getDetectorId(enum idMode arg){ int getDetectorNumber(){ + int res=0; char hostname[100]; if (gethostname(hostname, sizeof hostname) == 0) @@ -159,8 +160,13 @@ int getDetectorNumber(){ pclose(sysFile); sscanf(output,"%x",&res); return res; +*/ + /* + int res=0; + char hostname[100] = "beb000"; + sscanf(hostname,"%x",&res); + return res; */ - } @@ -291,8 +297,9 @@ int setModule(sls_detector_module myMod){ // thisSettings = (enum detectorSettings)myMod.reg; // thisSettings = 0; - setSettings( (enum detectorSettings)myMod.reg); // put the settings in the module register?!?!? -/** set trimbits*/ + setSettings( (enum detectorSettings)myMod.reg,-1); // put the settings in the module register?!?!? + EigerSetTrimbits(myMod.chanregs); + if (detectorModules) copyModule(detectorModules,&myMod); return 0; @@ -598,6 +605,7 @@ int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod){ } + int getTotalNumberOfChannels(){return getNumberOfChannelsPerModule();};//NCHIP*NCHAN*nModBoard;} int getTotalNumberOfChips(){return 4;};//NCHIP*nModBoard;} int getTotalNumberOfModules(){return 1;}//nModBoard;} @@ -675,6 +683,21 @@ enum synchronizationMode setSynchronization(enum synchronizationMode arg){ return NO_SYNCHRONIZATION; } +void setAllTrimbits(int val){ + int ichan; + EigerSetAllTrimbits(val); +#ifdef VERBOSE + printf("Copying register %x value %d\n",destMod->reg,val); +#endif + if (detectorModules){ + for (ichan=0; ichan<(detectorModules->nchan); ichan++) { + *((detectorModules->chanregs)+ichan)=val; + } + } +} +int getAllTrimbits(){ + return *((detectorModules->chanregs)); +} #endif diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 6c8275b64..812c0a2f1 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -3721,6 +3721,36 @@ int multiSlsDetector::saveSettingsFile(string fname, int imod) { +int multiSlsDetector::setAllTrimbits(int val, int imod){ + + int ret=-100, ret1,id, im; + + if (decodeNMod(imod, id, im)>=0) { + if (detectors[id]) { + ret1=detectors[id]->setAllTrimbits(val,im); + if(detectors[id]->getErrorMask()) + setErrorMask(getErrorMask()|(1<numberOfDetectors; idet++) { + if (detectors[idet]) { + ret1=detectors[idet]->setAllTrimbits(val,imod); + if(detectors[idet]->getErrorMask()) + setErrorMask(getErrorMask()|(1<onlineFlag==ONLINE_FLAG) { + if (connectControl() == OK){ + controlSocket->SendDataOnly(&fnum,sizeof(fnum)); + controlSocket->SendDataOnly(&val,sizeof(val)); + controlSocket->ReceiveDataOnly(&ret,sizeof(ret)); + if (ret==FAIL) { + controlSocket->ReceiveDataOnly(mess,sizeof(mess)); + std::cout<< "Detector returned error: " << mess << std::endl; + setErrorMask((getErrorMask())|(ALLTIMBITS_NOT_SET)); + } else { + controlSocket->ReceiveDataOnly(&retval,sizeof(retval)); + } + controlSocket->Disconnect(); + if (ret==FORCE_UPDATE) + updateDetector(); + } + } + +#ifdef VERBOSE + std::cout<< "All trimbits were set to "<< retval << std::endl; +#endif + return retval; +} + + int slsDetector::loadCalibrationFile(string fname, int imod) { diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index e1aecef1d..6ffb42c04 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -510,6 +510,13 @@ class slsDetector : public slsDetectorUtils, public energyConversion { */ int saveSettingsFile(string fname, int imod=-1); + /** sets all the trimbits to a particular value + \param val trimbit value + \param imod module number, -1 means all modules + \returns OK or FAIL + */ + int setAllTrimbits(int val, int imod=-1); + /** loads the modules calibration data reading from a file \param fname file name . If not specified, extension is automatically generated! diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index 54423ee72..cee4a387c 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -497,6 +497,9 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSettings; i++; + descrToFuncMap[i].m_pFuncName="trimval"; // + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSettings; + i++; descrToFuncMap[i].m_pFuncName="pedestal"; // descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSettings; @@ -2912,6 +2915,15 @@ string slsDetectorCommand::cmdSettings(int narg, char *args[], int action) { myDet->saveSettingsFile(sval, -1); return string("done"); + } else if (cmd=="trimval") { + if (action==PUT_ACTION){ + if (sscanf(args[1],"%d",&val)) + myDet->setAllTrimbits(val); + else + return string("invalid trimbit value ")+cmd; + } + sprintf(ans,"%d",myDet->setAllTrimbits(-1)); + return ans; } else if (cmd=="pedestal") { if (action==GET_ACTION) return string("cannot get"); @@ -2935,6 +2947,7 @@ string slsDetectorCommand::helpSettings(int narg, char *args[], int action) { os << "threshold eV\n sets the detector threshold in eV"<< std::endl; os << "trimbits fname\n loads the trimfile fname to the detector. If no extension is specified, the serial number of each module will be attached."<< std::endl; os << "trim:mode fname\n trims the detector according to mode (can be noise, beam, improve, fix) and saves the resulting trimbits to file fname."<< std::endl; + os << "trimval i \n sets all the trimbits to i" << std::endl; os << "pedestal i \n starts acquisition for i frames, calculates pedestal and writes back to fpga."<< std::endl; } @@ -2942,6 +2955,7 @@ string slsDetectorCommand::helpSettings(int narg, char *args[], int action) { os << "settings \n gets the settings of the detector"<< std::endl; os << "threshold V\n gets the detector threshold"<< std::endl; os << "trimbits [fname]\n returns the trimfile loaded on the detector. If fname is specified the trimbits are saved to file. If no extension is specified, the serial number of each module will be attached."<< std::endl; + os << "trimval \n returns the value all trimbits are set to. If they are different, returns -1." << std::endl; } return os.str(); diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index 431c0bfc0..c2d50008f 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -490,6 +490,14 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing { */ virtual int saveSettingsFile(string fname, int imod=-1)=0; + /** sets all the trimbits to a particular value + \param val trimbit value + \param imod module number, -1 means all modules + \returns OK or FAIL + */ + virtual int setAllTrimbits(int val, int imod=-1)=0; + + /** diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h index 824580375..e21e69ded 100644 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h @@ -128,6 +128,8 @@ enum synchronizationMode setSynchronization(enum synchronizationMode arg); #ifdef EIGERD void setExternalGating(int enable[]); +void setAllTrimbits(int val); +int getAllTrimbits(); #endif diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index 9d216c800..560ad9037 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -157,7 +157,7 @@ int function_table() { flist[F_STOP_RECEIVER]=&stop_receiver; flist[F_CALIBRATE_PEDESTAL]=&calibrate_pedestal; flist[F_ENABLE_TEN_GIGA]=&enable_ten_giga; - + flist[F_SET_ALL_TRIMBITS]=&set_all_trimbits; #ifdef VERBOSE @@ -3420,3 +3420,60 @@ int enable_ten_giga(int file_des) { /*return ok/fail*/ return ret; } + + + +int set_all_trimbits(int file_des){ + + + int retval; + int arg; + int n; + int ret=OK,ret1=OK; + + sprintf(mess,"can't set sll trimbits\n"); + + n = receiveData(file_des,&arg,sizeof(arg),INT32); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } + +#ifdef VERBOSE + printf("setting all trimbits to %d\n",arg); +#endif +#ifdef SLS_DETECTOR_FUNCTION_LIST + if (differentClients==1 && lockStatus==1 && arg!=GET_READOUT_FLAGS) { + ret=FAIL; + sprintf(mess,"Detector locked by %s\n",lastClientIP); + } else { + if(arg < -1){ + ret = FAIL; + strcpy(mess,"Cant set trimbits to this value\n"); + }else { + if(arg >= 0) + setAllTrimbits(arg); + retval = getAllTrimbits(); + } + } +#endif + if (ret==OK) { + if (arg!=-1 && arg!=retval) { + ret=FAIL; + sprintf(mess,"Could not set all trimbits: should be %d but is %d\n", arg, retval); + }else if (differentClients) + ret=FORCE_UPDATE; + } + + + //ret could be swapped during sendData + ret1 = ret; + n = sendData(file_des,&ret1,sizeof(ret),INT32); + if (ret==FAIL) { + n = sendData(file_des,mess,sizeof(mess),OTHER); + } else { + n = sendData(file_des,&retval,sizeof(retval),INT32); + } + return ret; + +} diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h index 42814787c..7f1e44ab8 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.h @@ -81,5 +81,6 @@ int start_receiver(int); int stop_receiver(int); int calibrate_pedestal(int); int enable_ten_giga(int); +int set_all_trimbits(int); #endif