From 2d182f3cee88d93d899d55457a8f92256a37208f Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 14 Jul 2021 12:26:29 +0200 Subject: [PATCH] gotthard2 server: tolerance in time parameters fixed by adding 0.5 --- RELEASE.txt | 35 ++++++++----------- .../slsDetectorFunctionList.c | 10 +++--- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/RELEASE.txt b/RELEASE.txt index 0af457ab5..b48f1069c 100755 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -1,7 +1,7 @@ -SLS Detector Package 5.1.0 released on 22.03.2020 (Minor Release) +SLS Detector Package 5.2.0 released on 15.07.2021 (Minor Release) =================================================================== -This document describes the differences between 5.1.0 and 5.0.1 releases. +This document describes the differences between 5.2.0 and 5.1.0 releases. @@ -22,16 +22,13 @@ This document describes the differences between 5.1.0 and 5.0.1 releases. Client ------ - 1. Added settings and threshold features for Mythen3. - 2. Internal modification of acquire for Mythen3. - 3. Added getMaster for Mythen3 - 4. Mythen3, API function to set pattern from memory + 1. Mythen3 server ----------------- - 1. Setting timing to auto, sets timing to trigger for slaves + 1. 2. Resolved Issues @@ -41,23 +38,19 @@ This document describes the differences between 5.1.0 and 5.0.1 releases. Receiver -------- - 1. Current code only calls Implementation::setDetectorType from constructor, - but potential memory leak if called out of constructor context. Fixed. + 1. Client ------ - 1. Fixed missing scanParameters class in Python + 1. - 2. cmk.sh refactored to have better option handling + Gotthard2 Server + ---------------- - 3. Fixed hardcoded path accidentally ending up in the exported CMake package - - Server - -------- - - 1. Bottom port not mirrored correctly for Eiger quad + 1. Tolerance in time parameters. + Eg. 220 ns was being set to 215 ns, instead of 222ns. @@ -66,18 +59,18 @@ This document describes the differences between 5.1.0 and 5.0.1 releases. 3. Firmware Requirements ======================== - Mythen3: 0x210201 - Jungfrau: 0x210218 (1.0 pcb) + //Mythen3: 0x210201 + //Jungfrau: 0x210218 (1.0 pcb) 0x200721 (2.0 pcb, not changed) - Other detectors no updates from 5.0.0 + Other detectors no updates from 5.1.0 4. Known Issues =============== - No updates from 5.0.0 + No updates from 5.1.0 diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c index 21f7baca1..8f4f60087 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c @@ -989,7 +989,7 @@ int setExpTime(int64_t val) { return FAIL; } LOG(logINFO, ("Setting exptime %lld ns\n", val)); - val *= (1E-9 * systemFrequency); + val = (val * 1E-9 * systemFrequency) + 0.5; set64BitReg(val, ASIC_INT_EXPTIME_LSB_REG, ASIC_INT_EXPTIME_MSB_REG); // validate for tolerance @@ -1014,7 +1014,7 @@ int setPeriod(int64_t val) { // continuous if (burstMode == CONTINUOUS_INTERNAL || burstMode == CONTINUOUS_EXTERNAL) { LOG(logINFO, ("Setting period %lld ns [Continuous mode]\n", val)); - val *= (1E-9 * systemFrequency); + val = (val * 1E-9 * systemFrequency) + 0.5; // trigger if (getTiming() == TRIGGER_EXPOSURE) { LOG(logINFO, @@ -1029,7 +1029,7 @@ int setPeriod(int64_t val) { // burst else { LOG(logINFO, ("Setting period %lld ns [Burst mode]\n", val)); - val *= (1E-9 * systemFrequency); + val = (val * 1E-9 * systemFrequency) + 0.5; set64BitReg(val, ASIC_INT_PERIOD_LSB_REG, ASIC_INT_PERIOD_MSB_REG); } periodReg = val; @@ -1067,7 +1067,7 @@ int setDelayAfterTrigger(int64_t val) { return FAIL; } LOG(logINFO, ("Setting delay after trigger %lld ns\n", val)); - val *= (1E-9 * systemFrequency); + val = (val * 1E-9 * systemFrequency) + 0.5; delayReg = val; if (getTiming() == AUTO_TIMING) { LOG(logINFO, ("\tAuto mode (not writing to register)\n")); @@ -1097,7 +1097,7 @@ int setBurstPeriod(int64_t val) { return FAIL; } LOG(logINFO, ("Setting burst period %lld ns\n", val)); - val *= (1E-9 * systemFrequency); + val = (val * 1E-9 * systemFrequency) + 0.5; burstPeriodReg = val; // burst and auto