mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-02-01 11:44:55 +01:00
merge conflict resolved
This commit is contained in:
@@ -322,6 +322,7 @@ void slsDetector::initializeDetectorStructure(detectorType type) {
|
||||
detector_shm()->timerValue[SUBFRAME_ACQUISITION_TIME] = 0;
|
||||
detector_shm()->timerValue[STORAGE_CELL_NUMBER] = 0;
|
||||
detector_shm()->timerValue[SUBFRAME_DEADTIME] = 0;
|
||||
detector_shm()->deadTime = 0;
|
||||
sls::strcpy_safe(detector_shm()->receiver_hostname, "none");
|
||||
detector_shm()->receiverTCPPort = DEFAULT_PORTNO + 2;
|
||||
detector_shm()->receiverUDPPort = DEFAULT_UDP_PORTNO;
|
||||
@@ -1951,7 +1952,7 @@ int slsDetector::setDynamicRange(int n) {
|
||||
client.close();
|
||||
ret = updateDetector();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// only for eiger
|
||||
// setting dr consequences on databytes shm
|
||||
@@ -3810,6 +3811,7 @@ int slsDetector::setRateCorrection(int64_t t) {
|
||||
auto client = DetectorSocket(detector_shm()->hostname,
|
||||
detector_shm()->controlPort);
|
||||
ret = client.sendCommandThenRead(fnum, &arg, sizeof(arg), nullptr, 0);
|
||||
detector_shm()->deadTime = t;
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateDetector();
|
||||
@@ -3828,6 +3830,7 @@ int64_t slsDetector::getRateCorrection() {
|
||||
detector_shm()->controlPort);
|
||||
ret = client.sendCommandThenRead(fnum, nullptr, 0, &retval,
|
||||
sizeof(retval));
|
||||
detector_shm()->deadTime = retval;
|
||||
FILE_LOG(logDEBUG1) << "Rate correction: " << retval;
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
@@ -3836,6 +3839,24 @@ int64_t slsDetector::getRateCorrection() {
|
||||
return retval;
|
||||
}
|
||||
|
||||
void slsDetector::updateRateCorrection() {
|
||||
// rate correction is enabled
|
||||
if (detector_shm()->deadTime != 0) {
|
||||
switch (detector_shm()->dynamicRange) {
|
||||
// rate correction is allowed
|
||||
case 16:
|
||||
case 32:
|
||||
setRateCorrection(detector_shm()->deadTime);
|
||||
break;
|
||||
// not allowed
|
||||
default:
|
||||
setRateCorrection(0);
|
||||
throw sls::NonCriticalError(
|
||||
"Rate correction Deactivated, must be in 32 or 16 bit mode");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void slsDetector::printReceiverConfiguration(TLogLevel level) {
|
||||
FILE_LOG(level) << "#Detector " << detId << ":\n Receiver Hostname:\t"
|
||||
<< getReceiverHostname()
|
||||
|
||||
Reference in New Issue
Block a user