mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 11:20:04 +02:00
release notes for 8.0.0
This commit is contained in:
parent
abbf647824
commit
04009414a0
@ -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
|
||||
--------
|
||||
1 Resolved Issues
|
||||
2 On-board Detector Server Compatibility
|
||||
3 Firmware Requirements
|
||||
4 Kernel Requirements
|
||||
5 Download, Documentation & Support
|
||||
1 Compilation Changes
|
||||
2 New or Changed Features
|
||||
2.1 Breaking API
|
||||
2.2 Resolved or Changed Features
|
||||
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
|
||||
--------
|
||||
|
||||
* [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
|
||||
Previously, blocking software trigger on a quad was not blocking. Fixed
|
||||
with firmware v32.
|
||||
For user, everything is transparent unless one touches status register
|
||||
using advanced commands.
|
||||
|
||||
|
||||
* [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
|
||||
------
|
||||
======
|
||||
|
||||
|
||||
* Limit port number max to 65535
|
||||
Previously, one could set the port numbers (TCP, UDP, ZMQ) to values
|
||||
higher than 65535 and also to 0. However, it was truncated to 16 bit
|
||||
in the background, but not relayed to the user.
|
||||
Now, it will throw if it is 0 or greater than 65535 (16 bit).
|
||||
* Datatype change of port numbers from int to uint16_t
|
||||
API: setVirtualDetectorServers,
|
||||
get/setRxPort, get/setControlPort, get/setStopPort,
|
||||
get/setDestinationUDPPort(2), get/setRxZmqPort, get/setClientZmqPort
|
||||
|
||||
|
||||
* Stopping acqusition for a single or subset of modules
|
||||
The Detector API previously stopped all modules.
|
||||
Now, it takes into account which modules the user wanted to stop.
|
||||
* [Eiger] versions, hardware version, febl/r firmware version
|
||||
Versions command modified to give more info about hardware version ['fx30', 'fx70'] and Febl/r firmware versions.
|
||||
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
|
||||
When stopping acquisition in sync mode, only the master module sometimes
|
||||
returns 'Idle' state instead of 'Stopped'. The software threw an
|
||||
exception for the different states then.
|
||||
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).
|
||||
* [Ctb] Voltage->Power name change
|
||||
Command line: voltagelist ->powerlist
|
||||
API: get/setVoltage -> get/setPower, get/setVoltageList -> get/setPowerList,
|
||||
getMeasuredVoltage -> getMeasuredPower
|
||||
|
||||
|
||||
* [Eiger] Incorrect error message in Stop
|
||||
When stopping acquisition, if a half module were to give an error in a
|
||||
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
|
||||
immediately.
|
||||
|
||||
2.2 Resolved or Changed Features
|
||||
================================
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
|
||||
|
||||
* 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
|
||||
--------
|
||||
|
||||
|
||||
* Limit TCP port number (command line) to max of 65535
|
||||
Refer issue under 'Client'.
|
||||
* Unique TCP port for multiple receivers
|
||||
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
|
||||
Refer issue under 'Client'.
|
||||
Client
|
||||
------
|
||||
|
||||
|
||||
* Some commands such as 'readnrows' would complain that it cannot be set
|
||||
because the detector is not idle, but was setting it anyway. Fixed.
|
||||
* [Jungfrau][Mythen3][Gotthard2] Sync mode should have at least one master
|
||||
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
|
||||
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.
|
||||
Client
|
||||
------
|
||||
|
||||
|
||||
* [Jungfrau] Acquisition finished callback error status in sync mode
|
||||
When stopping acquisition in multi module Jungfrau sync mode,
|
||||
different status (master 'idle' and slaves 'stopped' in
|
||||
firmware 2.4.1 or 1.4.1) show as 'error' in acquisition finished call
|
||||
back (mainly used for gui). This is fixed.
|
||||
* [Jungfrau] Pedestal mode
|
||||
Command line: pedestalmode
|
||||
API: get/setPedestalMode
|
||||
Example:
|
||||
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
|
||||
When stopping an acquisition in a multi module Jungfrau, the next
|
||||
frame numbers might be different, for which the Gui shows an error message
|
||||
but keeps the number as 0. Now, it is fixed to show -1 for inconsistency
|
||||
and error message shown. So, setting 0 will also prompt an error message
|
||||
that 0 is an invalid input.
|
||||
* Source UDP IP: Auto
|
||||
Command line: udp_srcip, udp_srcip2
|
||||
API: get/setSourceUDPIP(2)
|
||||
Allow 'auto' for udp_srcip to pick up IP from detector hostname. Not allowed
|
||||
for Gotthard1.
|
||||
|
||||
|
||||
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
|
||||
Previously, it crashed when nframes > 0. Fixed.
|
||||
* [Ctb] Features
|
||||
|
||||
- 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
|
||||
==========================================
|
||||
|
||||
|
||||
Eiger 7.0.3
|
||||
Jungfrau 7.0.3
|
||||
Mythen3 7.0.3
|
||||
Gotthard2 7.0.3
|
||||
Gotthard 7.0.3
|
||||
Moench 7.0.3
|
||||
Ctb 7.0.3
|
||||
Eiger 8.0.0
|
||||
Jungfrau 8.0.0
|
||||
Mythen3 8.0.0
|
||||
Gotthard2 8.0.0
|
||||
Gotthard 8.0.0
|
||||
Moench 8.0.0
|
||||
Ctb 8.0.0
|
||||
|
||||
|
||||
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)
|
||||
|
||||
Jungfrau 16.05.2023 (v1.4.1, HW v1.0) (updated in 7.0.2)
|
||||
15.05.2023 (v2.4.1, HW v2.0) (updated in 7.0.2)
|
||||
Jungfrau 20.09.2023 (v1.5, HW v1.0) (updated in 8.0.0)
|
||||
21.09.2023 (v2.5, HW v2.0) (updated in 8.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)
|
||||
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
|
||||
@ -297,4 +441,3 @@ This document describes the differences between v7.0.3 and v7.0.2
|
||||
|
||||
dhanya.thattil@psi.ch
|
||||
erik.frojdh@psi.ch
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user