From 24f012e6c76f7fd7a83aaae13b0c6a0577a4bcc8 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 17 Aug 2021 09:53:34 +0200 Subject: [PATCH] jungfrau: cannot set partial readout while acquiring --- .../slsDetectorFunctionList.c | 2 +- .../include/slsDetectorServer_funcs.h | 2 +- .../src/slsDetectorServer_funcs.c | 40 +++++++++---------- slsReceiverSoftware/src/Implementation.cpp | 2 +- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index d783c5b72..1b7c91d42 100644 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -2340,7 +2340,7 @@ void *start_timer(void *arg) { if (dr == 4) { npixels /= 2; } - LOG(logDBUG1, + LOG(logDEBUG1, ("pixels:%d pixelsperpacket:%d\n", npixels, pixelsPerPacket)); for (int i = 0; i < npixels; ++i) { if (i > 0 && i % pixelsPerPacket == 0) { diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h index dcb25d26a..ea1c86554 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h @@ -148,7 +148,7 @@ int set_partial_readout(int); int get_partial_readout(int); void calculate_and_set_position(); int set_detector_position(int); -int check_detector_idle(); +int check_detector_idle(const char *s); int is_udp_configured(); void configure_mac(); int set_source_udp_ip(int); diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 86c62d5de..0cd9fcfe0 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -4756,14 +4756,14 @@ int set_partial_readout(int file_des) { LOG(logERROR, (mess)); } else #elif JUNGFRAUD - if (arg % PARTIAL_READOUT_MULTIPLE != 0) { + if ((check_detector_idle("set partial readout") == OK) && (arg % PARTIAL_READOUT_MULTIPLE != 0)) { ret = FAIL; sprintf(mess, "Could not set partial readout. %d must be a multiple " "of %d\n", arg, PARTIAL_READOUT_MULTIPLE); - LOG(logERROR, (mess)); - } else + LOG(logERROR, (mess)); + } else #endif { if (setPartialReadout(arg) == FAIL) { @@ -4889,7 +4889,7 @@ int set_detector_position(int file_des) { // only set if (Server_VerifyLock() == OK) { - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { maxydet = args[0]; detectorId = args[1]; calculate_and_set_position(); @@ -4898,15 +4898,15 @@ int set_detector_position(int file_des) { return Server_SendResult(file_des, INT32, NULL, 0); } -int check_detector_idle() { +int check_detector_idle(const char *s) { enum runStatus status = getRunStatus(); if (status != IDLE && status != RUN_FINISHED && status != STOPPED && status != ERROR) { ret = FAIL; sprintf(mess, - "Cannot configure mac when detector is not idle. Detector at " + "Cannot %s when detector is not idle. Detector at " "%s state\n", - getRunStateName(status)); + s, getRunStateName(status)); LOG(logERROR, (mess)); } return ret; @@ -4998,7 +4998,7 @@ int set_source_udp_ip(int file_des) { // only set if (Server_VerifyLock() == OK) { - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { if (udpDetails.srcip != arg) { udpDetails.srcip = arg; configure_mac(); @@ -5037,7 +5037,7 @@ int set_source_udp_ip2(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { if (udpDetails.srcip2 != arg) { udpDetails.srcip2 = arg; configure_mac(); @@ -5077,7 +5077,7 @@ int set_dest_udp_ip(int file_des) { // only set if (Server_VerifyLock() == OK) { - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { if (udpDetails.dstip != arg) { udpDetails.dstip = arg; configure_mac(); @@ -5116,7 +5116,7 @@ int set_dest_udp_ip2(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { if (udpDetails.dstip2 != arg) { udpDetails.dstip2 = arg; configure_mac(); @@ -5155,7 +5155,7 @@ int set_source_udp_mac(int file_des) { // only set if (Server_VerifyLock() == OK) { - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { if (udpDetails.srcmac != arg) { udpDetails.srcmac = arg; configure_mac(); @@ -5192,7 +5192,7 @@ int set_source_udp_mac2(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { if (udpDetails.srcmac2 != arg) { udpDetails.srcmac2 = arg; configure_mac(); @@ -5230,7 +5230,7 @@ int set_dest_udp_mac(int file_des) { // only set if (Server_VerifyLock() == OK) { - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { if (udpDetails.dstmac != arg) { udpDetails.dstmac = arg; configure_mac(); @@ -5267,7 +5267,7 @@ int set_dest_udp_mac2(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { if (udpDetails.dstmac2 != arg) { udpDetails.dstmac2 = arg; configure_mac(); @@ -5305,7 +5305,7 @@ int set_dest_udp_port(int file_des) { // only set if (Server_VerifyLock() == OK) { - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { if (udpDetails.dstport != arg) { udpDetails.dstport = arg; configure_mac(); @@ -5342,7 +5342,7 @@ int set_dest_udp_port2(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { if (udpDetails.dstport2 != arg) { udpDetails.dstport2 = arg; configure_mac(); @@ -5389,7 +5389,7 @@ int set_num_interfaces(int file_des) { "Could not number of interfaces to %d. Options[1, 2]\n", arg); LOG(logERROR, (mess)); - } else if (check_detector_idle() == OK) { + } else if (check_detector_idle("configure mac") == OK) { if (getNumberofUDPInterfaces() != arg) { setNumberofUDPInterfaces(arg); calculate_and_set_position(); // aleady configures mac @@ -5435,7 +5435,7 @@ int set_interface_sel(int file_des) { sprintf(mess, "Could not set primary interface %d. Options[0, 1]\n", arg); LOG(logERROR, (mess)); - } else if (check_detector_idle() == OK) { + } else if (check_detector_idle("configure mac") == OK) { if (getPrimaryInterface() != arg) { selectPrimaryInterface(arg); configure_mac(); @@ -8086,7 +8086,7 @@ int reconfigure_udp(int file_des) { if (Server_VerifyLock() == OK) { LOG(logINFO, ("Reconfiguring UDP\n")); - if (check_detector_idle() == OK) { + if (check_detector_idle("configure mac") == OK) { configure_mac(); if (configured == FAIL) { ret = FAIL; diff --git a/slsReceiverSoftware/src/Implementation.cpp b/slsReceiverSoftware/src/Implementation.cpp index 65e725beb..e67c2ea05 100644 --- a/slsReceiverSoftware/src/Implementation.cpp +++ b/slsReceiverSoftware/src/Implementation.cpp @@ -477,7 +477,7 @@ std::vector Implementation::getNumMissingPackets() const { int np = generalData->packetsPerFrame; uint64_t totnp = np; // partial readout - if (partialReadout != generalData->maxRowsPerReadout) { + if (partialReadout != (int)generalData->maxRowsPerReadout) { totnp = ((partialReadout * np) / generalData->maxRowsPerReadout); } totnp *= numberOfTotalFrames;