gotthard2 server: tolerance in time parameters fixed by adding 0.5

This commit is contained in:
maliakal_d 2021-07-14 12:26:29 +02:00
parent 2f2fe4dd47
commit 2d182f3cee
2 changed files with 19 additions and 26 deletions

View File

@ -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

View File

@ -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