mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-23 23:10:02 +02:00
7.0.3.rc: fix server logic in checking detector idle (#859)
* fix buggy logic in checking detector idle and an argument check
This commit is contained in:
parent
14e11e8b5b
commit
c64e87a2b6
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -4667,7 +4667,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 <= 0 || arg > MAX_ROWS_PER_READOUT) {
|
||||
ret = FAIL;
|
||||
sprintf(mess,
|
||||
@ -4699,8 +4700,7 @@ int set_read_n_rows(int file_des) {
|
||||
LOG(logERROR, (mess));
|
||||
} else
|
||||
#elif JUNGFRAUD
|
||||
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 "
|
||||
@ -8283,9 +8283,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));
|
||||
@ -8839,9 +8839,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);
|
||||
@ -10163,9 +10163,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",
|
||||
|
@ -550,6 +550,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));
|
||||
|
@ -2,12 +2,12 @@
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
/** API versions */
|
||||
#define RELEASE "7.0.3"
|
||||
#define APICTB "7.0.3 0x231107"
|
||||
#define APIGOTTHARD "7.0.3 0x231107"
|
||||
#define APIGOTTHARD2 "7.0.3 0x231107"
|
||||
#define APIJUNGFRAU "7.0.3 0x231107"
|
||||
#define APIMYTHEN3 "7.0.3 0x231107"
|
||||
#define APIMOENCH "7.0.3 0x231107"
|
||||
#define APIEIGER "7.0.3 0x231107"
|
||||
#define APILIB "7.0.3 0x231108"
|
||||
#define APIRECEIVER "7.0.3 0x231108"
|
||||
#define APICTB "7.0.3 0x231109"
|
||||
#define APIGOTTHARD "7.0.3 0x231109"
|
||||
#define APIGOTTHARD2 "7.0.3 0x231109"
|
||||
#define APIJUNGFRAU "7.0.3 0x231109"
|
||||
#define APIMYTHEN3 "7.0.3 0x231109"
|
||||
#define APIMOENCH "7.0.3 0x231109"
|
||||
#define APIEIGER "7.0.3 0x231109"
|
||||
|
Loading…
x
Reference in New Issue
Block a user