diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index 46aa5d925..11a1fe687 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -281,6 +281,7 @@ Result Detector::getDynamicRange(Positions pos) const { void Detector::setDynamicRange(int value) { pimpl->Parallel(&Module::setDynamicRange, {}, value); + updateRxRateCorrections(); } Result Detector::getTimingMode(Positions pos) const { @@ -1040,6 +1041,7 @@ Result Detector::getSubExptime(Positions pos) const { void Detector::setSubExptime(ns t, Positions pos) { pimpl->Parallel(&Module::setSubExptime, pos, t.count()); + updateRxRateCorrections(); } Result Detector::getSubDeadTime(Positions pos) const { @@ -1107,6 +1109,7 @@ Result Detector::getRateCorrection(Positions pos) const { void Detector::setDefaultRateCorrection(Positions pos) { pimpl->Parallel(&Module::setDefaultRateCorrection, pos); + updateRxRateCorrections(); } void Detector::setRateCorrection(ns dead_time, Positions pos) { @@ -1116,14 +1119,16 @@ void Detector::setRateCorrection(ns dead_time, Positions pos) { void Detector::updateRxRateCorrections() { // get tau from all modules and send to Rx index 0 - if (getUseReceiverFlag().squash(false)) { - // convert Result to std::vector - auto retval = getRateCorrection(); - std::vector t(retval.size()); - for (int i = 0; i < (int)retval.size(); ++i) { - t[i] = retval[i].count(); + if (getDetectorType().squash() == EIGER) { + if (getUseReceiverFlag().squash(false)) { + // convert Result to std::vector + auto retval = getRateCorrection(); + std::vector t(retval.size()); + for (int i = 0; i < (int)retval.size(); ++i) { + t[i] = retval[i].count(); + } + pimpl->Parallel(&Module::sendReceiverRateCorrections, {0}, t); } - pimpl->Parallel(&Module::sendReceiverRateCorrections, {0}, t); } } @@ -1421,6 +1426,7 @@ Result Detector::getExptime(int gateIndex, Positions pos) const { void Detector::setExptime(int gateIndex, ns t, Positions pos) { pimpl->Parallel(&Module::setExptime, pos, gateIndex, t.count()); + updateRxRateCorrections(); } Result> Detector::getExptimeForAllGates(Positions pos) const {