diff --git a/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h b/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h index 99290ced9..b7d775e59 100755 --- a/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h +++ b/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h @@ -435,10 +435,9 @@ #define ASIC_CTRL_DS_TMR_MSK (0x000000FF << ASIC_CTRL_DS_TMR_OFST) #define ASIC_CTRL_DS_TMR_VAL ((0x1F << ASIC_CTRL_DS_TMR_OFST) & ASIC_CTRL_DS_TMR_MSK) // tET = (ET + 1) * 25ns (increase timeout range between 2 consecutive storage cells) -#define ASIC_CTRL_EXPSRE_TMR_STEPS (25) #define ASIC_CTRL_EXPSRE_TMR_OFST (16) #define ASIC_CTRL_EXPSRE_TMR_MSK (0x0000FFFF << ASIC_CTRL_EXPSRE_TMR_OFST) - +#define ASIC_CTRL_EXPSRE_TMR_MAX_VAL (0x0000FFFF / (CLK_RUN * 1E-3)) /* ADC 0 Deserializer Control */ diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index 29052d338..325844c65 100755 Binary files a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer and b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer differ diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index 2e9f67aec..9fc05a89c 100755 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -653,7 +653,7 @@ int64_t setTimer(enum timerIndex ind, int64_t val) { ((val << ASIC_CTRL_EXPSRE_TMR_OFST) & ASIC_CTRL_EXPSRE_TMR_MSK)); } - retval = ((bus_r(ASIC_CTRL_REG) & ASIC_CTRL_EXPSRE_TMR_MSK) >> ASIC_CTRL_EXPSRE_TMR_OFST); + retval = (((int64_t)((bus_r(ASIC_CTRL_REG) & ASIC_CTRL_EXPSRE_TMR_MSK) >> ASIC_CTRL_EXPSRE_TMR_OFST))/ (1E-3 * CLK_RUN)); FILE_LOG(logDEBUG1, ("Getting storage cell delay: %lldns\n", (long long int)retval)); break; diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h index 61a8d9ca8..305f11355 100755 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -86,7 +86,7 @@ enum NETWORKINDEX { TXN_FRAME, FLOWCTRL_10G }; #define MAX_TIMESLOT_VAL (0x1F) #define MAX_THRESHOLD_TEMP_VAL (127999) //millidegrees #define MAX_STORAGE_CELL_VAL (15) //0xF -#define MAX_STORAGE_CELL_DLY_NS_VAL ((ASIC_CTRL_EXPSRE_TMR_MSK >> ASIC_CTRL_EXPSRE_TMR_OFST) * ASIC_CTRL_EXPSRE_TMR_STEPS) +#define MAX_STORAGE_CELL_DLY_NS_VAL (ASIC_CTRL_EXPSRE_TMR_MAX_VAL) #define ACQ_TIME_MIN_CLOCK (2) #define MAX_PHASE_SHIFTS (160) diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index d459615bf..2525bacb0 100755 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -1875,7 +1875,7 @@ int set_timer(int file_des) { case STORAGE_CELL_DELAY: if (tns > MAX_STORAGE_CELL_DLY_NS_VAL) { ret = FAIL; - sprintf(mess,"Max Storage cell delay value should not exceed %d ns\n", MAX_STORAGE_CELL_DLY_NS_VAL); + sprintf(mess,"Max Storage cell delay value should not exceed %lld ns\n", (long long unsigned int)MAX_STORAGE_CELL_DLY_NS_VAL); FILE_LOG(logERROR,(mess)); break; } diff --git a/slsDetectorSoftware/include/CmdProxy.h b/slsDetectorSoftware/include/CmdProxy.h index f890cc63c..c89ef8fc1 100644 --- a/slsDetectorSoftware/include/CmdProxy.h +++ b/slsDetectorSoftware/include/CmdProxy.h @@ -1096,7 +1096,7 @@ class CmdProxy { "[0-15]\n\t[Jungfrau] Storage cell that stores the first acquisition of the series. Default is 15. For advanced users only."); TIME_COMMAND(storagecell_delay, getStorageCellDelay, setStorageCellDelay, - "[duration (0-1638375 ns)] [(optional unit) ns|us|ms|s]\n\t[Jungfrau] Additional time delay between 2 storage cells. For advanced users only. Resolution is 25 ns."); + "[duration (0-1638375 ns)] [(optional unit) ns|us|ms|s]\n\t[Jungfrau] Additional time delay between 2 consecutive exposures in burst mode (total time gap = (ET + 1 + 86) * 25ns). For advanced users only."); /* Gotthard Specific */ diff --git a/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp b/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp index f0c47b115..032479a81 100644 --- a/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp +++ b/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp @@ -645,7 +645,7 @@ TEST_CASE("exptimel", "[.cmd][.gotthard]") { TEST_CASE("periodl", "[.cmd][.gotthard]") { - if (test::type == slsDetectorDefs::GOTTHARD) { + if (test::type == slsDetectorDefs::GOTTHARD || test::type == slsDetectorDefs::JUNGFRAU) { REQUIRE_NOTHROW(multiSlsDetectorClient("frames 2", PUT)); REQUIRE_NOTHROW(multiSlsDetectorClient("period 5", PUT)); REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT)); @@ -693,20 +693,20 @@ TEST_CASE("storagecell_delay", "[.cmd][.jungfrau]") { if (test::type == slsDetectorDefs::JUNGFRAU) { { std::ostringstream oss; - multiSlsDetectorClient("storagecell_delay 2.25 ms", PUT, nullptr, oss); - REQUIRE(oss.str() == "storagecell_delay 2.25 ms\n"); + multiSlsDetectorClient("storagecell_delay 1.62ms", PUT, nullptr, oss); + REQUIRE(oss.str() == "storagecell_delay 1.62ms\n"); } { std::ostringstream oss; multiSlsDetectorClient("storagecell_delay", GET, nullptr, oss); - REQUIRE(oss.str() == "storagecell_delay 2.25s\n"); + REQUIRE(oss.str() == "storagecell_delay 1.62ms\n"); } { std::ostringstream oss; multiSlsDetectorClient("storagecell_delay 0", PUT, nullptr, oss); REQUIRE(oss.str() == "storagecell_delay 0\n"); } - REQUIRE_THROWS(multiSlsDetectorClient("storagecell_delay 1638400 ns", PUT)); + REQUIRE_THROWS(multiSlsDetectorClient("storagecell_delay 1638376ns", PUT)); } else { REQUIRE_THROWS(multiSlsDetectorClient("storagecell_delay", GET)); } diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index 0db01cacf..21ad3fd59 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -6,7 +6,7 @@ #define APIMOENCH 0x190820 #define APICTB 0x191011 #define APIGOTTHARD 0x191011 -#define APIJUNGFRAU 0x191011 #define APIMYTHEN3 0x191011 #define APIGOTTHARD2 0x191017 #define APIEIGER 0x191021 +#define APIJUNGFRAU 0x191022