diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServerv8.0.0 b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServerv8.0.0 index cc1d6e456..87c08d8c7 100755 Binary files a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServerv8.0.0 and b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServerv8.0.0 differ diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServerv8.0.0 b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServerv8.0.0 index 4c0c6d764..ae65b3b0a 100755 Binary files a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServerv8.0.0 and b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServerv8.0.0 differ diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServerv8.0.0 b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServerv8.0.0 index 7d1d5f950..c1c4c1166 100755 Binary files a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServerv8.0.0 and b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServerv8.0.0 differ diff --git a/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServerv8.0.0 b/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServerv8.0.0 index 473b153f8..c660b2ef2 100755 Binary files a/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServerv8.0.0 and b/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServerv8.0.0 differ diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServerv8.0.0 b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServerv8.0.0 index 6df1b8460..b66b818e9 100755 Binary files a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServerv8.0.0 and b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServerv8.0.0 differ diff --git a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServerv8.0.0 b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServerv8.0.0 index 52a6c6e67..88ca14c1a 100755 Binary files a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServerv8.0.0 and b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServerv8.0.0 differ diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServerv8.0.0 b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServerv8.0.0 index b4bcffd6a..bf54ab681 100755 Binary files a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServerv8.0.0 and b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServerv8.0.0 differ diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index aa4bb48a5..2aaa243c3 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -4772,7 +4772,8 @@ int set_read_n_rows(int file_des) { functionNotImplemented(); #else // only set - if (Server_VerifyLock() == OK) { + if ((Server_VerifyLock() == OK) && + (check_detector_idle("set number of rows") == OK)) { if (arg < MIN_ROWS_PER_READOUT || arg > MAX_ROWS_PER_READOUT) { ret = FAIL; sprintf(mess, @@ -4804,8 +4805,7 @@ int set_read_n_rows(int file_des) { LOG(logERROR, (mess)); } else #elif defined(JUNGFRAUD) || defined(MOENCHD) - if ((check_detector_idle("set number of rows") == OK) && - (arg % READ_N_ROWS_MULTIPLE != 0)) { + if (arg % READ_N_ROWS_MULTIPLE != 0) { ret = FAIL; sprintf(mess, "Could not set number of rows. %d must be a multiple " @@ -8472,9 +8472,9 @@ int set_master(int file_des) { functionNotImplemented(); #else // only set - if (Server_VerifyLock() == OK) { - if ((check_detector_idle("set master") == OK) && - (arg != 0 && arg != 1)) { + if ((Server_VerifyLock() == OK) && + (check_detector_idle("set master") == OK)) { + if (arg != 0 && arg != 1) { ret = FAIL; sprintf(mess, "Could not set master. Invalid argument %d.\n", arg); LOG(logERROR, (mess)); @@ -9028,9 +9028,9 @@ int set_flip_rows(int file_des) { functionNotImplemented(); #else // only set - if (Server_VerifyLock() == OK) { - if ((check_detector_idle("set flip rows") == OK) && - (arg != 0 && arg != 1)) { + if ((Server_VerifyLock() == OK) && + (check_detector_idle("set flip rows") == OK)) { + if (arg != 0 && arg != 1) { ret = FAIL; sprintf(mess, "Could not set flip rows. Invalid argument %d.\n", arg); @@ -10365,9 +10365,9 @@ int set_synchronization(int file_des) { functionNotImplemented(); #else // only set - if (Server_VerifyLock() == OK) { - if ((check_detector_idle("set synchronization") == OK) && - (arg != 0 && arg != 1)) { + if ((Server_VerifyLock() == OK) && + (check_detector_idle("set synchronization") == OK)) { + if (arg != 0 && arg != 1) { ret = FAIL; sprintf(mess, "Could not set synchronization. Invalid argument %d.\n", diff --git a/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp b/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp index ce1b75cdb..27b652f4d 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-jungfrau.cpp @@ -705,6 +705,34 @@ TEST_CASE("sync", "[.cmd]") { proxy.Call("sync", {}, -1, GET, oss); REQUIRE(oss.str() == "sync 1\n"); } + // setting sync when running + { + auto prev_timing = + det.getTimingMode().tsquash("inconsistent timing mode in test"); + auto prev_frames = + det.getNumberOfFrames().tsquash("inconsistent #frames in test"); + auto prev_exptime = + det.getExptime().tsquash("inconsistent exptime in test"); + auto prev_period = + det.getPeriod().tsquash("inconsistent period in test"); + det.setTimingMode(defs::AUTO_TIMING); + det.setNumberOfFrames(10000); + det.setExptime(std::chrono::microseconds(200)); + det.setPeriod(std::chrono::milliseconds(1000)); + det.setSynchronization(1); + det.startDetector(); + REQUIRE_THROWS(proxy.Call("sync", {"0"}, -1, PUT)); + { + std::ostringstream oss; + proxy.Call("sync", {}, -1, GET, oss); + REQUIRE(oss.str() == "sync 1\n"); + } + det.stopDetector(); + det.setTimingMode(prev_timing); + det.setNumberOfFrames(prev_frames); + det.setExptime(prev_exptime); + det.setPeriod(prev_period); + } det.setSynchronization(prev_val); } else { REQUIRE_THROWS(proxy.Call("sync", {}, -1, GET)); diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 015d3b2a2..5410d5e07 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -2,12 +2,12 @@ // Copyright (C) 2021 Contributors to the SLS Detector Package /** API versions */ #define RELEASE "8.0.0" -#define APICTB "8.0.0 0x231108" -#define APIGOTTHARD "8.0.0 0x231108" -#define APIGOTTHARD2 "8.0.0 0x231108" -#define APIJUNGFRAU "8.0.0 0x231108" -#define APIMYTHEN3 "8.0.0 0x231108" -#define APIMOENCH "8.0.0 0x231108" -#define APIEIGER "8.0.0 0x231108" #define APILIB "8.0.0 0x231108" #define APIRECEIVER "8.0.0 0x231108" +#define APICTB "8.0.0 0x231109" +#define APIGOTTHARD "8.0.0 0x231109" +#define APIGOTTHARD2 "8.0.0 0x231109" +#define APIJUNGFRAU "8.0.0 0x231109" +#define APIMYTHEN3 "8.0.0 0x231109" +#define APIMOENCH "8.0.0 0x231109" +#define APIEIGER "8.0.0 0x231109"