high voltage reflects the master only, if 2 masters reflects -1

This commit is contained in:
Dhanya Maliakal 2017-08-10 11:09:44 +02:00
parent 558e5e2e9a
commit 389f356a3a
9 changed files with 51 additions and 29 deletions

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@git.psi.ch:sls_detectors_software/sls_detector_software.git
Repository Root: 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: d3b24894af8a588e6945240c3b80c2b7024608c4 Repsitory UUID: 2dfbd9016b501eca6ee2c00a08e49a3f7e7990d8
Revision: 295 Revision: 296
Branch: 3.0-rc Branch: 3.0-rc
Last Changed Author: Dhanya_Maliakal Last Changed Author: Dhanya_Maliakal
Last Changed Rev: 1448 Last Changed Rev: 1457
Last Changed Date: 2017-07-25 13:53:46.000000002 +0200 ./Beb.c Last Changed Date: 2017-08-08 15:23:10.000000002 +0200 ./Makefile

View File

@ -1,11 +1,11 @@
//#define SVNPATH "" //#define SVNPATH ""
#define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git"
//#define SVNREPPATH "" //#define SVNREPPATH ""
#define SVNREPUUID "d3b24894af8a588e6945240c3b80c2b7024608c4" #define SVNREPUUID "2dfbd9016b501eca6ee2c00a08e49a3f7e7990d8"
//#define SVNREV 0x1448 //#define SVNREV 0x1457
//#define SVNKIND "" //#define SVNKIND ""
//#define SVNSCHED "" //#define SVNSCHED ""
#define SVNAUTH "Dhanya_Maliakal" #define SVNAUTH "Dhanya_Maliakal"
#define SVNREV 0x1448 #define SVNREV 0x1457
#define SVNDATE 0x20170725 #define SVNDATE 0x20170808
// //

View File

@ -30,6 +30,7 @@ dacs_t *detectorDacs=NULL;
dacs_t *detectorAdcs=NULL; dacs_t *detectorAdcs=NULL;
int eiger_highvoltage = 0; int eiger_highvoltage = 0;
int eiger_theo_highvoltage = 0;
int eiger_iodelay = 0; int eiger_iodelay = 0;
int eiger_photonenergy = 0; int eiger_photonenergy = 0;
int eiger_dynamicrange = 0; int eiger_dynamicrange = 0;
@ -745,22 +746,33 @@ int getADC(enum ADCINDEX ind, int imod){
int setHighVoltage(int val){ int setHighVoltage(int val){
if(val!=-1){ if (master) {
eiger_highvoltage = val;
if(master){ // set
if(val!=-1){
eiger_theo_highvoltage = val;
int ret = Feb_Control_SetHighVoltage(val); int ret = Feb_Control_SetHighVoltage(val);
if(!ret) //could not set if(!ret) //could not set
return -2; return -2;
else if (ret == -1) //outside range else if (ret == -1) //outside range
return -1; return -1;
} }
// get
if (!Feb_Control_GetHighVoltage(&eiger_highvoltage)) {
cprintf(RED,"Warning: Could not read high voltage\n");
return -3;
}
// tolerance of 5
if (abs(eiger_theo_highvoltage-eiger_highvoltage) > HIGH_VOLTAGE_TOLERANCE) {
cprintf(BLUE, "High voltage still ramping: %d\n", eiger_highvoltage);
return eiger_highvoltage;
}
return eiger_theo_highvoltage;
} }
if(master && !Feb_Control_GetHighVoltage(&eiger_highvoltage)){ return SLAVE_HIGH_VOLTAGE_READ_VAL;
cprintf(RED,"Warning: Could not read high voltage\n");
return -3;
}
return eiger_highvoltage;
} }

View File

@ -84,6 +84,8 @@ enum NETWORKINDEX {TXN_LEFT, TXN_RIGHT, TXN_FRAME,FLOWCTRL_10G};
#define MAX_SUBFRAME_EXPOSURE_VAL_IN_10NS (0x1FFFFFFF) /** 29 bit register for max subframe exposure value */ #define MAX_SUBFRAME_EXPOSURE_VAL_IN_10NS (0x1FFFFFFF) /** 29 bit register for max subframe exposure value */
#define SLAVE_HIGH_VOLTAGE_READ_VAL (-999)
#define HIGH_VOLTAGE_TOLERANCE (5)
#endif /* SLSDETECTORSERVER_DEFS_H_ */ #endif /* SLSDETECTORSERVER_DEFS_H_ */

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware Path: slsDetectorsPackage/slsDetectorSoftware
URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git 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 Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git
Repsitory UUID: ef36cb7a54e1ae34ad1e85a46da6c121902108e6 Repsitory UUID: 2dfbd9016b501eca6ee2c00a08e49a3f7e7990d8
Revision: 1451 Revision: 1452
Branch: 3.0-rc Branch: 3.0-rc
Last Changed Author: Dhanya_Maliakal Last Changed Author: Dhanya_Maliakal
Last Changed Rev: 1456 Last Changed Rev: 1457
Last Changed Date: 2017-08-08 18:21:02.000000002 +0200 ./multiSlsDetector/multiSlsDetector.cpp Last Changed Date: 2017-08-09 11:36:51.000000002 +0200 ./multiSlsDetector/multiSlsDetector.cpp

View File

@ -3009,16 +3009,24 @@ dacs_t multiSlsDetector::setDAC(dacs_t val, dacIndex idac, int mV, int imod) {
for(int idet=posmin; idet<posmax; idet++){ for(int idet=posmin; idet<posmax; idet++){
if(detectors[idet]){ if(detectors[idet]){
if(iret[idet] != NULL){ if(iret[idet] != NULL){
if (ret==-100)
ret=*iret[idet]; // highvoltage of slave, ignore value
else if (ret!=*iret[idet]) if ((idac == HV_NEW) && (*iret[idet] == -999))
ret=-1; ;
else {
if (ret==-100)
ret=*iret[idet];
else if (ret!=*iret[idet])
ret=-1;
}
delete iret[idet]; delete iret[idet];
}else ret=-1; }else ret=-1;
if(detectors[idet]->getErrorMask()) if(detectors[idet]->getErrorMask())
setErrorMask(getErrorMask()|(1<<idet)); setErrorMask(getErrorMask()|(1<<idet));
} }
} }
if (ret==-100)
ret = -1;
return ret; return ret;
} }

