server binaries for all, jungfgrauserver with adcphase returning something, serverclient interface fixed for others not using tempcontrol, detectornumber not used for settings file for non eiger/mythen, server dates removing rev number

This commit is contained in:
maliakal_d 2018-02-07 09:23:52 +01:00
parent e6bd874a88
commit 618f6291cf
23 changed files with 164 additions and 156 deletions

View File

@ -316,6 +316,8 @@ int receiveData(int file_des, void* buf,int length, intType itype){
int sendDataOnly(int file_des, void* buf,int length) { 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 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"); if (ret < 0) cprintf(BG_RED, "Error writing to socket. Possible socket crash\n");
return ret; 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->ndac),sizeof(myMod->ndac),INT32);
ts+=sendData(file_des,&(myMod->nadc),sizeof(myMod->nadc),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->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.*/ #ifdef MYTHEND
if(sendAll){ ts+=sendData(file_des,myMod->dacs,sizeof(myMod->ndac),OTHER);
ts+=sendData(file_des,myMod->chipregs,sizeof(myMod->nchip),OTHER); ts+=sendData(file_des,myMod->adcs,sizeof(myMod->nadc),OTHER);
ts+=sendData(file_des,myMod->chanregs,sizeof(myMod->nchan),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->gain), sizeof(myMod->gain),OTHER);
ts+=sendData(file_des,&(myMod->offset), sizeof(myMod->offset),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); ts+= sendData(file_des,myMod->dacs,sizeof(dacs_t)*nDacs,INT32);
#ifdef VERBOSE #ifdef VERBOSE
printf("dacs %d of size %d sent\n",myMod->module, ts); printf("dacs %d of size %d sent\n",myMod->module, ts);
int idac;
for (idac=0; idac< nDacs; idac++) for (idac=0; idac< nDacs; idac++)
printf("dac %d is %d\n",idac,(int)myMod->dacs[idac]); printf("dac %d is %d\n",idac,(int)myMod->dacs[idac]);
#endif #endif
if(sendAll) ts+= sendData(file_des,myMod->adcs,sizeof(dacs_t)*nAdcs,INT32);
ts+= sendData(file_des,myMod->adcs,sizeof(dacs_t)*nAdcs,INT32);
else {
uint32_t k = 0;
ts+= sendData(file_des,&k,sizeof(k),INT32);
}
#ifdef VERBOSE #ifdef VERBOSE
printf("adcs %d of size %d sent\n",myMod->module, ts); printf("adcs %d of size %d sent\n",myMod->module, ts);
#endif #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->ndac),sizeof(myMod->ndac),INT32);
ts+=receiveData(file_des,&(myMod->nadc),sizeof(myMod->nadc),INT32); ts+=receiveData(file_des,&(myMod->nadc),sizeof(myMod->nadc),INT32);
ts+=receiveData(file_des,&(myMod->reg),sizeof(myMod->reg),INT32); ts+=receiveData(file_des,&(myMod->reg),sizeof(myMod->reg),INT32);
#ifdef MYTHEND
ts+=receiveData(file_des,myMod->dacs,sizeof(myMod->ndac),INT32); ts+=receiveData(file_des,myMod->dacs,sizeof(myMod->ndac),INT32);
if(receiveAll){ // temporary fix ts+=receiveData(file_des,myMod->adcs,sizeof(myMod->nadc),INT32);
ts+=receiveData(file_des,myMod->adcs,sizeof(myMod->nadc),INT32); ts+=receiveData(file_des,myMod->chipregs,sizeof(myMod->nchip),INT32);
}else { ts+=receiveData(file_des,myMod->chanregs,sizeof(myMod->nchan),INT32);
uint32_t k;ts+=receiveData(file_des,&k,sizeof(k),INT32);//nadc is 0 #endif
}
/*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->gain), sizeof(myMod->gain),OTHER); ts+=receiveData(file_des,&(myMod->gain), sizeof(myMod->gain),OTHER);
ts+=receiveData(file_des,&(myMod->offset), sizeof(myMod->offset),OTHER); ts+=receiveData(file_des,&(myMod->offset), sizeof(myMod->offset),OTHER);

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer
URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repsitory UUID: a161a9aad8ac38a79ba43340344a3c923cea85f7 Repsitory UUID: e6bd874a88493557fc5127d4a1686832299aaf06
Revision: 307 Revision: 312
Branch: 3.0.1 Branch: 3.0.1
Last Changed Author: Dhanya_Thattil Last Changed Author: Dhanya_Thattil
Last Changed Rev: 1578 Last Changed Rev: 3346
Last Changed Date: 2017-10-11 12:45:54.679255119 +0200 ./Makefile.virtual Last Changed Date: 2018-02-05 12:40:59.000000002 +0100 ./FebRegisterDefs.h

View File

@ -1,6 +1,6 @@
#define GITURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "a161a9aad8ac38a79ba43340344a3c923cea85f7" #define GITREPUUID "e6bd874a88493557fc5127d4a1686832299aaf06"
#define GITAUTH "Dhanya_Thattil" #define GITAUTH "Dhanya_Thattil"
#define GITREV 0x1578 #define GITREV 0x3346
#define GITDATE 0x20171011 #define GITDATE 0x20180205
#define GITBRANCH "blabla" #define GITBRANCH "3.0.1"

View File

@ -134,10 +134,7 @@ int64_t getDetectorId(enum idMode arg){
case SOFTWARE_FIRMWARE_API_VERSION: case SOFTWARE_FIRMWARE_API_VERSION:
return (int64_t)Beb_GetFirmwareSoftwareAPIVersion(); return (int64_t)Beb_GetFirmwareSoftwareAPIVersion();
case DETECTOR_SOFTWARE_VERSION: case DETECTOR_SOFTWARE_VERSION:
retval= GITREV; return (GITDATE & 0xFFFFFF);
retval= (retval <<32) | GITDATE;
//cprintf(BLUE,"git date:%x, git rev:%x\n",GITDATE,GITREV);
break;
default: default:
break; break;
} }

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware/gotthardDetectorServer Path: slsDetectorsPackage/slsDetectorSoftware/gotthardDetectorServer
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repsitory UUID: 0649626842512b772ab660c36dece505f3244aee Repsitory UUID: e6bd874a88493557fc5127d4a1686832299aaf06
Revision: 212 Revision: 217
Branch: 3.0.1 Branch: 3.0.1
Last Changed Author: Dhanya_Maliakal Last Changed Author: Dhanya_Thattil
Last Changed Rev: 3318 Last Changed Rev: 3346
Last Changed Date: 2017-12-19 17:45:11.000000002 +0100 ./server_funcs.c Last Changed Date: 2018-02-07 09:09:56.000000002 +0100 ./server_funcs.c

View File

@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "0649626842512b772ab660c36dece505f3244aee" #define GITREPUUID "e6bd874a88493557fc5127d4a1686832299aaf06"
#define GITAUTH "Dhanya_Maliakal" #define GITAUTH "Dhanya_Thattil"
#define GITREV 0x3318 #define GITREV 0x3346
#define GITDATE 0x20171219 #define GITDATE 0x20180207
#define GITBRANCH "3.0.1" #define GITBRANCH "3.0.1"

View File

@ -588,13 +588,9 @@ int get_id(int file_des) {
retval=getDetectorNumber(); retval=getDetectorNumber();
break; break;
case DETECTOR_FIRMWARE_VERSION: case DETECTOR_FIRMWARE_VERSION:
retval=getFirmwareSVNVersion(); return (getFirmwareVersion() & 0xFFFFFF);
retval=(retval <<32) | getFirmwareVersion();
break;
case DETECTOR_SOFTWARE_VERSION: case DETECTOR_SOFTWARE_VERSION:
retval= GITREV; return (GITDATE & 0xFFFFFF);
retval= (retval <<32) | GITDATE;
break;
default: default:
printf("Required unknown id %d \n", arg); printf("Required unknown id %d \n", arg);
ret=FAIL; ret=FAIL;

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repsitory UUID: aebc423fb2907635588f8e1b8a70a0eb6f5b5a6f Repsitory UUID: e6bd874a88493557fc5127d4a1686832299aaf06
Revision: 103 Revision: 108
Branch: 3.0.1 Branch: 3.0.1
Last Changed Author: Dhanya_Maliakal Last Changed Author: Dhanya_Thattil
Last Changed Rev: 3341 Last Changed Rev: 3346
Last Changed Date: 2018-02-02 10:48:32.000000002 +0100 ./RegisterDefs.h Last Changed Date: 2018-02-05 11:53:33.000000002 +0100 ./RegisterDefs.h

View File

@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "aebc423fb2907635588f8e1b8a70a0eb6f5b5a6f" #define GITREPUUID "e6bd874a88493557fc5127d4a1686832299aaf06"
#define GITAUTH "Dhanya_Maliakal" #define GITAUTH "Dhanya_Thattil"
#define GITREV 0x3341 #define GITREV 0x3346
#define GITDATE 0x20180202 #define GITDATE 0x20180205
#define GITBRANCH "3.0.1" #define GITBRANCH "3.0.1"

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware/moenchDetectorServer Path: slsDetectorsPackage/slsDetectorSoftware/moenchDetectorServer
URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repsitory UUID: 9f1b82c18ab0893d65bfadeb646b8ea244614632 Repsitory UUID: e6bd874a88493557fc5127d4a1686832299aaf06
Revision: 83 Revision: 85
Branch: developer Branch: 3.0.1
Last Changed Author: Dhanya_Maliakal Last Changed Author: Dhanya_Thattil
Last Changed Rev: 1443 Last Changed Rev: 3346
Last Changed Date: 2017-07-10 11:03:27.000000002 +0200 ./Makefile Last Changed Date: 2018-02-07 09:14:36.000000002 +0100 ./server_funcs.c

View File

@ -1,6 +1,6 @@
#define GITURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" #define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "9f1b82c18ab0893d65bfadeb646b8ea244614632" #define GITREPUUID "e6bd874a88493557fc5127d4a1686832299aaf06"
#define GITAUTH "Dhanya_Maliakal" #define GITAUTH "Dhanya_Thattil"
#define GITREV 0x1443 #define GITREV 0x3346
#define GITDATE 0x20170710 #define GITDATE 0x20180207
#define GITBRANCH "blabla" #define GITBRANCH "3.0.1"

View File

@ -593,13 +593,9 @@ int get_id(int file_des) {
retval=getDetectorNumber(); retval=getDetectorNumber();
break; break;
case DETECTOR_FIRMWARE_VERSION: case DETECTOR_FIRMWARE_VERSION:
retval=getFirmwareSVNVersion(); return (getFirmwareVersion() & 0xFFFFFF);
retval=(retval <<32) | getFirmwareVersion();
break;
case DETECTOR_SOFTWARE_VERSION: case DETECTOR_SOFTWARE_VERSION:
retval= GITREV; return (GITDATE & 0xFFFFFF);
retval= (retval <<32) | GITDATE;
break;
default: default:
printf("Required unknown id %d \n", arg); printf("Required unknown id %d \n", arg);
ret=FAIL; ret=FAIL;

View File

@ -1151,18 +1151,19 @@ int slsDetector::sendModule(sls_detector_module *myMod) {
ts+=controlSocket->SendDataOnly(&(myMod->ndac),sizeof(myMod->ndac)); ts+=controlSocket->SendDataOnly(&(myMod->ndac),sizeof(myMod->ndac));
ts+=controlSocket->SendDataOnly(&(myMod->nadc),sizeof(myMod->nadc)); ts+=controlSocket->SendDataOnly(&(myMod->nadc),sizeof(myMod->nadc));
ts+=controlSocket->SendDataOnly(&(myMod->reg),sizeof(myMod->reg)); ts+=controlSocket->SendDataOnly(&(myMod->reg),sizeof(myMod->reg));
ts+=controlSocket->SendDataOnly(myMod->dacs,sizeof(myMod->ndac)); // only for sending structures like in old mythen server
ts+=controlSocket->SendDataOnly(myMod->adcs,sizeof(myMod->nadc)); if (thisDetector->myDetectorType == MYTHEN) {
ts+=controlSocket->SendDataOnly(myMod->dacs,sizeof(myMod->ndac));
if(thisDetector->myDetectorType != JUNGFRAU){ ts+=controlSocket->SendDataOnly(myMod->adcs,sizeof(myMod->nadc));
ts+=controlSocket->SendDataOnly(myMod->chipregs,sizeof(myMod->nchip)); ts+=controlSocket->SendDataOnly(myMod->chipregs,sizeof(myMod->nchip));
ts+=controlSocket->SendDataOnly(myMod->chanregs,sizeof(myMod->nchan)); ts+=controlSocket->SendDataOnly(myMod->chanregs,sizeof(myMod->nchan));
} }
ts+=controlSocket->SendDataOnly(&(myMod->gain),sizeof(myMod->gain)); ts+=controlSocket->SendDataOnly(&(myMod->gain),sizeof(myMod->gain));
ts+=controlSocket->SendDataOnly(&(myMod->offset), sizeof(myMod->offset)); 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->dacs,sizeof(dacs_t)*(myMod->ndac));
ts+=controlSocket->SendDataOnly(myMod->adcs,sizeof(dacs_t)*(myMod->nadc)); ts+=controlSocket->SendDataOnly(myMod->adcs,sizeof(dacs_t)*(myMod->nadc));
if(thisDetector->myDetectorType != JUNGFRAU){ if(thisDetector->myDetectorType != JUNGFRAU){
ts+=controlSocket->SendDataOnly(myMod->chipregs,sizeof(int)*(myMod->nchip)); ts+=controlSocket->SendDataOnly(myMod->chipregs,sizeof(int)*(myMod->nchip));
ts+=controlSocket->SendDataOnly(myMod->chanregs,sizeof(int)*(myMod->nchan)); 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->ndac),sizeof(myMod->ndac));
ts+=controlSocket->ReceiveDataOnly(&(myMod->nadc),sizeof(myMod->nadc)); ts+=controlSocket->ReceiveDataOnly(&(myMod->nadc),sizeof(myMod->nadc));
ts+=controlSocket->ReceiveDataOnly(&(myMod->reg),sizeof(myMod->reg)); ts+=controlSocket->ReceiveDataOnly(&(myMod->reg),sizeof(myMod->reg));
ts+=controlSocket->ReceiveDataOnly(myMod->dacs,sizeof(myMod->ndac)); // only for sending structures like in old mythen server
ts+=controlSocket->ReceiveDataOnly(myMod->adcs,sizeof(myMod->nadc)); if (thisDetector->myDetectorType == MYTHEN) {
ts+=controlSocket->ReceiveDataOnly(myMod->dacs,sizeof(myMod->ndac));
if(thisDetector->myDetectorType != JUNGFRAU){ ts+=controlSocket->ReceiveDataOnly(myMod->adcs,sizeof(myMod->nadc));
ts+=controlSocket->ReceiveDataOnly(myMod->chipregs,sizeof(myMod->nchip)); ts+=controlSocket->ReceiveDataOnly(myMod->chipregs,sizeof(myMod->nchip));
ts+=controlSocket->ReceiveDataOnly(myMod->chanregs,sizeof(myMod->nchan)); ts+=controlSocket->ReceiveDataOnly(myMod->chanregs,sizeof(myMod->nchan));
} }
ts+=controlSocket->ReceiveDataOnly(&(myMod->gain), sizeof(myMod->gain)); ts+=controlSocket->ReceiveDataOnly(&(myMod->gain), sizeof(myMod->gain));
ts+=controlSocket->ReceiveDataOnly(&(myMod->offset), sizeof(myMod->offset)); ts+=controlSocket->ReceiveDataOnly(&(myMod->offset), sizeof(myMod->offset));
@ -3861,11 +3863,11 @@ slsDetectorDefs::detectorSettings slsDetector::setSettings( detectorSettings ise
std::cout<< thisDetector->settingsDir<<endl<< thisDetector->calDir <<endl; std::cout<< thisDetector->settingsDir<<endl<< thisDetector->calDir <<endl;
#endif #endif
break; break;
case MOENCH: case MYTHEN:
case GOTTHARD: ostfn << thisDetector->settingsDir << ssettings <<"/noise.sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im) << setbase(10);
case PROPIX: oscfn << thisDetector->calDir << ssettings << "/calibration.sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im) << setbase(10);
case JUNGFRAU: break;
case JUNGFRAUCTB: default:
//settings is saved in myMod.reg //settings is saved in myMod.reg
myMod->reg=thisDetector->currentSettings; myMod->reg=thisDetector->currentSettings;
ostfn << thisDetector->settingsDir << ssettings <<"/settings.sn";// << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im) << setbase(10); 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<<endl<< thisDetector->calDir <<endl; std::cout<< thisDetector->settingsDir<<endl<< thisDetector->calDir <<endl;
#endif #endif
break; break;
default:
ostfn << thisDetector->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 //if it didnt open, try default settings file
ostringstream ostfn_default; ostringstream ostfn_default;
switch(thisDetector->myDetectorType){ switch(thisDetector->myDetectorType){
case MOENCH: case EIGER:
case GOTTHARD: case MYTHEN:
case PROPIX: ostfn_default << thisDetector->settingsDir << ssettings << ssettings << ".trim";
case JUNGFRAU: break;
case JUNGFRAUCTB: default:
ostfn_default << thisDetector->settingsDir << ssettings << ssettings << ".settings"; ostfn_default << thisDetector->settingsDir << ssettings << ssettings << ".settings";
break; break;
case EIGER:
default:
ostfn_default << thisDetector->settingsDir << ssettings << ssettings << ".trim";
break;
} }
settingsfname=ostfn_default.str(); settingsfname=ostfn_default.str();
#ifdef VERBOSE #ifdef VERBOSE
@ -7567,15 +7562,21 @@ int slsDetector::loadSettingsFile(string fname, int imod) {
for (int im=mmin; im<mmax; ++im) { for (int im=mmin; im<mmax; ++im) {
ostringstream ostfn; ostringstream ostfn;
ostfn << fname; ostfn << fname;
if(thisDetector->myDetectorType != EIGER){ switch (thisDetector->myDetectorType) {
if (fname.find(".sn")==string::npos && fname.find(".trim")==string::npos && fname.find(".settings")==string::npos) { case MYTHEN:
ostfn << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im); if (fname.find(".sn")==string::npos && fname.find(".trim")==string::npos && fname.find(".settings")==string::npos) {
fn=ostfn.str(); ostfn << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im);
} }
}else if (fname.find(".sn")==string::npos && fname.find(".trim")==string::npos && fname.find(".settings")==string::npos) { break;
ostfn << ".sn" << setfill('0') << setw(3) << dec << getId(DETECTOR_SERIAL_NUMBER, im); case EIGER:
fn=ostfn.str(); 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); myMod=readSettingsFile(fn, thisDetector->myDetectorType,iodelay, tau, myMod);
if (myMod) { if (myMod) {
@ -7605,18 +7606,27 @@ int slsDetector::saveSettingsFile(string fname, int imod) {
mmax=imod+1; mmax=imod+1;
} }
for (int im=mmin; im<mmax; ++im) { for (int im=mmin; im<mmax; ++im) {
string fn=fname;
ostringstream ostfn; ostringstream ostfn;
if(thisDetector->myDetectorType == EIGER){ ostfn << fname;
ostfn << fname << ".sn" << setfill('0') << setw(3) << dec << getId(DETECTOR_SERIAL_NUMBER); switch (thisDetector->myDetectorType) {
} else case MYTHEN:
ostfn << fname << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER,im); 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 ((myMod=getModule(im))) {
if(thisDetector->myDetectorType == EIGER){ if(thisDetector->myDetectorType == EIGER){
iodelay = (int)setDAC((dacs_t)-1,IO_DELAY,0,-1); iodelay = (int)setDAC((dacs_t)-1,IO_DELAY,0,-1);
tau = (int64_t)getRateCorrectionTau(); tau = (int64_t)getRateCorrectionTau();
} }
ret=writeSettingsFile(ostfn.str(), thisDetector->myDetectorType, *myMod, iodelay, tau); ret=writeSettingsFile(fn, thisDetector->myDetectorType, *myMod, iodelay, tau);
deleteModule(myMod); deleteModule(myMod);
} }
} }
@ -7693,14 +7703,22 @@ int slsDetector::loadCalibrationFile(string fname, int imod) {
mmax=imod+1; mmax=imod+1;
} }
for (int im=mmin; im<mmax; ++im) { for (int im=mmin; im<mmax; ++im) {
string fn=fname;
ostringstream ostfn; ostringstream ostfn;
ostfn << fname ; ostfn << fname ;
if(thisDetector->myDetectorType != EIGER){ switch (thisDetector->myDetectorType) {
if (fname.find(".sn")==string::npos && fname.find(".cal")==string::npos) { case MYTHEN:
ostfn << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER, im); 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); 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(); fn=ostfn.str();
if((myMod=getModule(im))){ if((myMod=getModule(im))){
@ -7737,18 +7755,27 @@ int slsDetector::saveCalibrationFile(string fname, int imod) {
mmax=imod+1; mmax=imod+1;
} }
for (int im=mmin; im<mmax; ++im) { for (int im=mmin; im<mmax; ++im) {
string fn=fname;
ostringstream ostfn; ostringstream ostfn;
if(thisDetector->myDetectorType == EIGER) ostfn << fname;
ostfn << fname << ".sn" << setfill('0') << setw(3) << dec << getId(DETECTOR_SERIAL_NUMBER); switch (thisDetector->myDetectorType) {
else case MYTHEN:
ostfn << fname << ".sn" << setfill('0') << setw(3) << hex << getId(MODULE_SERIAL_NUMBER,im); 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 ((myMod=getModule(im))) {
//extra gain and offset //extra gain and offset
if(thisDetector->nGain) if(thisDetector->nGain)
ret=writeCalibrationFile(ostfn.str(),gain, offset); ret=writeCalibrationFile(fn,gain, offset);
//normal gain and offset inside sls_detector_module //normal gain and offset inside sls_detector_module
else else
ret=writeCalibrationFile(ostfn.str(),myMod->gain, myMod->offset); ret=writeCalibrationFile(fn,myMod->gain, myMod->offset);
deleteModule(myMod); deleteModule(myMod);
}else }else

View File

@ -4508,7 +4508,7 @@ string slsDetectorCommand::cmdSettings(int narg, char *args[], int action) {
} else if (action==PUT_ACTION) { } else if (action==PUT_ACTION) {
myDet->loadSettingsFile(sval,-1); myDet->loadSettingsFile(sval,-1);
} }
} }//cout<<"settingsfile:"<<myDet->getSettingsFile()<<endl;
return string(myDet->getSettingsFile()); return string(myDet->getSettingsFile());
} else if (cmd=="trim") { } else if (cmd=="trim") {
if (action==GET_ACTION) if (action==GET_ACTION)

View File

@ -2987,7 +2987,12 @@ int set_speed(int file_des) {
switch (arg) { switch (arg) {
#ifdef JUNGFRAUD #ifdef JUNGFRAUD
case ADC_PHASE: 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; break;
#endif #endif
#ifdef MYTHEND #ifdef MYTHEND
@ -4919,8 +4924,6 @@ int cleanup_acquisition(int file_des) {
int threshold_temp(int file_des) { int threshold_temp(int file_des) {
int ret=OK,ret1=OK; int ret=OK,ret1=OK;
int n=0; int n=0;
int arg[2]={-1,-1};
int val=-1;
int retval=-1; int retval=-1;
sprintf(mess,"could not set/get threshold temperature\n"); 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"); sprintf(mess,"Function (Threshold Temp) is not implemented for this detector\n");
cprintf(RED, "%s", mess); cprintf(RED, "%s", mess);
#else #else
int arg[2]={-1,-1};
int val=-1;
// receive arguments // receive arguments
n = receiveData(file_des,arg,sizeof(arg),INT32); n = receiveData(file_des,arg,sizeof(arg),INT32);
if (n < 0) return printSocketReadError(); 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); sprintf(mess,"Threshold Temp %d should be in range: 0 - %d\n", val, MAX_THRESHOLD_TEMP_VAL);
cprintf(RED, "Warning: %s", mess); cprintf(RED, "Warning: %s", mess);
} }
#endif
#ifdef SLS_DETECTOR_FUNCTION_LIST #ifdef SLS_DETECTOR_FUNCTION_LIST
@ -4959,6 +4964,7 @@ int threshold_temp(int file_des) {
if (ret==OK && differentClients && val >= 0) if (ret==OK && differentClients && val >= 0)
ret=FORCE_UPDATE; ret=FORCE_UPDATE;
#endif
// ret could be swapped during sendData // ret could be swapped during sendData
ret1 = ret; ret1 = ret;
@ -4980,8 +4986,6 @@ int threshold_temp(int file_des) {
int temp_control(int file_des) { int temp_control(int file_des) {
int ret=OK,ret1=OK; int ret=OK,ret1=OK;
int n=0; int n=0;
int arg[2]={-1,-1};
int val=-1;
int retval=-1; int retval=-1;
sprintf(mess,"could not set/get temperature control\n"); 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"); sprintf(mess,"Function (Temperature control) is not implemented for this detector\n");
cprintf(RED, "%s", mess); cprintf(RED, "%s", mess);
#else #else
int arg[2]={-1,-1};
int val=-1;
// receive arguments // receive arguments
n = receiveData(file_des,arg,sizeof(arg),INT32); n = receiveData(file_des,arg,sizeof(arg),INT32);
if (n < 0) return printSocketReadError(); if (n < 0) return printSocketReadError();
val=arg[0]; val=arg[0];
//ignoring imod //ignoring imod
#endif
#ifdef SLS_DETECTOR_FUNCTION_LIST #ifdef SLS_DETECTOR_FUNCTION_LIST
@ -5012,9 +5018,9 @@ int temp_control(int file_des) {
#ifdef VERBOSE #ifdef VERBOSE
printf("Temperature control is %d\n", retval); printf("Temperature control is %d\n", retval);
#endif #endif
if (ret==OK && differentClients && val >= 0) if (ret==OK && differentClients && val >= 0)
ret=FORCE_UPDATE; ret=FORCE_UPDATE;
#endif
// ret could be swapped during sendData // ret could be swapped during sendData
ret1 = ret; ret1 = ret;
@ -5037,8 +5043,6 @@ int temp_control(int file_des) {
int temp_event(int file_des) { int temp_event(int file_des) {
int ret=OK,ret1=OK; int ret=OK,ret1=OK;
int n=0; int n=0;
int arg[2]={-1,-1};
int val=-1;
int retval=-1; int retval=-1;
sprintf(mess,"could not set/get temperature event\n"); 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"); sprintf(mess,"Function (Temperature Event) is not implemented for this detector\n");
cprintf(RED, "%s", mess); cprintf(RED, "%s", mess);
#else #else
int arg[2]={-1,-1};
int val=-1;
// receive arguments // receive arguments
n = receiveData(file_des,arg,sizeof(arg),INT32); n = receiveData(file_des,arg,sizeof(arg),INT32);
if (n < 0) return printSocketReadError(); if (n < 0) return printSocketReadError();
val=arg[0]; val=arg[0];
//ignoring imod //ignoring imod
#endif
#ifdef SLS_DETECTOR_FUNCTION_LIST #ifdef SLS_DETECTOR_FUNCTION_LIST
if (ret==OK) { if (ret==OK) {
@ -5072,6 +5077,7 @@ int temp_event(int file_des) {
if (ret==OK && differentClients && val >= 0) if (ret==OK && differentClients && val >= 0)
ret=FORCE_UPDATE; ret=FORCE_UPDATE;
#endif
// ret could be swapped during sendData // ret could be swapped during sendData
ret1 = ret; ret1 = ret;