diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 9632fb408..4c487d6a6 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -196,6 +196,7 @@ void Module::setSettings(detectorSettings isettings) { "Cannot set settings for Eiger. Use threshold energy."); } sendToDetector(F_SET_SETTINGS, isettings); + updateRxThresholdEnergyMetadata(); } int Module::getThresholdEnergy() const { @@ -414,9 +415,14 @@ void Module::setAllThresholdEnergy(std::array e_eV, throw RuntimeError("setThresholdEnergyAndSettings: Could not set " "settings in Module"); } +} +void Module::updateRxThresholdEnergyMetadata() { if (shm()->useReceiverFlag) { - sendToReceiver(F_RECEIVER_SET_ALL_THRESHOLD, e_eV, nullptr); + if (shm()->detType == MYTHEN3) { + auto e_eV = getAllThresholdEnergy(); + sendToReceiver(F_RECEIVER_SET_ALL_THRESHOLD, e_eV, nullptr); + } } } @@ -477,6 +483,7 @@ int Module::getAllTrimbits() const { void Module::setAllTrimbits(int val) { sendToDetector(F_SET_ALL_TRIMBITS, val); + updateRxThresholdEnergyMetadata(); } std::vector Module::getTrimEn() const { @@ -784,6 +791,7 @@ void Module::setDAC(int val, dacIndex index, bool mV) { } int args[]{static_cast(index), static_cast(mV), val}; sendToDetector(F_SET_DAC, args); + updateRxThresholdEnergyMetadata(); } bool Module::getPowerChip() const { @@ -3552,6 +3560,7 @@ void Module::setModule(sls_detector_module &module, bool trimbits) { client.sendCommand(F_SET_MODULE, nullptr, 0); sendModule(&module, client); client.readReply(nullptr, 0); + updateRxThresholdEnergyMetadata(); } sls_detector_module Module::getModule() { diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index c1bfa046d..49d7812ac 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -111,6 +111,7 @@ class Module : public virtual slsDetectorDefs { void setAllThresholdEnergy(std::array e_eV, detectorSettings isettings, bool trimbits); std::string getSettingsDir() const; + void updateRxThresholdEnergyMetadata(); std::string setSettingsDir(const std::string &dir); void loadTrimbits(const std::string &fname); void saveTrimbits(const std::string &fname);