View File

@ -1,11 +1,11 @@
//#define SVNPATH "" //#define SVNPATH ""
#define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" #define SVNURLLIB "git@git.psi.ch:sls_detectors_software/sls_detector_software.git"
//#define SVNREPPATH "" //#define SVNREPPATH ""
#define SVNREPUUIDLIB "ef36cb7a54e1ae34ad1e85a46da6c121902108e6" #define SVNREPUUIDLIB "2dfbd9016b501eca6ee2c00a08e49a3f7e7990d8"
//#define SVNREV 0x1456 //#define SVNREV 0x1457
//#define SVNKIND "" //#define SVNKIND ""
//#define SVNSCHED "" //#define SVNSCHED ""
#define SVNAUTHLIB "Dhanya_Maliakal" #define SVNAUTHLIB "Dhanya_Maliakal"
#define SVNREVLIB 0x1456 #define SVNREVLIB 0x1457
#define SVNDATELIB 0x20170808 #define SVNDATELIB 0x20170809
// //

View File

@ -1059,7 +1059,7 @@ int set_dac(int file_des) {
if((ind == HV_POT) || (ind == HV_NEW)) { if((ind == HV_POT) || (ind == HV_NEW)) {
retval[0] = setHighVoltage(val); retval[0] = setHighVoltage(val);
#ifdef EIGERD #ifdef EIGERD
if(retval[0] < 0){ if ((retval[0] != SLAVE_HIGH_VOLTAGE_READ_VAL) && (retval[0] < 0)) {
ret = FAIL; ret = FAIL;
if(retval[0] == -1) if(retval[0] == -1)
sprintf(mess, "Setting high voltage failed.Bad value %d. The range is from 0 to 200 V.\n",val); sprintf(mess, "Setting high voltage failed.Bad value %d. The range is from 0 to 200 V.\n",val);