merge from 3.0.1 for server binaries (adcphase,server dates, temp control, settings file

This commit is contained in:
maliakal_d 2018-02-07 11:02:36 +01:00
commit 897cbac27d
31 changed files with 170 additions and 163 deletions

View File

@ -377,7 +377,7 @@ void qTabAdvanced::SetOutputFile(){
//gets the clean absolute path
dirPath = dir.absoluteFilePath(dirPath);
dirPath = dir.cleanPath(dirPath);
QString trimdir = QString(myDet->getSettingsFile()).section('/',0,-2,QString::SectionIncludeLeadingSep);
QString trimdir = QString::fromStdString(myDet->getSettingsFile()).section('/',0,-2,QString::SectionIncludeLeadingSep);
trimdir = dir.absoluteFilePath(trimdir);
trimdir = dir.cleanPath(trimdir);
if(!dirPath.compare(trimdir)){

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) {
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);

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repsitory UUID: 08fda2b6620353e69f4b654f8bf4c3ea4be60b1e
Revision: 317
Repsitory UUID: 3da6a6df6556312f7467407a8b5691bdc478424e
Revision: 319
Branch: developer
Last Changed Author: Dhanya_Maliakal
Last Changed Rev: 3582
Last Changed Date: 2018-02-05 11:53:29.000000002 +0100 ./FebRegisterDefs.h
Last Changed Author: Dhanya_Thattil
Last Changed Rev: 3597
Last Changed Date: 2018-02-07 10:44:13.000000002 +0100 ./FebRegisterDefs.h

View File

@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "08fda2b6620353e69f4b654f8bf4c3ea4be60b1e"
#define GITAUTH "Dhanya_Maliakal"
#define GITREV 0x3582
#define GITDATE 0x20180205
#define GITREPUUID "3da6a6df6556312f7467407a8b5691bdc478424e"
#define GITAUTH "Dhanya_Thattil"
#define GITREV 0x3597
#define GITDATE 0x20180207
#define GITBRANCH "developer"

View File

@ -136,10 +136,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;
}

View File

@ -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

View File

@ -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"

View File

@ -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;

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware/jctbDetectorServer
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
Repsitory UUID: 7602ffc5ac94c36e326a3bf939e85746e708c2ad
Revision: 19
Repsitory UUID: 3da6a6df6556312f7467407a8b5691bdc478424e
Revision: 21
Branch: developer
Last Changed Author: Anna_Bergamaschi
Last Changed Rev: 3554
Last Changed Date: 2017-12-15 10:38:26.000000002 +0100 ./firmware_funcs.c
Last Changed Author: Dhanya_Thattil
Last Changed Rev: 3597
Last Changed Date: 2018-02-07 10:44:13.000000002 +0100 ./server_funcs.h

View File

@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "7602ffc5ac94c36e326a3bf939e85746e708c2ad"
#define GITAUTH "Anna_Bergamaschi"
#define GITREV 0x3554
#define GITDATE 0x20171215
#define GITREPUUID "3da6a6df6556312f7467407a8b5691bdc478424e"
#define GITAUTH "Dhanya_Thattil"
#define GITREV 0x3597
#define GITDATE 0x20180207
#define GITBRANCH "developer"

View File

@ -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: 08fda2b6620353e69f4b654f8bf4c3ea4be60b1e
Revision: 105
Repsitory UUID: 3da6a6df6556312f7467407a8b5691bdc478424e
Revision: 119
Branch: developer
Last Changed Author: Dhanya_Maliakal
Last Changed Rev: 3582
Last Changed Date: 2018-02-05 11:53:33.000000002 +0100 ./RegisterDefs.h
Last Changed Author: Dhanya_Thattil
Last Changed Rev: 3597
Last Changed Date: 2018-02-07 10:44:06.000000002 +0100 ./RegisterDefs.h

View File

@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "08fda2b6620353e69f4b654f8bf4c3ea4be60b1e"
#define GITAUTH "Dhanya_Maliakal"
#define GITREV 0x3582
#define GITDATE 0x20180205
#define GITREPUUID "3da6a6df6556312f7467407a8b5691bdc478424e"
#define GITAUTH "Dhanya_Thattil"
#define GITREV 0x3597
#define GITDATE 0x20180207
#define GITBRANCH "developer"

View File

@ -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

View File

@ -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"

View File

@ -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;

View File

@ -4105,7 +4105,7 @@ slsDetectorDefs::externalSignalFlag multiSlsDetector::setExternalSignalFlags(ext
const char * multiSlsDetector::getSettingsFile() {
string multiSlsDetector::getSettingsFile() {
string s0="", s1="",s ;
@ -4126,9 +4126,9 @@ const char * multiSlsDetector::getSettingsFile() {
}
}
if (s1=="bad")
return s0.c_str();
return s0;
else
return s1.c_str();
return s1;
}

View File

@ -532,7 +532,7 @@ class multiSlsDetector : public slsDetectorUtils {
int64_t getId(idMode mode, int imod=0);
int digitalTest(digitalTestMode mode, int imod=0);
int executeTrimming(trimMode mode, int par1, int par2, int imod=-1);
const char *getSettingsFile();
string getSettingsFile();
int decodeNMod(int i, int &idet, int &imod);

View File

@ -1161,18 +1161,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));
@ -1229,13 +1230,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));
@ -3951,11 +3953,11 @@ slsDetectorDefs::detectorSettings slsDetector::setSettings( detectorSettings ise
std::cout<< thisDetector->settingsDir<<endl<< thisDetector->calDir <<endl;
#endif
break;
case MOENCH:
case GOTTHARD:
case PROPIX:
case JUNGFRAU:
case JUNGFRAUCTB:
case MYTHEN:
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);
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);
@ -3964,9 +3966,6 @@ slsDetectorDefs::detectorSettings slsDetector::setSettings( detectorSettings ise
std::cout<< thisDetector->settingsDir<<endl<< thisDetector->calDir <<endl;
#endif
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);
}
@ -3979,17 +3978,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
@ -7791,15 +7786,21 @@ int slsDetector::loadSettingsFile(string fname, int imod) {
for (int im=mmin; im<mmax; ++im) {
ostringstream ostfn;
ostfn << fname;
if(thisDetector->myDetectorType != 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) {
@ -7829,18 +7830,27 @@ int slsDetector::saveSettingsFile(string fname, int imod) {
mmax=imod+1;
}
for (int im=mmin; im<mmax; ++im) {
string fn=fname;
ostringstream ostfn;
if(thisDetector->myDetectorType == 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);
}
}
@ -7923,14 +7933,22 @@ int slsDetector::loadCalibrationFile(string fname, int imod) {
mmax=imod+1;
}
for (int im=mmin; im<mmax; ++im) {
string fn=fname;
ostringstream ostfn;
ostfn << fname ;
if(thisDetector->myDetectorType != 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))){
@ -7967,18 +7985,27 @@ int slsDetector::saveCalibrationFile(string fname, int imod) {
mmax=imod+1;
}
for (int im=mmin; im<mmax; ++im) {
string fn=fname;
ostringstream ostfn;
if(thisDetector->myDetectorType == 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

View File

@ -541,13 +541,13 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
/**
returns currently the loaded trimfile/settingsfile name
*/
const char *getSettingsFile(){\
string getSettingsFile(){\
string s(thisDetector->settingsFile); \
if (s.length()>6) {\
if (s.substr(s.length()-6,3)==string(".sn") && s.substr(s.length()-3)!=string("xxx") ) \
return s.substr(0,s.length()-6).c_str(); \
return s.substr(0,s.length()-6); \
} \
return thisDetector->settingsFile;\
return string(thisDetector->settingsFile);\
};

View File

@ -4633,7 +4633,7 @@ string slsDetectorCommand::cmdSettings(int narg, char *args[], int action) {
myDet->loadSettingsFile(sval,-1);
}
}
return string(myDet->getSettingsFile());
return myDet->getSettingsFile();
} else if (cmd=="trim") {
if (action==GET_ACTION)
return string("cannot get!");

View File

@ -295,7 +295,7 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing {
/**
returns currently the loaded trimfile/settingsfile name
*/
virtual const char *getSettingsFile()=0;
virtual string getSettingsFile()=0;
/**

View File

@ -3166,7 +3166,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
@ -5290,7 +5295,6 @@ 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;
@ -5305,6 +5309,7 @@ int threshold_temp(int file_des) {
cprintf(RED, "Warning: %s", mess);
}
#ifdef SLS_DETECTOR_FUNCTION_LIST
if (ret==OK) {
#ifdef VERBOSE
@ -5361,6 +5366,7 @@ int temp_control(int file_des) {
val=arg[0];
//ignoring imod
#ifdef SLS_DETECTOR_FUNCTION_LIST
if (ret==OK) {
#ifdef VERBOSE
@ -5372,7 +5378,6 @@ 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