release notes and help on python exptime help

This commit is contained in:
maliakal_d 2022-11-25 16:02:59 +01:00
parent 34acf553a1
commit 81cc6b0836
3 changed files with 138 additions and 24 deletions

View File

@ -1,7 +1,7 @@
SLS Detector Package Minor Release 7.0.0 released on 25.11.2021 SLS Detector Package Minor Release 7.0.0.rc1 released on xx.11.2021
=============================================================== ===================================================================
This document describes the differences between v7.0.0 and v6.x.x This document describes the differences between v7.0.0.rc1 and v6.1.2
@ -14,25 +14,90 @@ This document describes the differences between v7.0.0 and v6.x.x
5. Download, Documentation & Support 5. Download, Documentation & Support
Breaking API Resolved Issues
============================
Client
------
. [Eiger] Number of UDP interfaces
Command line: numinterfaces, API: getNumberofUDPInterfaces
This command now reflects the actual number of udp interfaces for Eiger,
which is 2.
. [Moench] Patsetbit and patsetmask
Command line: patsetbit API: getPatternBitMask/ setPatternBitMask
Command line: patmask API: getPatternMask/ setPatternMask
Exchanging the help and masks for patsetbit and patsetmask in the detector
server, especially in loading settings.
1. New or Changed Features . [Eiger] Datastream only for 10GbE
Command line: datastream, API: getDataStream/ setDataStream
This command to enable/ disable data stream from left or right port
is now allowed only for 10GbE.
Python
-------
. Python sub-microsecond resolution
Reading back sub-microsecond exposure times from the Python API fixed by
addig Python datetime supports only micro seconds as lowest unit.
This is fixed by introducing a new C++ type (DurationWrapper), which
holds number of nanoseconds as a uint64_t (only in python bindings) and
custom typecaster to convert to and from std::chrono::nanoseconds.
A get using API now returns in DurationWrapper, instead of datetime.
Refer exptime help for examples.
Receiver
--------
. Arping for 10GbE
Command line: rx_arping API: getRxArping/ setRxArping
Starts a thread in the receiver to arping the interface it is listening
to in 10GbE mode every 60 s.
Changes NUM_RX_THREAD_IDS (sls_detector_defs.h) from 8 to 9.
1. Other New or Changed Features
========================== ==========================
- Fixed minor warnings (will fix commandline print of excess packets for missing packets) Client
- ctb slow adcs and any other adcs (other than temp) goes to the control Server ------
- number of udp interfaces is 2 for Eiger (CHANGE IN API??)
- added module id for virtual servers into the udp header . [Moench][Ctb] Starting frame number
- refactoring (rxr) Command line: nextframenumber, API: getNextFrameNumber/ setNextFrameNumber
- fixed patsetbit and patsetmask for moench Added and default set up on detector server start up.
- changed default vref of adc9257 to 2V for moench (from 1.33V)
- moench and ctb - can set the starting frame number of next acquisition . [Eiger] Vtr
- mythen server kernel check incompatible (cet timezone) Allow Vtrim to be interpolated for settings.
- rx_arping
- rx_threadsids max is now 9 (breaking api) Detector Server
- fixed datastream disabling for eiger. Its only available in 10g mode. ---------------
- m3 server crash (vthrehsold dac names were not provided)
- allow vtrim to be interpolated for Eiger settings . [Moench] ADC9257 Vref
ADC Vref voltage modified from 1.33V to 2V
Simulator
---------
. [Eiger][Junfrau][Gotthard2][Mythen3] Module Id
Added into udp header
- m3 setThresholdEnergy and setAllThresholdEnergy was overwriting gaincaps with settings enum - m3 setThresholdEnergy and setAllThresholdEnergy was overwriting gaincaps with settings enum
- can set localhost with virtual server with minimum configuration: (hostname localhost, rx_hostname localhost, udp_dstip auto) - can set localhost with virtual server with minimum configuration: (hostname localhost, rx_hostname localhost, udp_dstip auto)
- increases the progress according to listened index. (not processed index) - increases the progress according to listened index. (not processed index)
@ -131,10 +196,43 @@ This document describes the differences between v7.0.0 and v6.x.x
- hardwareversion - hardwareversion
- jungfrau connected moduleid to detid_jungfrau.txt on board - jungfrau connected moduleid to detid_jungfrau.txt on board
- dac names for ctb?
2. Resolved Issues
2. Other Resolved Issues
================== ==================
- Reading back sub-microsecond exposure times from the Python API.
Client
------
. [Ctb] ADC command goes back to control server
Slow ADCs, slow ADC temperature, get measured current and voltage values
are requested via the control server again insetad of the stop server
due to configuration and definitions in the control server.
Detecor Server
--------------
. [Mythne3] Kernel version compatibility test
Fix added to parse properly the kernel version with CET for corrected
version compatibility test.
. [Mythen3] Server crash for setting vthrehsold
Fixed.
Receiver
--------
. refactored and fixed minor issues
- 200%in acquire
.
3. Firmware Requirements 3. Firmware Requirements
======================== ========================

View File

@ -466,16 +466,32 @@ class Detector(CppDetectorApi):
----- -----
[Mythen3] sets exposure time to all gate signals in auto and trigger mode (internal gating). To specify gateIndex, use getExptime or setExptime. [Mythen3] sets exposure time to all gate signals in auto and trigger mode (internal gating). To specify gateIndex, use getExptime or setExptime.
:getter: always returns in seconds. To get in datetime.delta, use getExptime :getter: always returns in seconds. To get in DurationWrapper, use getExptime
Example Example
----------- -----------
>>> # setting directly in seconds
>>> d.exptime = 1.05 >>> d.exptime = 1.05
>>> d.exptime = datetime.timedelta(minutes = 3, seconds = 1.23) >>>
>>> # using timedelta (up to microseconds precision)
>>> from datatime import timedelta
>>> d.exptime = timedelta(seconds = 1, microseconds = 3)
>>>
>>> # using DurationWrapper to set in seconds
>>> from slsdet import DurationWrapper
>>> d.exptime = DurationWrapper(1.2)
>>>
>>> # using DurationWrapper to set in ns
>>> t = DurationWrapper()
>>> t.set_count(500)
>>> d.exptime = t
>>>
>>> # to get in seconds
>>> d.exptime >>> d.exptime
181.23 181.23
>>>
>>> d.getExptime() >>> d.getExptime()
[datetime.timedelta(seconds=181, microseconds=230000)] [sls::DurationWrapper(total_seconds: 1e-08 count: 10)]
""" """
if self.type == detectorType.MYTHEN3: if self.type == detectorType.MYTHEN3:
res = self.getExptimeForAllGates() res = self.getExptimeForAllGates()

View File

@ -665,7 +665,7 @@ class Detector {
* * * *
* ************************************************/ * ************************************************/
/** [Jungfrau][Gotthard2] */ /** [Jungfrau][Gotthard2][Eiger] */
Result<int> getNumberofUDPInterfaces(Positions pos = {}) const; Result<int> getNumberofUDPInterfaces(Positions pos = {}) const;
/** [Jungfrau][Gotthard2] Number of udp interfaces to stream data from /** [Jungfrau][Gotthard2] Number of udp interfaces to stream data from