mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-27 13:10:43 +02:00
463 lines
12 KiB
Plaintext
463 lines
12 KiB
Plaintext
SLS Detector Package Major Release 9.0.0 released on 26.11.2024
|
|
===============================================================
|
|
|
|
This document describes the differences between v9.0.0 and v8.0.2
|
|
|
|
|
|
|
|
CONTENTS
|
|
--------
|
|
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
|
|
|
|
|
|
|
|
|
|
2 Compilation Changes
|
|
=====================
|
|
|
|
|
|
* Python version
|
|
Minimum python version is changed from 3.6 to 3.8
|
|
|
|
|
|
* Pybind11 version
|
|
In-built version and the one picked up from github
|
|
updated from v2.11.0 to v2.13.6
|
|
|
|
|
|
* Python lib versioning
|
|
slsdet.__version__ now returns the package release version.
|
|
|
|
|
|
* Python version in conda build
|
|
Added python 3.13 also to conda build
|
|
|
|
|
|
|
|
2 New, Changed or Resolved Features
|
|
=====================================
|
|
|
|
|
|
|
|
2.1 Breaking API
|
|
==================
|
|
|
|
|
|
Receiver
|
|
--------
|
|
|
|
|
|
* Receiver callbacks
|
|
Brought much more metadata to receiver callbacks to construct the image.
|
|
Update MultiReceiverApp to reflect this change.
|
|
|
|
|
|
* File path
|
|
At start of acquisition or at rx_start command, the file path is only
|
|
then verified if it exists and created if it does not.
|
|
|
|
|
|
Client
|
|
------
|
|
|
|
|
|
* Removed receiver/publisher ZMQ IP
|
|
Command line: rx_zmqip gives a warning and does nothing
|
|
Python : rx_zmqip removed
|
|
C++ API: get/setRxZmqIP removed
|
|
|
|
Publisher zmq IP set to '0.0.0.0' or to listen on all interfaces.
|
|
The publisher will determine which interface to stream out from based on
|
|
the network route to the subscriber IP. Hence, receiver zmq IP is not
|
|
required.
|
|
|
|
|
|
* Write register, Set or Clear bit
|
|
Validation for this advanced feature has been removed by default.
|
|
One can force validation by using --validate in the command line or by
|
|
setting the validate option in the API.
|
|
|
|
|
|
ZMQ
|
|
---
|
|
|
|
|
|
* Publisher socket constructor does not take an IP anymore.
|
|
The details are above under 'Removed receiver/publisher ZMQ IP'.
|
|
|
|
|
|
GUI/ Client Callback
|
|
--------------------
|
|
|
|
|
|
* completeImage member in detectorData attribute now returns false only
|
|
if any the sub images (from different udp ports) have completeImage
|
|
set to false in the JSON header. This is set if therea are any missing
|
|
packets for that udp port on slsReceiver/slsMultiReceiver.
|
|
|
|
The different subimages are anyway not synchronized. This errs when
|
|
there are different missing images across multiple UDP ports.
|
|
|
|
The Gui does not show "complete image" in the status bar anymore.
|
|
If any of the udp ports have missing packets for that current disaplayed
|
|
image, then the "missing packets" will show in red in the status bar.
|
|
|
|
|
|
Detector Server
|
|
---------------
|
|
|
|
|
|
* [Mythen3] Only run clock can be set
|
|
Clock 0 is now the run clock and the only one that can be set.
|
|
The others are be read only.
|
|
This affects the following commands:
|
|
Command line or python API: clkdiv, clkfreq, clkphase, maxclkphaseshift
|
|
C++ API: get/setClockDivider, getClockFrequency, get/setClockPhase,
|
|
getMaxClockPhaseShift
|
|
|
|
|
|
* [Jungfrau] Temperature Control
|
|
Temperature control is enabled by default at on-board detector server
|
|
startup.
|
|
As before, the default temperature threshold is 65°C and crossing this
|
|
value will set a temperature event.
|
|
|
|
|
|
|
|
2.2 Resolved or Changed Features
|
|
================================
|
|
|
|
|
|
Compilation
|
|
-----------
|
|
|
|
|
|
* cmake_source_dir
|
|
Fixed compilation error when using python and adding the slsDetectorPackage
|
|
as a subfolder due to cmake source directory changing.
|
|
|
|
|
|
Client
|
|
------
|
|
|
|
|
|
* Command line Code Generation
|
|
The command line parsing code is now generated from a yaml file. This is
|
|
transparent to the user.
|
|
|
|
|
|
* Clearer error message about freeing shared memory.
|
|
|
|
|
|
Detector Server
|
|
---------------
|
|
|
|
|
|
* [Gotthard2] Chip reconfiguration
|
|
|
|
- Powering off/on the chip will now switch off chip configuration
|
|
property/ configure the chip every time.
|
|
|
|
- Switching off high voltage from a non zero value will now wait
|
|
10s to return for safety reasons.
|
|
|
|
- Powering off the chip requires high voltage to have been
|
|
switched off prior.
|
|
|
|
- Acquisition requires chip to have been configured prior.
|
|
|
|
|
|
* [Gotthard2] Burst mode options restricted
|
|
Burst mode external and continuous mode internal are not allowed to be set
|
|
anymore as they are anyway not implemented.
|
|
|
|
|
|
Receiver
|
|
--------
|
|
|
|
|
|
* [Gotthard I] fixed header stripping fixing segfault.
|
|
|
|
|
|
* Error or help message for invalid arguments to slsMultiReceiver.
|
|
|
|
|
|
Simulator
|
|
---------
|
|
|
|
|
|
* Refactored stop server to have better start up.
|
|
|
|
|
|
* Fixed possible memory leak when taking non blocking acquisitions.
|
|
|
|
|
|
* [Jungfrau] Valid gain values in data sent out. Previously, 2 was also sent out.
|
|
|
|
|
|
ZMQ
|
|
---
|
|
|
|
|
|
* Publiser socket constructor
|
|
|
|
- enables keep alive socket options to send heartbeat messages to prevent
|
|
discarded TCP flows if there is no packet for a longer period.
|
|
|
|
- enables IPv6 interfaces
|
|
|
|
* Prints specific error for ENOENT (endpoint does not exist)
|
|
|
|
|
|
|
|
2.3 New Features
|
|
================
|
|
|
|
|
|
Client
|
|
------
|
|
|
|
|
|
* Auto completion
|
|
bash_autocomplete.sh or zsh_autocomplete.sh must be sourced from the
|
|
main package folder to enable auto completion of commands and arguments
|
|
for the command line on that shell.
|
|
|
|
|
|
* sls_detector
|
|
New executable that can be used instead of 'sls_detector_get' and
|
|
'sls_detector_put' for most commands. It will infer from the number of
|
|
arguments, which executable (sls_detector_put or sls_detector_get) to use.
|
|
For the rare commands that cannot be inferred from the number of arguments,
|
|
it will complain accordingly.
|
|
|
|
|
|
* [Jungfrau] Timing Info Decoder (Advanced configuration)
|
|
Command line or python API: timing_info_decoder
|
|
C++ API: get/setTimingInfoDecoder. Options: SWISSFEL (Default), SHINE
|
|
|
|
|
|
* [Jungfrau] Collection Mode (Advanced configuration)
|
|
Command line or python API: collectionmode
|
|
C++ API: get/setCollectionMode. Options: ELECTRON, HOLE (Default)
|
|
If chip v1.1, also configures the chip afterwards.
|
|
|
|
|
|
* [Gotthard2] Next frame number
|
|
'Stop' in G2 25um is not synchronous and hence might trigger an extra set
|
|
of frames in the slave module, resulting in the next acquiistion starting
|
|
with inconsistent frame numbers between master and slave. Solved by
|
|
setting next frame number to the larger value (max + 1) after a stop command.
|
|
Requires a firmware update.
|
|
|
|
Command line or python API: nextframenumber
|
|
C++ API: get/setNextFrameNumber
|
|
Can set/get the starting frame number for the next acquistion.
|
|
|
|
|
|
* [Mythen3] Readout speed
|
|
Command line, python API: readoutspeed. Options: full_speed (10MHz),
|
|
half_speed (20MHz, default), quarter_speed (40MHz)
|
|
C++ API: get/setReadoutSpeed
|
|
Also affect:
|
|
Command line, python API: readoutspeedlist
|
|
C++ API: getReadoutSpeedList
|
|
|
|
|
|
* Sleep
|
|
Command line, python/ C++ API: sleep
|
|
Client sleeps for required time. Advanced command mainly for firmware
|
|
developers to use in config files.
|
|
|
|
|
|
* Xilinx Chip Test Board added
|
|
|
|
|
|
|
|
2 On-board Detector Server Compatibility
|
|
==========================================
|
|
|
|
|
|
Eiger 9.0.0
|
|
Jungfrau 9.0.0
|
|
Mythen3 9.0.0
|
|
Gotthard2 9.0.0
|
|
Gotthard 9.0.0
|
|
Moench 9.0.0
|
|
|
|
|
|
On-board Detector Server Upgrade
|
|
--------------------------------
|
|
|
|
From v6.1.0 (without tftp):
|
|
update only on-board detector server
|
|
Using command 'updatedetectorserver'
|
|
|
|
|
|
udpate both on-board detector server and firmware simultaneously
|
|
Using command 'update'
|
|
|
|
Instructions available at
|
|
https://slsdetectorgroup.github.io/devdoc/serverupgrade.html
|
|
|
|
|
|
|
|
|
|
3 Firmware Requirements
|
|
========================
|
|
|
|
|
|
Eiger 02.10.2023 (v32) (updated in 7.0.3)
|
|
|
|
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 13.11.2024 (v2.0) (updated in 9.0.0)
|
|
|
|
Gotthard2 03.10.2024 (v1.0) (updated in 9.0.0)
|
|
|
|
Moench 26.10.2023 (v2.0) (updated in 8.0.2)
|
|
|
|
Gotthard 08.02.2018 (50um and 25um Master)
|
|
09.02.2018 (25 um Slave)
|
|
|
|
|
|
Detector Upgrade
|
|
----------------
|
|
|
|
The following can be upgraded remotely:
|
|
|
|
Eiger via bit files
|
|
Jungfrau via command <.pof>
|
|
Mythen3 via command <.rbf>
|
|
Gotthard2 via command <.rbf>
|
|
Moench via command <.pof>
|
|
|
|
Gotthard cannot be upgraded remotely
|
|
|
|
Except Eiger,
|
|
upgrade
|
|
Using command 'programfpga' or
|
|
|
|
udpate both on-board detector server and firmware simultaneously
|
|
Using command 'update'
|
|
|
|
|
|
Instructions available at
|
|
https://slsdetectorgroup.github.io/devdoc/firmware.html
|
|
|
|
|
|
|
|
|
|
4 Kernel Requirements
|
|
======================
|
|
|
|
Blackfin
|
|
--------
|
|
Latest version: Fri Oct 29 00:00:00 2021
|
|
|
|
Older ones will work, but might have issues with programming firmware via
|
|
the package.
|
|
|
|
Nios
|
|
-----
|
|
Compatible version: Mon May 10 18:00:21 CEST 2021
|
|
|
|
Kernel Upgrade
|
|
---------------
|
|
Eiger via bit files
|
|
Others via command
|
|
|
|
Commands: udpatekernel, kernelversion
|
|
Instructions available at
|
|
https://slsdetectorgroup.github.io/devdoc/commandline.html
|
|
https://slsdetectorgroup.github.io/devdoc/detector.html
|
|
https://slsdetectorgroup.github.io/devdoc/pydetector.html
|
|
|
|
|
|
|
|
|
|
5 Download, Documentation & Support
|
|
====================================
|
|
|
|
Download
|
|
--------
|
|
|
|
The Source Code:
|
|
https://github.com/slsdetectorgroup/slsDetectorPackage
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
Installation:
|
|
https://slsdetectorgroup.github.io/devdoc/installation.html
|
|
|
|
Quick Start Guide:
|
|
https://slsdetectorgroup.github.io/devdoc/quick_start_guide.html
|
|
|
|
Firmware Upgrade:
|
|
https://slsdetectorgroup.github.io/devdoc/firmware.html
|
|
|
|
Detector Server upgrade:
|
|
https://slsdetectorgroup.github.io/devdoc/serverupgrade.html
|
|
|
|
Detector Simulators:
|
|
https://slsdetectorgroup.github.io/devdoc/virtualserver.html
|
|
|
|
Consuming slsDetectorPackage:
|
|
https://slsdetectorgroup.github.io/devdoc/consuming.html
|
|
|
|
API Examples:
|
|
https://github.com/slsdetectorgroup/api-examples
|
|
|
|
Command Line Documentation:
|
|
https://slsdetectorgroup.github.io/devdoc/commandline.html
|
|
|
|
C++ API Documentation:
|
|
https://slsdetectorgroup.github.io/devdoc/detector.html
|
|
|
|
C++ API Example:
|
|
https://slsdetectorgroup.github.io/devdoc/examples.html#
|
|
|
|
Python API Documentation:
|
|
https://slsdetectorgroup.github.io/devdoc/pygettingstarted.html
|
|
|
|
Python API Example:
|
|
https://slsdetectorgroup.github.io/devdoc/pyexamples.html
|
|
|
|
Receivers (including custom receiver):
|
|
https://slsdetectorgroup.github.io/devdoc/receivers.html
|
|
https://slsdetectorgroup.github.io/devdoc/slsreceiver.html
|
|
|
|
Detector UDP Header:
|
|
https://slsdetectorgroup.github.io/devdoc/udpheader.html
|
|
https://slsdetectorgroup.github.io/devdoc/udpdetspec.html
|
|
|
|
slsReceiver Zmq Format:
|
|
https://slsdetectorgroup.github.io/devdoc/slsreceiver.html#zmq-json-header-format
|
|
|
|
TroubleShooting:
|
|
https://slsdetectorgroup.github.io/devdoc/troubleshooting.html
|
|
https://slsdetectorgroup.github.io/devdoc/troubleshooting.html#receiver-pc-tuning-options
|
|
|
|
Further Documentation:
|
|
https://www.psi.ch/en/detectors/documentation
|
|
|
|
Info on Releases:
|
|
https://www.psi.ch/en/detectors/software
|
|
|
|
|
|
Support
|
|
-------
|
|
|
|
dhanya.thattil@psi.ch
|
|
erik.frojdh@psi.ch
|