diff --git a/RELEASE.txt b/RELEASE.txt index 1bc71e576..07682d45c 100755 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -30,11 +30,11 @@ This document describes the differences between v6.1.0 and v6.0.0. - mythen server kernel check incompatible (cet timezone) - rx_arping - rx_threadsids max is now 9 (breaking api) +- fixed datastream disabling for eiger. Its only available in 10g mode. - m3 server crash (vthrehsold) - allow vtrim to be interpolated for Eiger settings - 2. Resolved Issues ================== diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index 99c4e1a48..4c2996d29 100755 Binary files a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer and b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer differ diff --git a/slsDetectorServers/eigerDetectorServer/Beb.c b/slsDetectorServers/eigerDetectorServer/Beb.c index 57fcd5a9a..90512c7b1 100644 --- a/slsDetectorServers/eigerDetectorServer/Beb.c +++ b/slsDetectorServers/eigerDetectorServer/Beb.c @@ -492,6 +492,11 @@ int Beb_SetDataStream(enum portPosition port, int enable) { u_int32_t reg = XPAR_GPIO_P15_STREAMING_REG; u_int32_t mask = (port == LEFT ? XPAR_GPIO_LFT_STRM_DSBL_MSK : XPAR_GPIO_RGHT_STRM_DSBL_MSK); + // invert left/right if bottom + if (!Beb_top) { + mask = (port == LEFT ? XPAR_GPIO_RGHT_STRM_DSBL_MSK + : XPAR_GPIO_LFT_STRM_DSBL_MSK); + } u_int32_t value = Beb_Read32(csp0base, reg); // disabling in firmware @@ -529,6 +534,11 @@ int Beb_GetDataStream(enum portPosition port, int *retval) { u_int32_t reg = XPAR_GPIO_P15_STREAMING_REG; u_int32_t mask = (port == LEFT ? XPAR_GPIO_LFT_STRM_DSBL_MSK : XPAR_GPIO_RGHT_STRM_DSBL_MSK); + // invert left/right if bottom + if (!Beb_top) { + mask = (port == LEFT ? XPAR_GPIO_RGHT_STRM_DSBL_MSK + : XPAR_GPIO_LFT_STRM_DSBL_MSK); + } u_int32_t value = Beb_Read32(csp0base, reg); // disabling in firmware @@ -682,6 +692,10 @@ int Beb_GetTransmissionDelayLeft() { return Beb_deactivated_transmission_delay_left; } u_int32_t offset = TXM_DELAY_LEFT_OFFSET; + // invert left/right if bottom + if (!Beb_top) { + offset = TXM_DELAY_RIGHT_OFFSET; + } u_int32_t *csp0base = 0; int fd = Beb_open(&csp0base, XPAR_PLB_GPIO_SYS_BASEADDR); if (fd <= 0) { @@ -706,6 +720,10 @@ int Beb_SetTransmissionDelayLeft(int value) { return 1; } u_int32_t offset = TXM_DELAY_LEFT_OFFSET; + // invert left/right if bottom + if (!Beb_top) { + offset = TXM_DELAY_RIGHT_OFFSET; + } u_int32_t *csp0base = 0; int fd = Beb_open(&csp0base, XPAR_PLB_GPIO_SYS_BASEADDR); if (fd <= 0) { @@ -726,6 +744,10 @@ int Beb_GetTransmissionDelayRight() { } u_int32_t offset = TXM_DELAY_RIGHT_OFFSET; + // invert left/right if bottom + if (!Beb_top) { + offset = TXM_DELAY_LEFT_OFFSET; + } u_int32_t *csp0base = 0; int fd = Beb_open(&csp0base, XPAR_PLB_GPIO_SYS_BASEADDR); if (fd <= 0) { @@ -750,6 +772,10 @@ int Beb_SetTransmissionDelayRight(int value) { return 1; } u_int32_t offset = TXM_DELAY_RIGHT_OFFSET; + // invert left/right if bottom + if (!Beb_top) { + offset = TXM_DELAY_LEFT_OFFSET; + } u_int32_t *csp0base = 0; int fd = Beb_open(&csp0base, XPAR_PLB_GPIO_SYS_BASEADDR); if (fd <= 0) { diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer index 42ec39faf..d180ff497 100755 Binary files a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer and b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer differ diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer index 556fdd5e1..08c19526e 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 5636abce9..de16b7c17 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 ae900b7b6..a9a35d676 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 1e2331b9e..de438fc0d 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 f6230dd8b..ab966aac9 100755 Binary files a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer and b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer differ diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index a72de966d..519080e97 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -2932,7 +2932,7 @@ int enable_ten_giga(int file_des) { if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) return printSocketReadError(); - LOG(logINFOBLUE, ("Setting 10GbE: %d\n", arg)); + LOG(logDEBUG, ("Setting 10GbE: %d\n", arg)); #if defined(JUNGFRAUD) || defined(GOTTHARDD) || defined(GOTTHARD2D) functionNotImplemented(); @@ -8266,6 +8266,9 @@ int get_datastream(int file_des) { "Only left and right allowed\n", arg); LOG(logERROR, (mess)); + } else if (enableTenGigabitEthernet(GET_FLAG) == 0) { + retval = 1; + LOG(logINFO, ("Datastream always enabled for 1g\n")); } else { ret = getDataStream(arg, &retval); LOG(logDEBUG1, ("datastream (%s) retval: %u\n", @@ -8312,6 +8315,14 @@ int set_datastream(int file_des) { ret = FAIL; sprintf(mess, "Could not %s. Invalid enable %d. \n", msg, enable); LOG(logERROR, (mess)); + } else if (enableTenGigabitEthernet(GET_FLAG) == 0 && enable == 0) { + ret = FAIL; + sprintf(mess, + "Could not %s. Disabling is only enabled in 10g mode.\n", + msg); + LOG(logERROR, (mess)); + } else if (enableTenGigabitEthernet(GET_FLAG) == 0 && enable == 1) { + LOG(logINFO, ("Datastream always enabled for 1g\n")); } else { ret = setDataStream(port, enable); if (ret == FAIL) { diff --git a/slsReceiverSoftware/src/Implementation.cpp b/slsReceiverSoftware/src/Implementation.cpp index 6a7b7d896..0fdcee058 100644 --- a/slsReceiverSoftware/src/Implementation.cpp +++ b/slsReceiverSoftware/src/Implementation.cpp @@ -635,25 +635,25 @@ void Implementation::stopReceiver() { std::to_string(std::abs(mp[i])) + std::string(" (Extra)"); } + std::string summary; + if (!activated) { + summary = "\n\tDeactivated Receiver"; + } else if (!detectorDataStream[i]) { + summary = (i == 0 ? "\n\tDeactivated Left Port" + : "\n\tDeactivated Right Port"); + } else { + std::ostringstream os; + os << "\n\tMissing Packets\t\t: " << mpMessage + << "\n\tComplete Frames\t\t: " << nf + << "\n\tLast Frame Caught\t: " + << listener[i]->GetLastFrameIndexCaught(); + summary = os.str(); + } + TLogLevel lev = ((mp[i]) > 0) ? logINFORED : logINFOGREEN; - LOG(lev) << - // udp port number could be the second if selected interface is - // 2 for jungfrau - "Summary of Port " << udpPortNum[i] - << "\n\tMissing Packets\t\t: " << mpMessage - << "\n\tComplete Frames\t\t: " << nf - << "\n\tLast Frame Caught\t: " - << listener[i]->GetLastFrameIndexCaught(); - } - if (!activated) { - LOG(logINFORED) << "Deactivated Receiver"; - } - if (!detectorDataStream[0]) { - LOG(logINFORED) << "Deactivated Left Port"; - } - if (!detectorDataStream[1]) { - LOG(logINFORED) << "Deactivated Right Port"; + LOG(lev) << "Summary of Port " << udpPortNum[i] << summary; } + // callback if (acquisitionFinishedCallBack) { try { diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index cca4d31d3..9b9902df8 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -11,5 +11,5 @@ #define APIGOTTHARD2 0x220203 #define APIJUNGFRAU 0x220203 #define APIMYTHEN3 0x220203 -#define APIMOENCH 0x220202 -#define APIEIGER 0x220203 +#define APIMOENCH 0x220203 +#define APIEIGER 0x220204