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 Client
------ ------
1. Added settings and threshold features for Mythen3. 1.
2. Internal modification of acquire for Mythen3.
3. Added getMaster for Mythen3
4. Mythen3, API function to set pattern from memory
Mythen3 server Mythen3 server
----------------- -----------------
1. Setting timing to auto, sets timing to trigger for slaves 1.
2. Resolved Issues 2. Resolved Issues
@ -41,23 +38,19 @@ This document describes the differences between 5.1.0 and 5.0.1 releases.
Receiver Receiver
-------- --------
1. Current code only calls Implementation::setDetectorType from constructor, 1.
but potential memory leak if called out of constructor context. Fixed.
Client 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 1. Tolerance in time parameters.
Eg. 220 ns was being set to 215 ns, instead of 222ns.
Server
--------
1. Bottom port not mirrored correctly for Eiger quad
@ -66,18 +59,18 @@ This document describes the differences between 5.1.0 and 5.0.1 releases.
3. Firmware Requirements 3. Firmware Requirements
======================== ========================
Mythen3: 0x210201 //Mythen3: 0x210201
Jungfrau: 0x210218 (1.0 pcb) //Jungfrau: 0x210218 (1.0 pcb)
0x200721 (2.0 pcb, not changed) 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 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; return FAIL;
} }
LOG(logINFO, ("Setting exptime %lld ns\n", val)); 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); set64BitReg(val, ASIC_INT_EXPTIME_LSB_REG, ASIC_INT_EXPTIME_MSB_REG);
// validate for tolerance // validate for tolerance
@ -1014,7 +1014,7 @@ int setPeriod(int64_t val) {
// continuous // continuous
if (burstMode == CONTINUOUS_INTERNAL || burstMode == CONTINUOUS_EXTERNAL) { if (burstMode == CONTINUOUS_INTERNAL || burstMode == CONTINUOUS_EXTERNAL) {
LOG(logINFO, ("Setting period %lld ns [Continuous mode]\n", val)); LOG(logINFO, ("Setting period %lld ns [Continuous mode]\n", val));
val *= (1E-9 * systemFrequency); val = (val * 1E-9 * systemFrequency) + 0.5;
// trigger // trigger
if (getTiming() == TRIGGER_EXPOSURE) { if (getTiming() == TRIGGER_EXPOSURE) {
LOG(logINFO, LOG(logINFO,
@ -1029,7 +1029,7 @@ int setPeriod(int64_t val) {
// burst // burst
else { else {
LOG(logINFO, ("Setting period %lld ns [Burst mode]\n", val)); 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); set64BitReg(val, ASIC_INT_PERIOD_LSB_REG, ASIC_INT_PERIOD_MSB_REG);
} }
periodReg = val; periodReg = val;
@ -1067,7 +1067,7 @@ int setDelayAfterTrigger(int64_t val) {
return FAIL; return FAIL;
} }
LOG(logINFO, ("Setting delay after trigger %lld ns\n", val)); LOG(logINFO, ("Setting delay after trigger %lld ns\n", val));
val *= (1E-9 * systemFrequency); val = (val * 1E-9 * systemFrequency) + 0.5;
delayReg = val; delayReg = val;
if (getTiming() == AUTO_TIMING) { if (getTiming() == AUTO_TIMING) {
LOG(logINFO, ("\tAuto mode (not writing to register)\n")); LOG(logINFO, ("\tAuto mode (not writing to register)\n"));
@ -1097,7 +1097,7 @@ int setBurstPeriod(int64_t val) {
return FAIL; return FAIL;
} }
LOG(logINFO, ("Setting burst period %lld ns\n", val)); LOG(logINFO, ("Setting burst period %lld ns\n", val));
val *= (1E-9 * systemFrequency); val = (val * 1E-9 * systemFrequency) + 0.5;
burstPeriodReg = val; burstPeriodReg = val;
// burst and auto // burst and auto