ctb & moench: phase fix for absolute within limits, option to set as degrees and get max phase shift, bug fix for eiger with implementation of 2 udp interface

This commit is contained in:
2019-03-27 12:25:38 +01:00
parent c7ad548e4c
commit c7c52c63cd
20 changed files with 667 additions and 454 deletions

View File

@ -734,14 +734,14 @@ class multiSlsDetector : public virtual slsDetectorDefs {
/**
* Set speed
* @param sp speed type (clkdivider option for Jungfrau and Eiger, others
* for Mythen/Gotthard)
* @param sp speed type (clkdivider option for Jungfrau and Eiger,
* adcphase for Gotthard, others for CTB & Moench)
* @param value (clkdivider 0,1,2 for full, half and quarter speed). Other
* values check manual
* @param detPos -1 for all detectors in list or specific detector position
* @returns value of speed set
*/
int setSpeed(speedVariable index, int value = -1, int detPos = -1);
int setSpeed(speedVariable index, int value = -1, int mode = 0, int detPos = -1);
/**
* Set/get dynamic range and updates the number of dataBytes

View File

@ -697,11 +697,12 @@ class slsDetector : public virtual slsDetectorDefs{
/**
* Set speed
* @param sp speed type (clkdivider option for Jungfrau and Eiger, others for Mythen/Gotthard)
* @param sp speed type (clkdivider option for Jungfrau and Eiger,
* adcphase for Gotthard, others for CTB & Moench)
* @param value (clkdivider 0,1,2 for full, half and quarter speed). Other values check manual
* @returns value of speed set
*/
int setSpeed(speedVariable sp, int value = -1);
int setSpeed(speedVariable sp, int value = -1, int mode = 0);
/**
* Set/get dynamic range and updates the number of dataBytes

View File

@ -1199,14 +1199,14 @@ int64_t multiSlsDetector::getTimeLeft(timerIndex index, int detPos) {
return sls::minusOneIfDifferent(r);
}
int multiSlsDetector::setSpeed(speedVariable index, int value, int detPos) {
int multiSlsDetector::setSpeed(speedVariable index, int value, int mode, int detPos) {
// single
if (detPos >= 0) {
return detectors[detPos]->setSpeed(index, value);
return detectors[detPos]->setSpeed(index, value, mode);
}
// multi
auto r = parallelCall(&slsDetector::setSpeed, index, value);
auto r = parallelCall(&slsDetector::setSpeed, index, value, mode);
return sls::minusOneIfDifferent(r);
}

View File

@ -1840,12 +1840,12 @@ int64_t slsDetector::getTimeLeft(timerIndex index) {
return retval;
}
int slsDetector::setSpeed(speedVariable sp, int value) {
int slsDetector::setSpeed(speedVariable sp, int value, int mode) {
int fnum = F_SET_SPEED;
int ret = FAIL;
int args[2] = {(int)sp, value};
int args[3] = {(int)sp, value, mode};
int retval = -1;
FILE_LOG(logDEBUG1) << "Setting speed index " << sp << " to " << value;
FILE_LOG(logDEBUG1) << "Setting speed index " << sp << " to " << value << " mode: " << mode;
if (detector_shm()->onlineFlag == ONLINE_FLAG) {
auto client = DetectorSocket(detector_shm()->hostname, detector_shm()->controlPort);

File diff suppressed because it is too large Load Diff