From c2980b3c4474781471202b6e8200fc03a0e3b3d9 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Wed, 28 Jun 2017 10:24:07 +0200 Subject: [PATCH] changes for setting threshold without trimbits for eiger --- .../commonFiles/communication_funcs.c | 10 +++ .../eigerDetectorServer/Makefile | 5 +- .../bin/eigerDetectorServerv3.0.0.16.2 | Bin 285478 -> 0 bytes .../eigerDetectorServer/gitInfo.txt | 8 +-- .../eigerDetectorServer/gitInfoEiger.h | 6 +- .../slsDetectorFunctionList.c | 63 +++++++++++------- .../multiSlsDetector/multiSlsDetector.cpp | 6 +- .../multiSlsDetector/multiSlsDetector.h | 3 +- .../slsDetector/slsDetector.cpp | 49 ++++++++------ slsDetectorSoftware/slsDetector/slsDetector.h | 9 ++- .../slsDetector/slsDetectorActions.h | 2 +- .../slsDetector/slsDetectorBase.h | 2 +- .../slsDetector/slsDetectorCommand.cpp | 29 +++++++- .../slsDetector/slsDetectorUtils.h | 2 +- .../slsDetectorAnalysis/energyConversion.cpp | 24 ++++--- .../slsDetectorAnalysis/energyConversion.h | 6 +- slsDetectorSoftware/threadFiles/Task.h | 8 +-- 17 files changed, 152 insertions(+), 80 deletions(-) delete mode 100755 slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.0.0.16.2 diff --git a/slsDetectorSoftware/commonFiles/communication_funcs.c b/slsDetectorSoftware/commonFiles/communication_funcs.c index ab37c8996..e8238731a 100755 --- a/slsDetectorSoftware/commonFiles/communication_funcs.c +++ b/slsDetectorSoftware/commonFiles/communication_funcs.c @@ -550,6 +550,16 @@ int receiveModuleGeneral(int file_des, sls_detector_module* myMod, int receiveA myMod->chipregs=chipptr; myMod->chanregs=chanptr; +#ifdef EIGERD + //feature to exclude sending of trimbtis, nchips=0,nchans=0 in that case + if(myMod->nchip == 0 && myMod->nchan == 0) { + receiveAll=0; + nchipold=0; + nchanold=0; + } +#endif + + nChips=myMod->nchip; nchipdiff=nChips-nchipold; if (nchipold!=nChips) { diff --git a/slsDetectorSoftware/eigerDetectorServer/Makefile b/slsDetectorSoftware/eigerDetectorServer/Makefile index ccf582d27..5c473e367 100755 --- a/slsDetectorSoftware/eigerDetectorServer/Makefile +++ b/slsDetectorSoftware/eigerDetectorServer/Makefile @@ -12,7 +12,7 @@ SRC_CLNT = communication_funcs.c slsDetectorServer.c slsDetectorServer_funcs.c OBJS = $(SRC_CLNT:.c=.o) -all: clean $(PROGS) #hv9m_blackfin_server +all: clean updateVersion $(PROGS) #hv9m_blackfin_server boot: $(OBJS) @@ -32,3 +32,6 @@ hv9m_blackfin_server:9mhvserial_bf.c clean: rm -rf $(DESTDIR)/$(PROGS) *.o $(DESTDIR)/hv9m_blackfin_server +updateVersion: + ./updateGitVersion.sh + diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.0.0.16.2 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.0.0.16.2 deleted file mode 100755 index 8db331b1d23b8985f366ae27d4edba6591d4000f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285478 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%0DoRcly}9^Z#97L?Oopwe(?8Z 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 } - if ((srcMod->nchip)>(destMod->nchip)) { + //no trimbit feature + if (destMod->nchip && ((srcMod->nchip)>(destMod->nchip))) { printf("Number of chip of source is larger than number of chips of destination\n"); return FAIL; } - if ((srcMod->nchan)>(destMod->nchan)) { + //no trimbit feature + if (destMod->nchan && ((srcMod->nchan)>(destMod->nchan))) { printf("Number of channels of source is larger than number of channels of destination\n"); return FAIL; } @@ -1249,14 +1257,19 @@ int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod){ if (srcMod->offset>=0) destMod->offset=srcMod->offset; - for (ichip=0; ichip<(srcMod->nchip); ichip++) { - if (*((srcMod->chipregs)+ichip)>=0) - *((destMod->chipregs)+ichip)=*((srcMod->chipregs)+ichip); - } - for (ichan=0; ichan<(srcMod->nchan); ichan++) { - if (*((srcMod->chanregs)+ichan)>=0) - *((destMod->chanregs)+ichan)=*((srcMod->chanregs)+ichan); + if((destMod->nchip!=0) || (destMod->nchan!=0)) { + for (ichip=0; ichip<(srcMod->nchip); ichip++) { + if (*((srcMod->chipregs)+ichip)>=0) + *((destMod->chipregs)+ichip)=*((srcMod->chipregs)+ichip); + } + for (ichan=0; ichan<(srcMod->nchan); ichan++) { + if (*((srcMod->chanregs)+ichan)>=0) + *((destMod->chanregs)+ichan)=*((srcMod->chanregs)+ichan); + } } +#ifdef VERBOSE + else printf("Not Copying trimbits\n"); +#endif for (idac=0; idac<(srcMod->ndac); idac++) { if (*((srcMod->dacs)+idac)>=0) *((destMod->dacs)+idac)=*((srcMod->dacs)+idac); diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 04cc54322..4a472c281 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -1168,7 +1168,7 @@ int multiSlsDetector::getThresholdEnergy(int pos) { } -int multiSlsDetector::setThresholdEnergy(int e_eV, int pos, detectorSettings isettings) { +int multiSlsDetector::setThresholdEnergy(int e_eV, int pos, detectorSettings isettings, int tb) { int posmin, posmax; int ret=-100; @@ -1189,8 +1189,8 @@ int multiSlsDetector::setThresholdEnergy(int e_eV, int pos, detectorSettings ise for(int idet=posmin; idet(&slsDetector::setThresholdEnergy, - detectors[idet],e_eV,-1,isettings,iret[idet])); + Task* task = new Task(new func4_t(&slsDetector::setThresholdEnergy, + detectors[idet],e_eV,-1,isettings,tb,iret[idet])); threadpool->add_task(task); } } diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h index 22d582151..3d854a714 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h @@ -462,9 +462,10 @@ class multiSlsDetector : public slsDetectorUtils { \param e_eV threshold in eV \param imod module number (-1 all) \param isettings ev. change settings + \param tb 1 to include trimbits, 0 to exclude \returns current threshold value for imod in ev (-1 failed) */ - int setThresholdEnergy(int e_eV, int imod=-1, detectorSettings isettings=GET_SETTINGS); + int setThresholdEnergy(int e_eV, int imod=-1, detectorSettings isettings=GET_SETTINGS,int tb=1); /** get detector settings diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 53ed118ac..62879a78f 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -2980,7 +2980,7 @@ int slsDetector::setModule(int reg, int imod){ }; -int slsDetector::setModule(sls_detector_module module, int iodelay, int tau, int e_eV, int* gainval, int* offsetval){ +int slsDetector::setModule(sls_detector_module module, int iodelay, int tau, int e_eV, int* gainval, int* offsetval, int tb){ int fnum=F_SET_MODULE; int retval; @@ -2997,6 +2997,11 @@ int slsDetector::setModule(sls_detector_module module, int iodelay, int tau, int if (thisDetector->onlineFlag==ONLINE_FLAG) { if (connectControl() == OK){ controlSocket->SendDataOnly(&fnum,sizeof(fnum)); + //to exclude trimbits + if(!tb) { + module.nchan=0; + module.nchip=0; + } sendModule(&module); //not included in module @@ -3030,23 +3035,29 @@ int slsDetector::setModule(sls_detector_module module, int iodelay, int tau, int if (ret!=FAIL) { if (detectorModules) { if (imod>=0 && imodnMod[X]*thisDetector->nMod[Y]) { - (detectorModules+imod)->nchan=module.nchan; - (detectorModules+imod)->nchip=module.nchip; + if(tb) { + (detectorModules+imod)->nchan=module.nchan; + (detectorModules+imod)->nchip=module.nchip; + } (detectorModules+imod)->ndac=module.ndac; (detectorModules+imod)->nadc=module.nadc; - thisDetector->nChips=module.nchip; - thisDetector->nChans=module.nchan/module.nchip; + if(tb) { + thisDetector->nChips=module.nchip; + thisDetector->nChans=module.nchan/module.nchip; + } thisDetector->nDacs=module.ndac; thisDetector->nAdcs=module.nadc; if(thisDetector->myDetectorType != JUNGFRAU){ - for (int ichip=0; ichipnChips; ichip++) { - if (chipregs) - chipregs[ichip+thisDetector->nChips*imod]=module.chipregs[ichip]; + if(tb) { + for (int ichip=0; ichipnChips; ichip++) { + if (chipregs) + chipregs[ichip+thisDetector->nChips*imod]=module.chipregs[ichip]; - if (chanregs) { - for (int i=0; inChans; i++) { - chanregs[i+ichip*thisDetector->nChans+thisDetector->nChips*thisDetector->nChans*imod]=module.chanregs[ichip*thisDetector->nChans+i]; + if (chanregs) { + for (int i=0; inChans; i++) { + chanregs[i+ichip*thisDetector->nChans+thisDetector->nChips*thisDetector->nChans*imod]=module.chanregs[ichip*thisDetector->nChans+i]; + } } } } @@ -3277,11 +3288,11 @@ int slsDetector::getThresholdEnergy(int imod){ return thisDetector->currentThresholdEV; }; -int slsDetector::setThresholdEnergy(int e_eV, int imod, detectorSettings isettings){ +int slsDetector::setThresholdEnergy(int e_eV, int imod, detectorSettings isettings, int tb){ //currently only for eiger if (thisDetector->myDetectorType == EIGER) { - setThresholdEnergyAndSettings(e_eV,isettings); + setThresholdEnergyAndSettings(e_eV,isettings,tb); return thisDetector->currentThresholdEV; } @@ -3322,7 +3333,7 @@ int slsDetector::setThresholdEnergy(int e_eV, int imod, detectorSettings isetti -int slsDetector::setThresholdEnergyAndSettings(int e_eV, detectorSettings isettings) { +int slsDetector::setThresholdEnergyAndSettings(int e_eV, detectorSettings isettings, int tb) { //if settings provided, use that, else use the shared memory variable detectorSettings is = ((isettings != GET_SETTINGS) ? isettings: thisDetector->currentSettings); @@ -3388,7 +3399,7 @@ int slsDetector::setThresholdEnergyAndSettings(int e_eV, detectorSettings isetti #endif //read the files myMod=createModule(); - if (NULL == readSettingsFile(settingsfname,thisDetector->myDetectorType, iodelay, tau, myMod)) { + if (NULL == readSettingsFile(settingsfname,thisDetector->myDetectorType, iodelay, tau, myMod, tb)) { if(myMod)deleteModule(myMod); return FAIL; } @@ -3423,13 +3434,13 @@ int slsDetector::setThresholdEnergyAndSettings(int e_eV, detectorSettings isetti int tau1 = -1; //not included in the module int iodelay2 = -1; //not included in the module int tau2 = -1; //not included in the module - if (NULL == readSettingsFile(settingsfname1,thisDetector->myDetectorType, iodelay1, tau1, myMod1)) { + if (NULL == readSettingsFile(settingsfname1,thisDetector->myDetectorType, iodelay1, tau1, myMod1, tb)) { setErrorMask((getErrorMask())|(SETTINGS_FILE_NOT_OPEN)); deleteModule(myMod1); deleteModule(myMod2); return FAIL; } - if (NULL == readSettingsFile(settingsfname2,thisDetector->myDetectorType, iodelay2, tau2, myMod2)) { + if (NULL == readSettingsFile(settingsfname2,thisDetector->myDetectorType, iodelay2, tau2, myMod2, tb)) { setErrorMask((getErrorMask())|(SETTINGS_FILE_NOT_OPEN)); deleteModule(myMod1); deleteModule(myMod2); @@ -3445,7 +3456,7 @@ int slsDetector::setThresholdEnergyAndSettings(int e_eV, detectorSettings isetti iodelay = iodelay1; //interpolate module - myMod = interpolateTrim(thisDetector->myDetectorType, myMod1, myMod2, e_eV, trim1, trim2); + myMod = interpolateTrim(thisDetector->myDetectorType, myMod1, myMod2, e_eV, trim1, trim2, tb); if (myMod == NULL) { printf("Could not interpolate, different dac values in files\n"); setErrorMask((getErrorMask())|(SETTINGS_NOT_SET)); @@ -3461,7 +3472,7 @@ int slsDetector::setThresholdEnergyAndSettings(int e_eV, detectorSettings isetti myMod->module=0; myMod->reg=thisDetector->currentSettings; - setModule(*myMod, iodelay, tau, e_eV, 0, 0); + setModule(*myMod, iodelay, tau, e_eV, 0, 0, tb); deleteModule(myMod); if (getSettings(-1) != is){ std::cout << "Could not set settings in detector" << endl; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index eca4863b5..a35f2b697 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -965,10 +965,11 @@ class slsDetector : public slsDetectorUtils, public energyConversion { \param e_eV threashold in eV (detector specific) \param gainval pointer to extra gain values \param offsetval pointer to extra offset values + \param tb 1 to include trimbits, 0 to exclude (used for eiger) \returns current register value \sa ::sls_detector_module */ - int setModule(sls_detector_module module, int iodelay, int tau, int e_eV, int* gainval=0, int* offsetval=0); + int setModule(sls_detector_module module, int iodelay, int tau, int e_eV, int* gainval=0, int* offsetval=0, int tb=1); //virtual int setModule(sls_detector_module module); /** @@ -999,17 +1000,19 @@ class slsDetector : public slsDetectorUtils, public energyConversion { \param e_eV threshold in eV \param imod module number (-1 all) \param isettings ev. change settings + \param tb 1 to include trimbits, 0 to exclude \returns current threshold value for imod in ev (-1 failed) */ - int setThresholdEnergy(int e_eV, int imod=-1, detectorSettings isettings=GET_SETTINGS); + int setThresholdEnergy(int e_eV, int imod=-1, detectorSettings isettings=GET_SETTINGS, int tb=1); /** set threshold energy \param e_eV threshold in eV \param isettings ev. change settings + \param tb 1 to include trimbits, 0 to exclude \returns OK if successful, else FAIL */ - int setThresholdEnergyAndSettings(int e_eV, detectorSettings isettings); + int setThresholdEnergyAndSettings(int e_eV, detectorSettings isettings, int tb=1); /** get detector settings diff --git a/slsDetectorSoftware/slsDetector/slsDetectorActions.h b/slsDetectorSoftware/slsDetector/slsDetectorActions.h index a034e6bf0..b0b7dfe56 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorActions.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorActions.h @@ -207,7 +207,7 @@ class slsDetectorActions : public virtual slsDetectorBase /* *\/ */ /* virtual detectorType getDetectorsType(int pos=-1)=0; */ - virtual int setThresholdEnergy(int, int im=-1, detectorSettings isettings=GET_SETTINGS)=0; + virtual int setThresholdEnergy(int, int im=-1, detectorSettings isettings=GET_SETTINGS, int tb=1)=0; virtual int setChannel(int64_t, int ich=-1, int ichip=-1, int imod=-1)=0; diff --git a/slsDetectorSoftware/slsDetector/slsDetectorBase.h b/slsDetectorSoftware/slsDetector/slsDetectorBase.h index e29e17a30..e19cb992d 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorBase.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorBase.h @@ -429,7 +429,7 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef virtual externalCommunicationMode setExternalCommunicationMode(externalCommunicationMode pol=GET_EXTERNAL_COMMUNICATION_MODE)=0; int setTimingMode(int i=-1){return slsDetectorUsers::getTimingMode( externalCommunicationType( setExternalCommunicationMode(externalCommunicationType( slsDetectorUsers::getTimingMode(i) ) ) ) );}; - virtual int setThresholdEnergy(int e_eV, int imod, detectorSettings isettings=GET_SETTINGS)=0; + virtual int setThresholdEnergy(int e_eV, int imod, detectorSettings isettings=GET_SETTINGS, int tb=1)=0; int setThresholdEnergy(int e_eV){return setThresholdEnergy(e_eV,-1);}; diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index 230666be6..43e080e76 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -564,6 +564,10 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSettings; i++; + descrToFuncMap[i].m_pFuncName="thresholdnotb"; // + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSettings; + i++; + descrToFuncMap[i].m_pFuncName="trimbits"; // descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSettings; i++; @@ -3390,10 +3394,10 @@ string slsDetectorCommand::cmdSettings(int narg, char *args[], int action) { return myDet->getDetectorSettings(myDet->getSettings()); } else if (cmd=="threshold") { if (action==PUT_ACTION) { - detectorType type = myDet->getDetectorsType(); if (!sscanf(args[1],"%d",&val)) { return string("invalid threshold value"); } + detectorType type = myDet->getDetectorsType(); if (type != EIGER || (type == EIGER && narg<=2)) { myDet->setThresholdEnergy(val); } else { @@ -3405,6 +3409,25 @@ string slsDetectorCommand::cmdSettings(int narg, char *args[], int action) { } sprintf(ans,"%d",myDet->getThresholdEnergy()); return string(ans); + } else if (cmd=="thresholdnotb") { + if (action==PUT_ACTION) { + if (!sscanf(args[1],"%d",&val)) { + return string("invalid threshold value"); + } + detectorType type = myDet->getDetectorsType(); + if (type != EIGER) + return string("not implemented for this detector"); + if (narg<=2) { + myDet->setThresholdEnergy(val, -1, GET_SETTINGS, 0); + } else { + detectorSettings sett= myDet->getDetectorSettings(string(args[2])); + if(sett == -1) + return string("invalid settings value"); + myDet->setThresholdEnergy(val, -1, sett, 0); + } + } + sprintf(ans,"%d",myDet->getThresholdEnergy()); + return string(ans); } else if (cmd=="trimbits") { if (narg>=2) { string sval=string(args[1]); @@ -3487,7 +3510,8 @@ string slsDetectorCommand::helpSettings(int narg, char *args[], int action) { if (action==PUT_ACTION || action==HELP_ACTION) { os << "settings s \n sets the settings of the detector - can be standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain" "lownoise, dynamichg0,fixgain1,fixgain2,forceswitchg1, forceswitchg2"<< std::endl; - os << "threshold eV\n sets the detector threshold in eV"<< std::endl; + os << "threshold eV [sett]\n sets the detector threshold in eV. If sett is provided for eiger, uses settings sett"<< std::endl; + os << "thresholdnotb eV [sett]\n sets the detector threshold in eV without loading trimbits. If sett is provided for eiger, uses settings sett"<< 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; @@ -3497,6 +3521,7 @@ string slsDetectorCommand::helpSettings(int narg, char *args[], int action) { if (action==GET_ACTION || action==HELP_ACTION) { os << "settings \n gets the settings of the detector"<< std::endl; os << "threshold V\n gets the detector threshold"<< std::endl; + os << "thresholdnotb 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; } diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index 82b78032d..b6c684559 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -421,7 +421,7 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing { // double* convertAngles(){return convertAngles(currentPosition);}; // virtual double* convertAngles(double pos)=0; - virtual int setThresholdEnergy(int, int im=-1, detectorSettings isettings=GET_SETTINGS)=0; + virtual int setThresholdEnergy(int, int im=-1, detectorSettings isettings=GET_SETTINGS, int tb=1)=0; virtual int setChannel(int64_t, int ich=-1, int ichip=-1, int imod=-1)=0; virtual double getRateCorrectionTau()=0; diff --git a/slsDetectorSoftware/slsDetectorAnalysis/energyConversion.cpp b/slsDetectorSoftware/slsDetectorAnalysis/energyConversion.cpp index 57eee451b..9afe150f1 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/energyConversion.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/energyConversion.cpp @@ -138,7 +138,7 @@ int energyConversion::writeCalibrationFile(string fname, int *gain, int *offset) -slsDetectorDefs::sls_detector_module* energyConversion::interpolateTrim(detectorType myDetectorType, sls_detector_module* a, sls_detector_module* b, const int energy, const int e1, const int e2){ +slsDetectorDefs::sls_detector_module* energyConversion::interpolateTrim(detectorType myDetectorType, sls_detector_module* a, sls_detector_module* b, const int energy, const int e1, const int e2, int tb){ // only implemented for eiger currently (in terms of which dacs) if(myDetectorType != EIGER) { printf("Interpolation of Trim values not implemented for this detector!\n"); @@ -168,8 +168,10 @@ slsDetectorDefs::sls_detector_module* energyConversion::interpolateTrim(detector } //Interpolate all trimbits - for (int i = 0; inchan; i++) - myMod->chanregs[i] = linearInterpolation(energy, e1, e2, a->chanregs[i], b->chanregs[i]); + if(tb) { + for (int i = 0; inchan; i++) + myMod->chanregs[i] = linearInterpolation(energy, e1, e2, a->chanregs[i], b->chanregs[i]); + } return myMod; } @@ -180,7 +182,7 @@ slsDetectorDefs::sls_detector_module* energyConversion::interpolateTrim(detector /* I/O */ -slsDetectorDefs::sls_detector_module* energyConversion::readSettingsFile(string fname, detectorType myDetectorType, int& iodelay, int& tau, sls_detector_module* myMod){ +slsDetectorDefs::sls_detector_module* energyConversion::readSettingsFile(string fname, detectorType myDetectorType, int& iodelay, int& tau, sls_detector_module* myMod, int tb){ @@ -372,19 +374,21 @@ slsDetectorDefs::sls_detector_module* energyConversion::readSettingsFile(string infile.read((char*) myMod->dacs,sizeof(dacs_t)*(myMod->ndac)); infile.read((char*)&iodelay,sizeof(iodelay)); infile.read((char*)&tau,sizeof(tau)); - infile.read((char*) myMod->chanregs,sizeof(int)*(myMod->nchan)); #ifdef VERBOSE for(int i=0;indac;i++) std::cout << "dac " << i << ":" << myMod->dacs[i] << std::endl; std::cout << "iodelay:" << iodelay << std::endl; std::cout << "tau:" << tau << std::endl; #endif - if(infile.eof()){ - cout<chanregs,sizeof(int)*(myMod->nchan)); + if(infile.eof()){ + cout< If it is NULL a new module structure will be created + \param tb 1 to include trimbits, 0 to exclude (used for eiger) \returns the pointer to myMod or NULL if reading the file failed */ - sls_detector_module* readSettingsFile(string fname, detectorType myDetectorType, int& iodelay, int& tau, sls_detector_module* myMod=NULL); + sls_detector_module* readSettingsFile(string fname, detectorType myDetectorType, int& iodelay, int& tau, sls_detector_module* myMod=NULL, int tb=1); /** writes a trim/settings file diff --git a/slsDetectorSoftware/threadFiles/Task.h b/slsDetectorSoftware/threadFiles/Task.h index ac33aa23b..5aff13284 100644 --- a/slsDetectorSoftware/threadFiles/Task.h +++ b/slsDetectorSoftware/threadFiles/Task.h @@ -129,8 +129,8 @@ public: Task(func2_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(t),m12(0),m13(0),m14(0),m15(0){}; /* Return: void, Param: none */ Task(func00_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0),m12(t),m13(0),m14(0),m15(0){}; - /* Return: int, Param: int,int,detectorSettings */ - Task(func3_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0),m12(0),m13(t),m14(0),m15(0){}; + /* Return: int, Param: int,int,detectorSettings,int */ + Task(func4_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0),m12(0),m13(t),m14(0),m15(0){}; /* Return: dacs_t, Param: dacs_t, dacIndex, int, int */ Task(func4_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0),m10(0),m11(0),m12(0),m13(0),m14(t),m15(0){}; /* Return: dacs_t, Param: dacIndex, int */ @@ -185,8 +185,8 @@ private: func2_t * m11; /* Return: void, Param: none */ func00_t * m12; - /* Return: int, Param: int,int,detectorSettings */ - func3_t * m13; + /* Return: int, Param: int,int,detectorSettings,int */ + func4_t * m13; /* Return: dacs_t, Param: dacs_t, dacIndex, int, int */ func4_t * m14; /* Return: dacs_t, Param: dacIndex, int */