diff --git a/slsDetectorSoftware/commonFiles/communication_funcs.c b/slsDetectorSoftware/commonFiles/communication_funcs.c index caa58a8c4..fec999a74 100755 --- a/slsDetectorSoftware/commonFiles/communication_funcs.c +++ b/slsDetectorSoftware/commonFiles/communication_funcs.c @@ -316,6 +316,8 @@ int receiveData(int file_des, void* buf,int length, intType itype){ int sendDataOnly(int file_des, void* buf,int length) { + if (!length) + return 0; int ret = write(file_des, buf, length); //value of -1 is other end socket crash as sigpipe is ignored if (ret < 0) cprintf(BG_RED, "Error writing to socket. Possible socket crash\n"); return ret; @@ -415,19 +417,14 @@ int sendModuleGeneral(int file_des, sls_detector_module *myMod, int sendAll) { ts+=sendData(file_des,&(myMod->ndac),sizeof(myMod->ndac),INT32); ts+=sendData(file_des,&(myMod->nadc),sizeof(myMod->nadc),INT32); ts+=sendData(file_des,&(myMod->reg),sizeof(myMod->reg),INT32); - ts+=sendData(file_des,myMod->dacs,sizeof(myMod->ndac),OTHER); - if(sendAll){ - ts+=sendData(file_des,myMod->adcs,sizeof(myMod->nadc),OTHER); - }else{ - uint32_t k = 0; - ts+=sendData(file_des,&k,sizeof(k),OTHER); - } - /*some detectors dont require sending all trimbits etc.*/ - if(sendAll){ - ts+=sendData(file_des,myMod->chipregs,sizeof(myMod->nchip),OTHER); - ts+=sendData(file_des,myMod->chanregs,sizeof(myMod->nchan),OTHER); +#ifdef MYTHEND + ts+=sendData(file_des,myMod->dacs,sizeof(myMod->ndac),OTHER); + ts+=sendData(file_des,myMod->adcs,sizeof(myMod->nadc),OTHER); + ts+=sendData(file_des,myMod->chipregs,sizeof(myMod->nchip),OTHER); + ts+=sendData(file_des,myMod->chanregs,sizeof(myMod->nchan),OTHER); } +#endif ts+=sendData(file_des,&(myMod->gain), sizeof(myMod->gain),OTHER); ts+=sendData(file_des,&(myMod->offset), sizeof(myMod->offset),OTHER); @@ -437,16 +434,11 @@ int sendModuleGeneral(int file_des, sls_detector_module *myMod, int sendAll) { ts+= sendData(file_des,myMod->dacs,sizeof(dacs_t)*nDacs,INT32); #ifdef VERBOSE printf("dacs %d of size %d sent\n",myMod->module, ts); + int idac; for (idac=0; idac< nDacs; idac++) printf("dac %d is %d\n",idac,(int)myMod->dacs[idac]); #endif - if(sendAll) - ts+= sendData(file_des,myMod->adcs,sizeof(dacs_t)*nAdcs,INT32); - else { - uint32_t k = 0; - ts+= sendData(file_des,&k,sizeof(k),INT32); - } - + ts+= sendData(file_des,myMod->adcs,sizeof(dacs_t)*nAdcs,INT32); #ifdef VERBOSE printf("adcs %d of size %d sent\n",myMod->module, ts); #endif @@ -547,18 +539,12 @@ int receiveModuleGeneral(int file_des, sls_detector_module* myMod, int receiveA ts+=receiveData(file_des,&(myMod->ndac),sizeof(myMod->ndac),INT32); ts+=receiveData(file_des,&(myMod->nadc),sizeof(myMod->nadc),INT32); ts+=receiveData(file_des,&(myMod->reg),sizeof(myMod->reg),INT32); +#ifdef MYTHEND ts+=receiveData(file_des,myMod->dacs,sizeof(myMod->ndac),INT32); - if(receiveAll){ // temporary fix - ts+=receiveData(file_des,myMod->adcs,sizeof(myMod->nadc),INT32); - }else { - uint32_t k;ts+=receiveData(file_des,&k,sizeof(k),INT32);//nadc is 0 - } - - /*some detectors dont require sending all trimbits etc.*/ - if(receiveAll){ - ts+=receiveData(file_des,myMod->chipregs,sizeof(myMod->nchip),INT32); - ts+=receiveData(file_des,myMod->chanregs,sizeof(myMod->nchan),INT32); - } + ts+=receiveData(file_des,myMod->adcs,sizeof(myMod->nadc),INT32); + ts+=receiveData(file_des,myMod->chipregs,sizeof(myMod->nchip),INT32); + ts+=receiveData(file_des,myMod->chanregs,sizeof(myMod->nchan),INT32); +#endif ts+=receiveData(file_des,&(myMod->gain), sizeof(myMod->gain),OTHER); ts+=receiveData(file_des,&(myMod->offset), sizeof(myMod->offset),OTHER); diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.0.0.16.10 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.0.1.16.0 similarity index 52% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.0.0.16.10 rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.0.1.16.0 index 8842daf55..484256ceb 100755 Binary files a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.0.0.16.10 and b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.0.1.16.0 differ diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt index 99c165a65..bf2c15c1f 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 -Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git -Repsitory UUID: a161a9aad8ac38a79ba43340344a3c923cea85f7 -Revision: 307 +URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git +Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git +Repsitory UUID: e6bd874a88493557fc5127d4a1686832299aaf06 +Revision: 312 Branch: 3.0.1 Last Changed Author: Dhanya_Thattil -Last Changed Rev: 1578 -Last Changed Date: 2017-10-11 12:45:54.679255119 +0200 ./Makefile.virtual +Last Changed Rev: 3346 +Last Changed Date: 2018-02-05 12:40:59.000000002 +0100 ./FebRegisterDefs.h diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h index 4bbb15ae1..2355fd690 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h @@ -1,6 +1,6 @@ -#define GITURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" -#define GITREPUUID "a161a9aad8ac38a79ba43340344a3c923cea85f7" +#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" +#define GITREPUUID "e6bd874a88493557fc5127d4a1686832299aaf06" #define GITAUTH "Dhanya_Thattil" -#define GITREV 0x1578 -#define GITDATE 0x20171011 -#define GITBRANCH "blabla" +#define GITREV 0x3346 +#define GITDATE 0x20180205 +#define GITBRANCH "3.0.1" diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index 49de345af..4eebe0053 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -134,10 +134,7 @@ int64_t getDetectorId(enum idMode arg){ case SOFTWARE_FIRMWARE_API_VERSION: return (int64_t)Beb_GetFirmwareSoftwareAPIVersion(); case DETECTOR_SOFTWARE_VERSION: - retval= GITREV; - retval= (retval <<32) | GITDATE; - //cprintf(BLUE,"git date:%x, git rev:%x\n",GITDATE,GITREV); - break; + return (GITDATE & 0xFFFFFF); default: break; } diff --git a/slsDetectorSoftware/gotthardDetectorServer/gitInfo.txt b/slsDetectorSoftware/gotthardDetectorServer/gitInfo.txt index ee5115894..0f62ba317 100644 --- a/slsDetectorSoftware/gotthardDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/gotthardDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/gotthardDetectorServer URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git -Repsitory UUID: 0649626842512b772ab660c36dece505f3244aee -Revision: 212 +Repsitory UUID: e6bd874a88493557fc5127d4a1686832299aaf06 +Revision: 217 Branch: 3.0.1 -Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 3318 -Last Changed Date: 2017-12-19 17:45:11.000000002 +0100 ./server_funcs.c +Last Changed Author: Dhanya_Thattil +Last Changed Rev: 3346 +Last Changed Date: 2018-02-07 09:09:56.000000002 +0100 ./server_funcs.c diff --git a/slsDetectorSoftware/gotthardDetectorServer/gitInfoGotthard.h b/slsDetectorSoftware/gotthardDetectorServer/gitInfoGotthard.h index 25844d8df..96f110d39 100644 --- a/slsDetectorSoftware/gotthardDetectorServer/gitInfoGotthard.h +++ b/slsDetectorSoftware/gotthardDetectorServer/gitInfoGotthard.h @@ -1,6 +1,6 @@ #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" -#define GITREPUUID "0649626842512b772ab660c36dece505f3244aee" -#define GITAUTH "Dhanya_Maliakal" -#define GITREV 0x3318 -#define GITDATE 0x20171219 +#define GITREPUUID "e6bd874a88493557fc5127d4a1686832299aaf06" +#define GITAUTH "Dhanya_Thattil" +#define GITREV 0x3346 +#define GITDATE 0x20180207 #define GITBRANCH "3.0.1" diff --git a/slsDetectorSoftware/gotthardDetectorServer/gotthardDetectorServerv3.0.0.7 b/slsDetectorSoftware/gotthardDetectorServer/gotthardDetectorServerv3.0.0.7 deleted file mode 100755 index bc5c03120..000000000 Binary files a/slsDetectorSoftware/gotthardDetectorServer/gotthardDetectorServerv3.0.0.7 and /dev/null differ diff --git a/slsDetectorSoftware/gotthardDetectorServer/gotthardDetectorServerv3.0.1.0 b/slsDetectorSoftware/gotthardDetectorServer/gotthardDetectorServerv3.0.1.0 new file mode 100755 index 000000000..328b0a61f Binary files /dev/null and b/slsDetectorSoftware/gotthardDetectorServer/gotthardDetectorServerv3.0.1.0 differ diff --git a/slsDetectorSoftware/gotthardDetectorServer/server_funcs.c b/slsDetectorSoftware/gotthardDetectorServer/server_funcs.c index b2fe9cec5..645b4b90e 100755 --- a/slsDetectorSoftware/gotthardDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/gotthardDetectorServer/server_funcs.c @@ -588,13 +588,9 @@ int get_id(int file_des) { retval=getDetectorNumber(); break; case DETECTOR_FIRMWARE_VERSION: - retval=getFirmwareSVNVersion(); - retval=(retval <<32) | getFirmwareVersion(); - break; + return (getFirmwareVersion() & 0xFFFFFF); case DETECTOR_SOFTWARE_VERSION: - retval= GITREV; - retval= (retval <<32) | GITDATE; - break; + return (GITDATE & 0xFFFFFF); default: printf("Required unknown id %d \n", arg); ret=FAIL; diff --git a/slsDetectorSoftware/jctbDetectorServer/jungfrauDetectorServerTest b/slsDetectorSoftware/jctbDetectorServer/jungfrauDetectorServerTest deleted file mode 100755 index 18fe7d5cb..000000000 Binary files a/slsDetectorSoftware/jctbDetectorServer/jungfrauDetectorServerTest and /dev/null differ diff --git a/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.2 b/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.2 deleted file mode 100755 index 2ceabc6de..000000000 Binary files a/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.2 and /dev/null differ diff --git a/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.3 b/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.3 new file mode 100755 index 000000000..488444b37 Binary files /dev/null and b/slsDetectorSoftware/jungfrauDetectorServer/bin/jungfrauDetectorServerv3.0.1.3 differ diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt index 1a59c8d73..633562566 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git -Repsitory UUID: aebc423fb2907635588f8e1b8a70a0eb6f5b5a6f -Revision: 103 +Repsitory UUID: e6bd874a88493557fc5127d4a1686832299aaf06 +Revision: 108 Branch: 3.0.1 -Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 3341 -Last Changed Date: 2018-02-02 10:48:32.000000002 +0100 ./RegisterDefs.h +Last Changed Author: Dhanya_Thattil +Last Changed Rev: 3346 +Last Changed Date: 2018-02-05 11:53:33.000000002 +0100 ./RegisterDefs.h diff --git a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h index 028a9884a..2355fd690 100644 --- a/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/gitInfoJungfrau.h @@ -1,6 +1,6 @@ #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" -#define GITREPUUID "aebc423fb2907635588f8e1b8a70a0eb6f5b5a6f" -#define GITAUTH "Dhanya_Maliakal" -#define GITREV 0x3341 -#define GITDATE 0x20180202 +#define GITREPUUID "e6bd874a88493557fc5127d4a1686832299aaf06" +#define GITAUTH "Dhanya_Thattil" +#define GITREV 0x3346 +#define GITDATE 0x20180205 #define GITBRANCH "3.0.1" diff --git a/slsDetectorSoftware/moenchDetectorServer/gitInfo.txt b/slsDetectorSoftware/moenchDetectorServer/gitInfo.txt index 178eb0fa1..4ff46c75b 100644 --- a/slsDetectorSoftware/moenchDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/moenchDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/moenchDetectorServer -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: 9f1b82c18ab0893d65bfadeb646b8ea244614632 -Revision: 83 -Branch: developer -Last Changed Author: Dhanya_Maliakal -Last Changed Rev: 1443 -Last Changed Date: 2017-07-10 11:03:27.000000002 +0200 ./Makefile +URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git +Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git +Repsitory UUID: e6bd874a88493557fc5127d4a1686832299aaf06 +Revision: 85 +Branch: 3.0.1 +Last Changed Author: Dhanya_Thattil +Last Changed Rev: 3346 +Last Changed Date: 2018-02-07 09:14:36.000000002 +0100 ./server_funcs.c diff --git a/slsDetectorSoftware/moenchDetectorServer/gitInfoMoench.h b/slsDetectorSoftware/moenchDetectorServer/gitInfoMoench.h index 289be4767..96f110d39 100644 --- a/slsDetectorSoftware/moenchDetectorServer/gitInfoMoench.h +++ b/slsDetectorSoftware/moenchDetectorServer/gitInfoMoench.h @@ -1,6 +1,6 @@ -#define GITURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" -#define GITREPUUID "9f1b82c18ab0893d65bfadeb646b8ea244614632" -#define GITAUTH "Dhanya_Maliakal" -#define GITREV 0x1443 -#define GITDATE 0x20170710 -#define GITBRANCH "blabla" +#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" +#define GITREPUUID "e6bd874a88493557fc5127d4a1686832299aaf06" +#define GITAUTH "Dhanya_Thattil" +#define GITREV 0x3346 +#define GITDATE 0x20180207 +#define GITBRANCH "3.0.1" diff --git a/slsDetectorSoftware/moenchDetectorServer/moenchDetectorServerv2.0.3 b/slsDetectorSoftware/moenchDetectorServer/moenchDetectorServerv2.0.3 deleted file mode 100755 index d49a67b57..000000000 Binary files a/slsDetectorSoftware/moenchDetectorServer/moenchDetectorServerv2.0.3 and /dev/null differ diff --git a/slsDetectorSoftware/moenchDetectorServer/moenchDetectorServerv3.0.1.0 b/slsDetectorSoftware/moenchDetectorServer/moenchDetectorServerv3.0.1.0 new file mode 100755 index 000000000..41adbc41a Binary files /dev/null and b/slsDetectorSoftware/moenchDetectorServer/moenchDetectorServerv3.0.1.0 differ diff --git a/slsDetectorSoftware/moenchDetectorServer/server_funcs.c b/slsDetectorSoftware/moenchDetectorServer/server_funcs.c index cef404689..2463e7971 100755 --- a/slsDetectorSoftware/moenchDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/moenchDetectorServer/server_funcs.c @@ -593,13 +593,9 @@ int get_id(int file_des) { retval=getDetectorNumber(); break; case DETECTOR_FIRMWARE_VERSION: - retval=getFirmwareSVNVersion(); - retval=(retval <<32) | getFirmwareVersion(); - break; + return (getFirmwareVersion() & 0xFFFFFF); case DETECTOR_SOFTWARE_VERSION: - retval= GITREV; - retval= (retval <<32) | GITDATE; - break; + return (GITDATE & 0xFFFFFF); default: printf("Required unknown id %d \n", arg); ret=FAIL; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 2e18ce835..8ace51109 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -1151,18 +1151,19 @@ int slsDetector::sendModule(sls_detector_module *myMod) { ts+=controlSocket->SendDataOnly(&(myMod->ndac),sizeof(myMod->ndac)); ts+=controlSocket->SendDataOnly(&(myMod->nadc),sizeof(myMod->nadc)); ts+=controlSocket->SendDataOnly(&(myMod->reg),sizeof(myMod->reg)); - ts+=controlSocket->SendDataOnly(myMod->dacs,sizeof(myMod->ndac)); - ts+=controlSocket->SendDataOnly(myMod->adcs,sizeof(myMod->nadc)); - - if(thisDetector->myDetectorType != JUNGFRAU){ - ts+=controlSocket->SendDataOnly(myMod->chipregs,sizeof(myMod->nchip)); - ts+=controlSocket->SendDataOnly(myMod->chanregs,sizeof(myMod->nchan)); + // only for sending structures like in old mythen server + if (thisDetector->myDetectorType == MYTHEN) { + ts+=controlSocket->SendDataOnly(myMod->dacs,sizeof(myMod->ndac)); + ts+=controlSocket->SendDataOnly(myMod->adcs,sizeof(myMod->nadc)); + ts+=controlSocket->SendDataOnly(myMod->chipregs,sizeof(myMod->nchip)); + ts+=controlSocket->SendDataOnly(myMod->chanregs,sizeof(myMod->nchan)); } ts+=controlSocket->SendDataOnly(&(myMod->gain),sizeof(myMod->gain)); ts+=controlSocket->SendDataOnly(&(myMod->offset), sizeof(myMod->offset)); + + // actual data to the pointers ts+=controlSocket->SendDataOnly(myMod->dacs,sizeof(dacs_t)*(myMod->ndac)); ts+=controlSocket->SendDataOnly(myMod->adcs,sizeof(dacs_t)*(myMod->nadc)); - if(thisDetector->myDetectorType != JUNGFRAU){ ts+=controlSocket->SendDataOnly(myMod->chipregs,sizeof(int)*(myMod->nchip)); ts+=controlSocket->SendDataOnly(myMod->chanregs,sizeof(int)*(myMod->nchan)); @@ -1219,13 +1220,14 @@ int slsDetector::receiveModule(sls_detector_module* myMod) { ts+=controlSocket->ReceiveDataOnly(&(myMod->ndac),sizeof(myMod->ndac)); ts+=controlSocket->ReceiveDataOnly(&(myMod->nadc),sizeof(myMod->nadc)); ts+=controlSocket->ReceiveDataOnly(&(myMod->reg),sizeof(myMod->reg)); - ts+=controlSocket->ReceiveDataOnly(myMod->dacs,sizeof(myMod->ndac)); - ts+=controlSocket->ReceiveDataOnly(myMod->adcs,sizeof(myMod->nadc)); - - if(thisDetector->myDetectorType != JUNGFRAU){ - ts+=controlSocket->ReceiveDataOnly(myMod->chipregs,sizeof(myMod->nchip)); - ts+=controlSocket->ReceiveDataOnly(myMod->chanregs,sizeof(myMod->nchan)); + // only for sending structures like in old mythen server + if (thisDetector->myDetectorType == MYTHEN) { + ts+=controlSocket->ReceiveDataOnly(myMod->dacs,sizeof(myMod->ndac)); + ts+=controlSocket->ReceiveDataOnly(myMod->adcs,sizeof(myMod->nadc)); + ts+=controlSocket->ReceiveDataOnly(myMod->chipregs,sizeof(myMod->nchip)); + ts+=controlSocket->ReceiveDataOnly(myMod->chanregs,sizeof(myMod->nchan)); } + ts+=controlSocket->ReceiveDataOnly(&(myMod->gain), sizeof(myMod->gain)); ts+=controlSocket->ReceiveDataOnly(&(myMod->offset), sizeof(myMod->offset)); @@ -3861,11 +3863,11 @@ slsDetectorDefs::detectorSettings slsDetector::setSettings( detectorSettings ise std::cout<< thisDetector->settingsDir<calDir <settingsDir << ssettings <<"/noise.sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im) << setbase(10); + oscfn << thisDetector->calDir << ssettings << "/calibration.sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im) << setbase(10); + break; + default: //settings is saved in myMod.reg myMod->reg=thisDetector->currentSettings; ostfn << thisDetector->settingsDir << ssettings <<"/settings.sn";// << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im) << setbase(10); @@ -3874,9 +3876,6 @@ slsDetectorDefs::detectorSettings slsDetector::setSettings( detectorSettings ise std::cout<< thisDetector->settingsDir<calDir <settingsDir << ssettings <<"/noise.sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im) << setbase(10); - oscfn << thisDetector->calDir << ssettings << "/calibration.sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im) << setbase(10); } @@ -3889,17 +3888,13 @@ slsDetectorDefs::detectorSettings slsDetector::setSettings( detectorSettings ise //if it didnt open, try default settings file ostringstream ostfn_default; switch(thisDetector->myDetectorType){ - case MOENCH: - case GOTTHARD: - case PROPIX: - case JUNGFRAU: - case JUNGFRAUCTB: + case EIGER: + case MYTHEN: + ostfn_default << thisDetector->settingsDir << ssettings << ssettings << ".trim"; + break; + default: ostfn_default << thisDetector->settingsDir << ssettings << ssettings << ".settings"; break; - case EIGER: - default: - ostfn_default << thisDetector->settingsDir << ssettings << ssettings << ".trim"; - break; } settingsfname=ostfn_default.str(); #ifdef VERBOSE @@ -7567,15 +7562,21 @@ int slsDetector::loadSettingsFile(string fname, int imod) { for (int im=mmin; immyDetectorType != EIGER){ - if (fname.find(".sn")==string::npos && fname.find(".trim")==string::npos && fname.find(".settings")==string::npos) { - ostfn << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im); - fn=ostfn.str(); - } - }else if (fname.find(".sn")==string::npos && fname.find(".trim")==string::npos && fname.find(".settings")==string::npos) { - ostfn << ".sn" << setfill('0') << setw(3) << dec << getId(DETECTOR_SERIAL_NUMBER, im); - fn=ostfn.str(); + switch (thisDetector->myDetectorType) { + case MYTHEN: + if (fname.find(".sn")==string::npos && fname.find(".trim")==string::npos && fname.find(".settings")==string::npos) { + ostfn << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im); + } + break; + case EIGER: + if (fname.find(".sn")==string::npos && fname.find(".trim")==string::npos && fname.find(".settings")==string::npos) { + ostfn << ".sn" << setfill('0') << setw(3) << dec << getId(DETECTOR_SERIAL_NUMBER, im); + } + break; + default: + break; } + fn=ostfn.str(); myMod=readSettingsFile(fn, thisDetector->myDetectorType,iodelay, tau, myMod); if (myMod) { @@ -7605,18 +7606,27 @@ int slsDetector::saveSettingsFile(string fname, int imod) { mmax=imod+1; } for (int im=mmin; immyDetectorType == EIGER){ - ostfn << fname << ".sn" << setfill('0') << setw(3) << dec << getId(DETECTOR_SERIAL_NUMBER); - } else - ostfn << fname << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER,im); + ostfn << fname; + switch (thisDetector->myDetectorType) { + case MYTHEN: + ostfn << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER,im); + break; + case EIGER: + ostfn << ".sn" << setfill('0') << setw(3) << dec << getId(DETECTOR_SERIAL_NUMBER); + break; + default: + break; + } + fn=ostfn.str(); if ((myMod=getModule(im))) { if(thisDetector->myDetectorType == EIGER){ iodelay = (int)setDAC((dacs_t)-1,IO_DELAY,0,-1); tau = (int64_t)getRateCorrectionTau(); } - ret=writeSettingsFile(ostfn.str(), thisDetector->myDetectorType, *myMod, iodelay, tau); + ret=writeSettingsFile(fn, thisDetector->myDetectorType, *myMod, iodelay, tau); deleteModule(myMod); } } @@ -7693,14 +7703,22 @@ int slsDetector::loadCalibrationFile(string fname, int imod) { mmax=imod+1; } for (int im=mmin; immyDetectorType != EIGER){ - if (fname.find(".sn")==string::npos && fname.find(".cal")==string::npos) { - ostfn << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im); - } - }else if (fname.find(".sn")==string::npos && fname.find(".cal")==string::npos) { - ostfn << "." << setfill('0') << setw(3) << dec << getId(DETECTOR_SERIAL_NUMBER); + switch (thisDetector->myDetectorType) { + case MYTHEN: + if (fname.find(".sn")==string::npos && fname.find(".cal")==string::npos) { + ostfn << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im); + } + break; + case EIGER: + if (fname.find(".sn")==string::npos && fname.find(".cal")==string::npos) { + ostfn << "." << setfill('0') << setw(3) << dec << getId(DETECTOR_SERIAL_NUMBER); + } + break; + default: + break; } fn=ostfn.str(); if((myMod=getModule(im))){ @@ -7737,18 +7755,27 @@ int slsDetector::saveCalibrationFile(string fname, int imod) { mmax=imod+1; } for (int im=mmin; immyDetectorType == EIGER) - ostfn << fname << ".sn" << setfill('0') << setw(3) << dec << getId(DETECTOR_SERIAL_NUMBER); - else - ostfn << fname << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER,im); + ostfn << fname; + switch (thisDetector->myDetectorType) { + case MYTHEN: + ostfn << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER,im); + break; + case EIGER: + ostfn << ".sn" << setfill('0') << setw(3) << dec << getId(DETECTOR_SERIAL_NUMBER); + break; + default: + break; + } + fn=ostfn.str(); if ((myMod=getModule(im))) { //extra gain and offset if(thisDetector->nGain) - ret=writeCalibrationFile(ostfn.str(),gain, offset); + ret=writeCalibrationFile(fn,gain, offset); //normal gain and offset inside sls_detector_module else - ret=writeCalibrationFile(ostfn.str(),myMod->gain, myMod->offset); + ret=writeCalibrationFile(fn,myMod->gain, myMod->offset); deleteModule(myMod); }else diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index db8a8505e..5ef346eb0 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -4508,7 +4508,7 @@ string slsDetectorCommand::cmdSettings(int narg, char *args[], int action) { } else if (action==PUT_ACTION) { myDet->loadSettingsFile(sval,-1); } - } + }//cout<<"settingsfile:"<getSettingsFile()<getSettingsFile()); } else if (cmd=="trim") { if (action==GET_ACTION) diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index 51df2032c..eb3b99eff 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -2987,7 +2987,12 @@ int set_speed(int file_des) { switch (arg) { #ifdef JUNGFRAUD case ADC_PHASE: - adcPhase(val); + retval = adcPhase(val); + if ((retval!=val) && (val>=0)) { + ret=FAIL; + sprintf(mess,"could not change set adc phase: should be %d but is %d \n", val, retval); + cprintf(RED, "Warning: %s", mess); + } break; #endif #ifdef MYTHEND @@ -4919,8 +4924,6 @@ int cleanup_acquisition(int file_des) { int threshold_temp(int file_des) { int ret=OK,ret1=OK; int n=0; - int arg[2]={-1,-1}; - int val=-1; int retval=-1; sprintf(mess,"could not set/get threshold temperature\n"); @@ -4932,6 +4935,9 @@ int threshold_temp(int file_des) { sprintf(mess,"Function (Threshold Temp) is not implemented for this detector\n"); cprintf(RED, "%s", mess); #else + int arg[2]={-1,-1}; + int val=-1; + // receive arguments n = receiveData(file_des,arg,sizeof(arg),INT32); if (n < 0) return printSocketReadError(); @@ -4942,7 +4948,6 @@ int threshold_temp(int file_des) { sprintf(mess,"Threshold Temp %d should be in range: 0 - %d\n", val, MAX_THRESHOLD_TEMP_VAL); cprintf(RED, "Warning: %s", mess); } -#endif #ifdef SLS_DETECTOR_FUNCTION_LIST @@ -4959,6 +4964,7 @@ int threshold_temp(int file_des) { if (ret==OK && differentClients && val >= 0) ret=FORCE_UPDATE; +#endif // ret could be swapped during sendData ret1 = ret; @@ -4980,8 +4986,6 @@ int threshold_temp(int file_des) { int temp_control(int file_des) { int ret=OK,ret1=OK; int n=0; - int arg[2]={-1,-1}; - int val=-1; int retval=-1; sprintf(mess,"could not set/get temperature control\n"); @@ -4993,12 +4997,14 @@ int temp_control(int file_des) { sprintf(mess,"Function (Temperature control) is not implemented for this detector\n"); cprintf(RED, "%s", mess); #else + int arg[2]={-1,-1}; + int val=-1; + // receive arguments n = receiveData(file_des,arg,sizeof(arg),INT32); if (n < 0) return printSocketReadError(); val=arg[0]; //ignoring imod -#endif #ifdef SLS_DETECTOR_FUNCTION_LIST @@ -5012,9 +5018,9 @@ int temp_control(int file_des) { #ifdef VERBOSE printf("Temperature control is %d\n", retval); #endif - if (ret==OK && differentClients && val >= 0) ret=FORCE_UPDATE; +#endif // ret could be swapped during sendData ret1 = ret; @@ -5037,8 +5043,6 @@ int temp_control(int file_des) { int temp_event(int file_des) { int ret=OK,ret1=OK; int n=0; - int arg[2]={-1,-1}; - int val=-1; int retval=-1; sprintf(mess,"could not set/get temperature event\n"); @@ -5050,13 +5054,14 @@ int temp_event(int file_des) { sprintf(mess,"Function (Temperature Event) is not implemented for this detector\n"); cprintf(RED, "%s", mess); #else + int arg[2]={-1,-1}; + int val=-1; + // receive arguments n = receiveData(file_des,arg,sizeof(arg),INT32); if (n < 0) return printSocketReadError(); val=arg[0]; //ignoring imod -#endif - #ifdef SLS_DETECTOR_FUNCTION_LIST if (ret==OK) { @@ -5072,6 +5077,7 @@ int temp_event(int file_des) { if (ret==OK && differentClients && val >= 0) ret=FORCE_UPDATE; +#endif // ret could be swapped during sendData ret1 = ret;