release notes for 8.0.0

This commit is contained in:
maliakal_d 2023-11-12 16:08:45 +01:00
parent abbf647824
commit 04009414a0

View File

@ -1,134 +1,278 @@
SLS Detector Package Major Release 7.0.3 released on 13.11.2023 SLS Detector Package Major Release 8.0.0 released on 13.11.2023
=============================================================== ===============================================================
This document describes the differences between v7.0.3 and v7.0.2 This document describes the differences between v8.0.0 and v7.0.3
CONTENTS CONTENTS
-------- --------
1 Resolved Issues 1 Compilation Changes
2 On-board Detector Server Compatibility 2 New or Changed Features
3 Firmware Requirements 2.1 Breaking API
4 Kernel Requirements 2.2 Resolved or Changed Features
5 Download, Documentation & Support 2.3 New Features
3 On-board Detector Server Compatibility
4 Firmware Requirements
5 Kernel Requirements
6 Download, Documentation & Support
1 Resolved Issues
================= 2 Compilation Changes
=====================
* Minimum CMake version changed from 3.12 to 3.14
* Internal zmq lib
Building zmq from tar file in repo (libs/libzmq/libzmq-4.3.4.tar.gz),
but added option (SLS_FETCH_ZMQ_FROM_GITHUB) to pull zmq version (v4.3.4)
from github (https://github.com/zeromq/libzmq.git)
* Internal pybind11 lib
Building pybind11 from tar file in repo (libs/pybind11/v2.11.0.tar.gz),
but added option (SLS_FETCH_PYBIND11_FROM_GITHUB) to pull pybind11 version
(v2.11.0) from github (https://github.com/pybind/pybind11)
2 New, Changed or Resolved Features
=====================================
2.1 Breaking API
==================
Firmware Firmware
-------- --------
* [Jungfrau] Status register and Sync mode fix
The regiser bit definition changed and fixes for stable control in sync mode.
Effect: Master and slaves give same status (previously master is sometimes 'idle' when acquisition is stopped), same #frames left and #nextframenumber.
Also ERROR status connected, but never noticed to occur.
* [Eiger] Blocking trigger on quad For user, everything is transparent unless one touches status register
Previously, blocking software trigger on a quad was not blocking. Fixed using advanced commands.
with firmware v32.
* [Moench] Status: Development mode
Moench is now being made compatible with Jungfrau v2.0 readout boards.
Hence, firmware and software is in development mode.
7.x.x will continue to have fixes for Moench until this version is deployed.
* [Ctb] Fixes and features described later on.
Client Client
------ ======
* Limit port number max to 65535 * Datatype change of port numbers from int to uint16_t
Previously, one could set the port numbers (TCP, UDP, ZMQ) to values API: setVirtualDetectorServers,
higher than 65535 and also to 0. However, it was truncated to 16 bit get/setRxPort, get/setControlPort, get/setStopPort,
in the background, but not relayed to the user. get/setDestinationUDPPort(2), get/setRxZmqPort, get/setClientZmqPort
Now, it will throw if it is 0 or greater than 65535 (16 bit).
* Stopping acqusition for a single or subset of modules * [Eiger] versions, hardware version, febl/r firmware version
The Detector API previously stopped all modules. Versions command modified to give more info about hardware version ['fx30', 'fx70'] and Febl/r firmware versions.
Now, it takes into account which modules the user wanted to stop. Command line: versions (output modified), hardwareversion (added for Eiger)
API added for Eiger: getHardwareVersion, getFrontEndFirmwareVersion
Enums added: fpgaPosition {FRONT_LEFT, FRONT_RIGHT}
* [Jungfrau] Stop in sync mode * [Ctb] Voltage->Power name change
When stopping acquisition in sync mode, only the master module sometimes Command line: voltagelist ->powerlist
returns 'Idle' state instead of 'Stopped'. The software threw an API: get/setVoltage -> get/setPower, get/setVoltageList -> get/setPowerList,
exception for the different states then. getMeasuredVoltage -> getMeasuredPower
Now, it does not throw and a fix will be added to the next firmware
release for the different states (with SW release: v8.0.0).
* [Eiger] Incorrect error message in Stop
When stopping acquisition, if a half module were to give an error in a 2.2 Resolved or Changed Features
rare case while the others succeeded, this would result in an re-attempt ================================
to stop 9 more times before throwing an incorrect exception messsage that
it could not stop.
Now, it is handled and will throw an exception of the error status Detector Server
immediately. ---------------
* Set bit and clear bit validation
Previously, validation expected all the other bits in the register to
not change. Now, it only validates the selected bit.
* [Jungfrau] Electron collection mode (bit 14 of 0x5D register)
Affected Command line: setbit, clearbit, reg
Affected API: setBit, clearBit, writeRegister
Electron collection mode and requires chip reconfiguration.
Temporary fix added that touching this bit will reconfigure chip if chip
is v1.1 and powered on. Permanent fix by introducing a command for the
same in future release.
* [Ctb] Fixes
- Patioctrl, patsetbit, patbitmask
MSB (64 bit unsigned) could not be set as a value of -1 was interpreted
as a 'get'. Fixed in server.
- Allow dac tristate when v_limit is set. Fixed.
- Changing fw bit from disable analog to enable analog
- Allow adc enable for 1 GbE and 10GbE to be 0.
- Slow ADCs previously misread (a high 5k+ value). Firmware updated
and software adjusted now.
- Allow non blocking acquire for 1GbE. Added Transmitting status when it
might still be reading from fifo.
- Clean memory before reading from fifo in 1GbE mode. Read fifo then
RD strobe (corresponding firmware fix) fixes number of reads, but
increases all pipelines by 1.
- Fixed pattern viewer (auto legend buf without wait and loop), allow
pyat files. (/patterngenerator)
Simulator
---------
* Unique TCP port for multiple simulators
Checks include unique TCP port-hostname combo.
Receiver Receiver
-------- --------
* Limit TCP port number (command line) to max of 65535 * Unique TCP port for multiple receivers
Refer issue under 'Client'. 7.x.x already has automatically increasing TCP ports in shared memory
for multiple receivers. Now, checks include unique TCP port-hostname
combo.
Detector Simulator * [Ctb] Fixes
------------------
- Readout mode updated
'rx_hostname' should configure the receiver with parameters from detector,
but readout mode in receiver always configured at start up to Analog only.
Fixed.
- Incorrect image size in zmq header, which happens when dbit list is
less than 64 bits. Fixed.
- Rearranging digital data when dbit list less than 64 bits fixed.
* Limit TCP port number (command line) to max of 65535 Client
Refer issue under 'Client'. ------
* Some commands such as 'readnrows' would complain that it cannot be set * [Jungfrau][Mythen3][Gotthard2] Sync mode should have at least one master
because the detector is not idle, but was setting it anyway. Fixed. Multi module synced detectors should have at least one master when
starting acquisition, else it will throw. Once master is done acquiring
(blocking mode), status of all modules checked to ensure none of the
slaves in waiting due to hardware issues such as cabling.
Gui/ Client Callback
-------------------- 2.3 New Features
================
* [Jungfrau] Gui: corrected color map of gain plot Client
Previously, color on the gain plot did not update after the first image, ------
unless there were x/y min/max changes or window resizing. Fixed.
* [Jungfrau] Acquisition finished callback error status in sync mode * [Jungfrau] Pedestal mode
When stopping acquisition in multi module Jungfrau sync mode, Command line: pedestalmode
different status (master 'idle' and slaves 'stopped' in API: get/setPedestalMode
firmware 2.4.1 or 1.4.1) show as 'error' in acquisition finished call Example:
back (mainly used for gui). This is fixed. pedestalmode 0 # turns off pedestal mode
pedestalmode 50 10 # turns on pedestal mode (50 pedestal frames, 10 loops)
In pedestal mode, number of frames/triggers
is overwritten by '#pedestal_frames x #pedestal_loops x 2'.
In auto timing mode or trigger mode with #frames > 1, #frames is overwritten
with #triggers is 1. Otherwise, #triggers is overwritten with #frames is 1.
In pedestal mode, one cannot set #frames, #triggers or timing mode (exception).
Disabling pedestal mode will set back to normal mode with normal previous
values of #frames and #triggers.
* [Jungfrau] Gui: Next frame number shown as 0 for inconsistency * Source UDP IP: Auto
When stopping an acquisition in a multi module Jungfrau, the next Command line: udp_srcip, udp_srcip2
frame numbers might be different, for which the Gui shows an error message API: get/setSourceUDPIP(2)
but keeps the number as 0. Now, it is fixed to show -1 for inconsistency Allow 'auto' for udp_srcip to pick up IP from detector hostname. Not allowed
and error message shown. So, setting 0 will also prompt an error message for Gotthard1.
that 0 is an invalid input.
Data Processing * Custom row and column for detector UDP header
--------------- Command line: row, column
API: get/setRow, get/setColumn
By default, row and column of module is determined in a pre-determined
manner or by custom detector size (Command line: detsize).
This is useful if user accesses row and column in multi- detector UDP header
or for the GUI to rearrange for complete image.
Option now added to set custom row and column.
* [Moench] Segmentation fault with moench03RawDataPrcess * [Ctb] Features
Previously, it crashed when nframes > 0. Fixed.
- List for ADC, signal, power, slowadc
Also allow their list to set names and to obtain their indices and values.
Command line: dacname, dacindex,
adclist, adcname, adcindex,
signallist, signalname,signalindex,
powerlist, powername, powerindex, powervalues,
slowadclist, slowadcname, slowadcindex, slowadcvalues
API: get/setDacName, getDacIndex,
get/setAdcNames, getAdcIndex, get/setAdcName,
get/setSignalNames, getSignalIndex, get/setSignalName,
get/setPowerNames, getPowerIndex, get/setPowerName, getPowerList,
get/setSlowADCNames, getSlowADCIndex, get/setSlowADCName, getSlowADCList
- Added more modes for transceiver in read out mode.
Allow to set number of samples and enable mask for transceiver.
Command line: romode (more modes: 'transceiver', 'digital_transceiver'),
tsamples, transceiverenable
API: get/setTransceiverEnableMask, get/setNumberOfTransceiverSamples,
get/setReadoutMode (more enums: TRANSCEIVER_ONLY, DIGITAL_AND_TRANSCEIVER)
* [Moench] Moench interpolation issues fixed. - Command to get file name with path of last pattern uploaded.
Command line: patfname
API: getPatterFileName
* Automatic test script for all virtual simulators added.
2 On-board Detector Server Compatibility 2 On-board Detector Server Compatibility
========================================== ==========================================
Eiger 7.0.3 Eiger 8.0.0
Jungfrau 7.0.3 Jungfrau 8.0.0
Mythen3 7.0.3 Mythen3 8.0.0
Gotthard2 7.0.3 Gotthard2 8.0.0
Gotthard 7.0.3 Gotthard 8.0.0
Moench 7.0.3 Moench 8.0.0
Ctb 7.0.3 Ctb 8.0.0
On-board Detector Server Upgrade On-board Detector Server Upgrade
@ -151,8 +295,8 @@ This document describes the differences between v7.0.3 and v7.0.2
Eiger 02.10.2023 (v32) (updated in 7.0.3) Eiger 02.10.2023 (v32) (updated in 7.0.3)
Jungfrau 16.05.2023 (v1.4.1, HW v1.0) (updated in 7.0.2) Jungfrau 20.09.2023 (v1.5, HW v1.0) (updated in 8.0.0)
15.05.2023 (v2.4.1, HW v2.0) (updated in 7.0.2) 21.09.2023 (v2.5, HW v2.0) (updated in 8.0.0)
Mythen3 24.01.2023 (v1.4) (updated in 7.0.0) Mythen3 24.01.2023 (v1.4) (updated in 7.0.0)
@ -161,9 +305,9 @@ This document describes the differences between v7.0.3 and v7.0.2
Gotthard 08.02.2018 (50um and 25um Master) Gotthard 08.02.2018 (50um and 25um Master)
09.02.2018 (25 um Slave) 09.02.2018 (25 um Slave)
Moench 05.12.2022 (v0.3) (updated in 7.0.0) Moench 10.07.2023 (v0.3.2) (updated in 8.0.0, under development)
Ctb 05.12.2022 (v1.1) (updated in 7.0.0) Ctb 05.07.2023 (v1.2) (updated in 8.0.0)
Detector Upgrade Detector Upgrade
@ -297,4 +441,3 @@ This document describes the differences between v7.0.3 and v7.0.2
dhanya.thattil@psi.ch dhanya.thattil@psi.ch
erik.frojdh@psi.ch erik.frojdh@psi.ch