diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index f39cd4338..b6375e86b 100755 Binary files a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer and b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer differ diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer index 1b6e80fad..53285add3 100755 Binary files a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer and b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer differ diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h index a8e8a0840..9fdaf0506 100644 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorServer_defs.h @@ -1,7 +1,7 @@ #pragma once #include "sls_detector_defs.h" -#define REQUIRED_FIRMWARE_VERSION (26) +#define REQUIRED_FIRMWARE_VERSION (27) #define IDFILECOMMAND "more /home/root/executables/detid.txt" #define CONFIG_FILE ("config_eiger.txt") #define WAIT_STOP_SERVER_START (1 * 1000 * 1000) diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer index d5cb5cf0c..583f6bda8 100755 Binary files a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer and b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer differ diff --git a/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer b/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer index 4eae4ccd7..27b78b752 100755 Binary files a/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer and b/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer differ diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index a227c9c7c..74c240203 100755 Binary files a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer and b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer differ diff --git a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer index eb7e601b9..22ee4822b 100755 Binary files a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer and b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer differ diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 8b072d9d3..e4075386f 100755 Binary files a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer and b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer differ diff --git a/slsDetectorSoftware/include/Detector.h b/slsDetectorSoftware/include/Detector.h index 244d30260..217e5dcd2 100644 --- a/slsDetectorSoftware/include/Detector.h +++ b/slsDetectorSoftware/include/Detector.h @@ -354,12 +354,13 @@ class Detector { /** * (Degrees) - * [Gotthard] Options: TEMPERATURE_ADC, TEMPERATURE_FPGA - * [Jungfrau] Options: TEMPERATURE_ADC, TEMPERATURE_FPGA + * [Gotthard] Options: TEMPERATURE_ADC, TEMPERATURE_FPGA \n + * [Jungfrau] Options: TEMPERATURE_ADC, TEMPERATURE_FPGA \n * [Eiger] Options: TEMPERATURE_FPGA, TEMPERATURE_FPGAEXT, TEMPERATURE_10GE, * TEMPERATURE_DCDC, TEMPERATURE_SODL, TEMPERATURE_SODR, TEMPERATURE_FPGA2, - * TEMPERATURE_FPGA3 - * [CTB] Options: SLOW_ADC_TEMP + * TEMPERATURE_FPGA3 \n + * Cannot call TEMPERATURE_FPGA2 and TEMPERATURE_FPGA3 when blocking acquire + * in progress \n [CTB] Options: SLOW_ADC_TEMP */ Result getTemperature(defs::dacIndex index, Positions pos = {}) const; diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index 63c51fc90..692807d65 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -1957,29 +1957,25 @@ std::string CmdProxy::SlowAdc(int action) { std::ostringstream os; os << cmd << ' '; if (action == defs::HELP_ACTION) { - os << "[n_channel (0-7 for channel|8 for temperature)]\n\t[Ctb] Slow " - "ADC channel in mV or °C." + os << "[n_channel (0-7 for channel]\n\t[Ctb] Slow " + "ADC channel in mV" << '\n'; } else if (action == defs::GET_ACTION) { if (args.size() != 1) { WrongNumberOfParameters(0); } int nchan = StringTo(args[0]); - if (nchan < 0 || nchan > defs::SLOW_ADC_TEMP - defs::SLOW_ADC0) { + if (nchan < 0 || nchan > 7) { throw sls::RuntimeError("Unknown adc argument " + args[0]); } - if (nchan == 8) { - auto t = det->getTemperature(defs::SLOW_ADC_TEMP, {det_id}); - os << OutString(t) << " °C\n"; - } else { - auto t = det->getSlowADC( - static_cast(nchan + defs::SLOW_ADC0), {det_id}); - Result result(t.size()); - for (unsigned int i = 0; i < t.size(); ++i) { - result[i] = t[i] / 1000.00; - } - os << OutString(result) << " mV\n"; + auto t = det->getSlowADC( + static_cast(nchan + defs::SLOW_ADC0), {det_id}); + Result result(t.size()); + for (unsigned int i = 0; i < t.size(); ++i) { + result[i] = t[i] / 1000.00; } + os << OutString(result) << " mV\n"; + } else if (action == defs::PUT_ACTION) { throw sls::RuntimeError("cannot put"); } else { diff --git a/slsDetectorSoftware/src/CmdProxy.h b/slsDetectorSoftware/src/CmdProxy.h index f5c26c8f5..542653e77 100644 --- a/slsDetectorSoftware/src/CmdProxy.h +++ b/slsDetectorSoftware/src/CmdProxy.h @@ -614,6 +614,7 @@ class CmdProxy { /* Gotthard2 Specific */ /* Mythen3 Specific */ /* CTB Specific */ + {"adc", "slowadc"}, {"flags", "romode"}, {"i_a", "im_a"}, {"i_b", "im_b"}, @@ -938,7 +939,7 @@ class CmdProxy { {"im_c", &CmdProxy::im_c}, {"im_d", &CmdProxy::im_d}, {"im_io", &CmdProxy::im_io}, - {"adc", &CmdProxy::SlowAdc}, + {"slowadc", &CmdProxy::SlowAdc}, {"extsampling", &CmdProxy::extsampling}, {"extsamplingsrc", &CmdProxy::extsamplingsrc}, {"rx_dbitlist", &CmdProxy::ReceiverDbitList}, @@ -1282,11 +1283,13 @@ class CmdProxy { GET_IND_COMMAND( temp_fpgafl, getTemperature, slsDetectorDefs::TEMPERATURE_FPGA2, " °C", - "[n_value]\n\t[Eiger]Temperature of the left front end board fpga"); + "[n_value]\n\t[Eiger]Temperature of the left front end board fpga. " + "Cannot call this while blocking acquire is going on."); GET_IND_COMMAND( temp_fpgafr, getTemperature, slsDetectorDefs::TEMPERATURE_FPGA3, " °C", - "[n_value]\n\t[Eiger]Temperature of the left front end board fpga"); + "[n_value]\n\t[Eiger]Temperature of the left front end board fpga. " + "Cannot call this while blocking acquire is going on."); GET_IND_COMMAND(temp_slowadc, getTemperature, slsDetectorDefs::SLOW_ADC_TEMP, " °C", diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index e24d39e53..c383a61a2 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -357,6 +357,10 @@ void Module::setImageTestMode(const int value) { } int Module::getADC(dacIndex index) const { + // cannot access fpga links simultaneously (eiger) temp fix + if (index == TEMPERATURE_FPGA2 || index == TEMPERATURE_FPGA3) { + return sendToDetector(F_GET_ADC, index); + } return sendToDetectorStop(F_GET_ADC, index); } diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index 3b5afe6fa..17e69aee6 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -4,10 +4,10 @@ #define APIRECEIVER 0x200810 #define APIGUI 0x200804 -#define APICTB 0x200909 -#define APIGOTTHARD 0x200909 -#define APIGOTTHARD2 0x200909 -#define APIJUNGFRAU 0x200909 -#define APIMYTHEN3 0x200909 -#define APIMOENCH 0x200909 -#define APIEIGER 0x200909 +#define APICTB 0x200910 +#define APIGOTTHARD 0x200910 +#define APIGOTTHARD2 0x200910 +#define APIJUNGFRAU 0x200910 +#define APIMYTHEN3 0x200910 +#define APIMOENCH 0x200910 +#define APIEIGER 0x200910