mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-05 17:40:40 +02:00
added releases
This commit is contained in:
parent
d7ce5fedfd
commit
e998226bce
229
releases/RELEASE_v3.0.0.txt
Executable file
229
releases/RELEASE_v3.0.0.txt
Executable file
@ -0,0 +1,229 @@
|
||||
SLS Detector Package 3.0.0 released on 2017-08-25
|
||||
================================================================================
|
||||
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
This document describes the differences between previous versions and 3.0.0 releases.
|
||||
|
||||
Manual (both HTML and pdf versions) are provided in
|
||||
manual/docs/
|
||||
|
||||
Documentation from Source Code can be found for the Command Line and for the API in
|
||||
html:
|
||||
manual/docs/html/slsDetectorClientDocs/index.html
|
||||
manual/docs/html/slsDetectorUsersDocs/index.html
|
||||
pdf:
|
||||
manual/docs/pdf/slsDetectorClientDocs.pdf
|
||||
manual/docs/pdf/slsDetectorUsersDocs.pdf
|
||||
|
||||
Example including binaries for detector and receiver user classes can be found in
|
||||
|
||||
manual/manual-api
|
||||
|
||||
User documentation can also be accessed directly at this location:
|
||||
|
||||
https://www.psi.ch/detectors/users-support
|
||||
|
||||
If you have any software related questions or comments, please send them to:
|
||||
|
||||
dhanya.thattil@psi.ch
|
||||
anna.bergamaschi@psi.ch
|
||||
|
||||
|
||||
CONTENTS
|
||||
|
||||
- Changes in User Interface
|
||||
- New Features
|
||||
- Resolved Issues
|
||||
- Known Issues
|
||||
|
||||
|
||||
|
||||
Changes in User Interface
|
||||
=========================
|
||||
This release has no changes in user interface from the previous 2.3 version.
|
||||
However, receiver data call backs have been redefined for the
|
||||
standard image header.
|
||||
|
||||
Reiterating, both 2.3 and 3.0 supports the following features:
|
||||
|
||||
Receiver
|
||||
--------
|
||||
1. The files will be written in this format in the binary mode:
|
||||
* 1 ASCII file per measurement: header with measurement parameters
|
||||
* binary files: series of images, each preceded by a
|
||||
Standard Image Header (header described below)
|
||||
|
||||
2. Standard Image Header in file and call back
|
||||
arguments defined. It is in the following format defined as
|
||||
sls_detector_header defined in
|
||||
slsReceiverSoftware/include/sls_receiver_defs.h
|
||||
Mostly 0 if not applicatble or implemented, but updated in next release
|
||||
from firmware.
|
||||
|
||||
* Frame Number : 8 bytes # Image Number
|
||||
* Exposure Length : 4 bytes # Sub frame number in 32 bit mode (Eiger)
|
||||
Real time exposre time in 100ns (Others)
|
||||
* Packet Number : 4 bytes # Number of packets caught in the image
|
||||
* Bunch ID : 8 bytes # Bunch Id in beamline (Jungfrau)
|
||||
* Timestamp : 8 bytes # Not implemened.
|
||||
Time stamp with 10MHz clock
|
||||
* Module Id : 2 bytes # Not implemented. Unique module ID.
|
||||
* X Coordinate : 2 bytes # Currently as Id of part of detector in 1D
|
||||
(Future Releases) as X coordinate
|
||||
in complete detector system
|
||||
* Y Coordinate : 2 bytes # Not implemented
|
||||
Y coordinate in complete detector system
|
||||
* Z Coordinate : 2 bytes # Not implemented
|
||||
Z coordinate in complete detector system
|
||||
* Debug : 4 bytes # Not implemented
|
||||
For debugging purposes
|
||||
* Round Robin Number : 2 bytes # Not implemented
|
||||
Round Robin Number
|
||||
* Detector Type : 1 byte # Detector type defined by enum
|
||||
detectorType in slsReceiverSoftware
|
||||
/include/sls_receiver_defs.h
|
||||
* Header Version : 1 byte # 1.0 currently
|
||||
|
||||
3. The call back value for Start Acquisition Call back is insignificant at the
|
||||
moment and left for future use. Instead, the following rules apply:
|
||||
* If file write is enabled from the client, we will write the files.
|
||||
* If callbacks are registered, they will be called.
|
||||
For example, the user prefers to write the data himself, one must disable
|
||||
file write (so we dont write) and register the callbacks (so the user gets
|
||||
the data).
|
||||
|
||||
4. Multiple Receivers have to be started as different processes, instead of threads
|
||||
due to static variables being used. Please refer example code provided in the
|
||||
slsDetectorsPackage/manual/manual-api folder (mainReceiver.cpp).
|
||||
|
||||
|
||||
|
||||
New Features
|
||||
============
|
||||
Package
|
||||
-------
|
||||
1. One can compile using cmake or the ./cmk.sh script(also uses cmake)
|
||||
Run ./cmk.sh -help to get more info. This method does not touch the
|
||||
source files. Please start off with ./cmk.sh -bj9, where (9 is #cores+1)
|
||||
|
||||
2. One can compile the normal way using Makefile (editing Makefile.include
|
||||
for the hdf5 options), but this will modify other gitInfo files.
|
||||
|
||||
|
||||
General
|
||||
-------
|
||||
3. UDP Packets from all the detectors will contain the standard sls detector header.
|
||||
Jungfrau will have an extra 6 bytes preceding the standard header in the udp packets
|
||||
only. X, Y and Z Coordinates define the position of the detector in 3d. These values
|
||||
are not filled in the udp header at the moment, but will be in the files and receiver
|
||||
call backs with only x in 1d at the moment.
|
||||
|
||||
4. When acquire has started, one can use sls_detector_get busy to check the status
|
||||
of the acquire. 1 is running 0 is idle. This way one can start acqusition with &,
|
||||
poll the busy command ( or framescaught or frameindex to get status from receiver).
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
4. One can choose the file format using the command "fileformat binary/hdf5" from
|
||||
the client, but one must compile with the options as defined in README.md
|
||||
|
||||
5. Virtual HDF5 file maps all the files into a single file.
|
||||
|
||||
6. Gotthard, Propix and Moench also save data in the same way as Jungfrau and Eiger,
|
||||
as described above (ie. without any packet headers, only standard image headers
|
||||
for each image data)
|
||||
|
||||
7. (Eiger) The ascii part of the file (file header with acquisition parameters) moved to
|
||||
a separate file called the master file. So one master file per acquisition.
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
8. (Eiger) Can now set Threshold without uploading Trimbits.
|
||||
|
||||
9. (Eiger) Setting high voltage returns -999 for only slave and on the multi level gives
|
||||
the value of the master only.
|
||||
|
||||
10. StartAcquisition (or sls_detector_put status start) parallelized.
|
||||
|
||||
|
||||
Gui
|
||||
---
|
||||
10. Set the data streaming port (individually/ a single one that calculates for the other
|
||||
receiver streamer threads) via the command line
|
||||
|
||||
|
||||
Users-API
|
||||
-----
|
||||
11. manual-api example forks new child processes for every extra receiver object.
|
||||
|
||||
|
||||
|
||||
Resolved Issues
|
||||
===============
|
||||
Client
|
||||
------
|
||||
1. Memory Leak fixed when setting receiver parameters such as udp port or detector
|
||||
network parameter. The signature in slsDetector.cpp and corresponding files have
|
||||
changed, but does not change the slsDetectorUser API.
|
||||
|
||||
2. Bug Fix: Has been made more threadsafe (strtok). Removed bug of configuring MAC
|
||||
correctly even in multiple thread mode.
|
||||
|
||||
3. Bug Fix: Client crashing when rx_hostname is IP instead of a hostname has been fixed.
|
||||
|
||||
|
||||
|
||||
Server
|
||||
------
|
||||
4. (Eiger/Jungfrau) Bug Fix: Client crashing should not crash the server as SIGPIPE
|
||||
signal is caught.
|
||||
|
||||
5. (Eiger) Bug Fix: Front End Temperature read out conversion fixed.
|
||||
|
||||
6. (Eiger) Bug Fix: sls_detector_get trimval(get all trimbits) would return only the first pixel
|
||||
value. Now it returns -1 if all the pixels are different.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
6. Bug Fix: Ctrl+C kills the receiver properly calling the appropriate destructors.
|
||||
|
||||
7. Acquire & Unblocking acquire (receiver start, status start, receiver stop) can work
|
||||
also when switching from gui to command line and vice versa.
|
||||
|
||||
8. Bug Fix: sls_detector_get frameindex was always returning 0.
|
||||
|
||||
9. Bug Fix: In the rare chance that the shut down socket is still processing in
|
||||
the genericsocket class, but the object is being deleted.
|
||||
|
||||
10. (Eiger): When running independent(not slsReceiver) receiver, one needn't do receiver start
|
||||
to prepare acquisition. Prepare Acquisition has been moved to StartAcqusition and
|
||||
StartAndReadAll.
|
||||
|
||||
11. (Gotthard): 639 pixels in first packet and 641 pixels in second packet. The first pixel in second
|
||||
packet was unaccounted for. This is fixed now.
|
||||
|
||||
|
||||
|
||||
Known Issues
|
||||
============
|
||||
Server
|
||||
------
|
||||
1. (Eiger) The hardware mac of the detector is used (not relayed back to the client).
|
||||
For 1 GbE, the hardware IP of the detector is used (also not relayed back to the
|
||||
client).
|
||||
|
||||
2. Standard header fills x-coord in 1D. y-coord and z-coord is not implemented (3D).
|
||||
|
||||
|
||||
3. HDF5 compression and filters are not implemented yet.
|
||||
|
||||
|
||||
|
||||
|
||||
|
353
releases/RELEASE_v3.1.0.txt
Executable file
353
releases/RELEASE_v3.1.0.txt
Executable file
@ -0,0 +1,353 @@
|
||||
SLS Detector Package 3.1.0 released on 2018-03-12
|
||||
=================================================
|
||||
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
This document describes the differences between 3.1.0 and 3.0.0 releases.
|
||||
|
||||
The conda package of the binaries can be downloaded from
|
||||
|
||||
https://github.com/slsdetectorgroup/sls_detector_software.git
|
||||
|
||||
The Python interface to the software package (including the package) is at
|
||||
|
||||
https://github.com/slsdetectorgroup/sls_detector.git
|
||||
|
||||
Manual (both HTML and pdf versions) are provided in
|
||||
|
||||
manual/docs/
|
||||
|
||||
Documentation from Source Code can be found for the Command Line and C++ API in
|
||||
|
||||
html:
|
||||
manual/docs/html/slsDetectorClientDocs/index.html
|
||||
manual/docs/html/slsDetectorUsersDocs/index.html
|
||||
pdf:
|
||||
manual/docs/pdf/slsDetectorClientDocs.pdf
|
||||
manual/docs/pdf/slsDetectorUsersDocs.pdf
|
||||
|
||||
Documentation to the python API is available at
|
||||
|
||||
https://slsdetectorgroup.github.io/sls_detector/
|
||||
|
||||
Example including binaries for detector and receiver user classes can be found in
|
||||
|
||||
manual/manual-api
|
||||
|
||||
User documentation can also be accessed directly at this location:
|
||||
|
||||
https://www.psi.ch/detectors/users-support
|
||||
|
||||
If you have any software related questions or comments, please send them to:
|
||||
|
||||
dhanya.thattil@psi.ch
|
||||
anna.bergamaschi@psi.ch
|
||||
|
||||
If you have any python related questions or comments, please send them to:
|
||||
|
||||
erik.frojdh@psi.ch
|
||||
|
||||
|
||||
CONTENTS
|
||||
|
||||
- Firmware Requirements
|
||||
- Changes in User Interface
|
||||
- New Features
|
||||
- Resolved Issues
|
||||
- Known Issues
|
||||
|
||||
|
||||
|
||||
Firmware Requirements
|
||||
=====================
|
||||
|
||||
Please refer to the link below for more details on the firmware versions.
|
||||
https://www.psi.ch/detectors/firmware.
|
||||
|
||||
Gotthard
|
||||
========
|
||||
Minimum compatible version : 11.01.2013
|
||||
Latest version : 08.02.2018 (50um and 25um Master)
|
||||
09.02.2018 (25 um Slave)
|
||||
|
||||
-Can not be upgraded remotely.
|
||||
|
||||
|
||||
Eiger
|
||||
=====
|
||||
Minimum compatible version : 16
|
||||
Latest version : 20
|
||||
|
||||
-Can be upgraded remotely via bit files.
|
||||
|
||||
|
||||
Jungfrau
|
||||
========
|
||||
Minimum compatible version : 13.11.2017
|
||||
Latest version : 13.11.2017
|
||||
|
||||
-Can be upgraded remotely via sls_detector_put programfpga <pof>.
|
||||
|
||||
|
||||
|
||||
Changes in User Interface
|
||||
=========================
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
1. Additional functions added for advanced users in users class:
|
||||
(setSpeed, setClockDivider, setReadOutFlags, setDac, getADC,
|
||||
setAllTrimbits, startReceiver, stopReceiver,
|
||||
startAcquisition non blocking, setReceiverSilentMode, setHighVoltage,
|
||||
enableDataStreamingToClient, enableDataStreamingFromReceiver,
|
||||
setReceiverDataStreamingOutPort, setClientDataStreamingInPort)
|
||||
|
||||
2. Zmq set up for client and receiver are separated.
|
||||
zmqport for client and rx_zmqport for receiver. By default, they are the
|
||||
same for the slsDetectorGui to work.
|
||||
|
||||
3. Users example also works without config file, where detector already
|
||||
configured in shared memory.
|
||||
|
||||
4. Use "sls_detector_get busy 0" to clear acquiring flag in shared memory
|
||||
caused due to an earlier interrupted acquisition from Ctrl+C"
|
||||
|
||||
5. Set bit, clear bit, read register and write register cannot give -1 for
|
||||
inconsistent values from multiple detectors. One has to check error from
|
||||
API or read the values individually.
|
||||
|
||||
6. multiSlsDetector::char* getSettingsFile() function signature has been
|
||||
changed to string getSettingsFile().
|
||||
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
7. Modified the help manaual/main-api/mainReceiver.cpp to make it more
|
||||
robust (handling child process exit) and flexible to determine upon
|
||||
start up the number of receivers (child processes), the start TCP port
|
||||
and whether to call back data.
|
||||
|
||||
detReceiver is now executed with [start tcp port] [number of receivers]
|
||||
[1 for call back, 0 for none] as arguments.
|
||||
By default, start tcp port is 1954, number of receivers is 1, and call
|
||||
back is initiated.
|
||||
|
||||
8. rx_datastream to enable/disable data streaming in receiver. Using the GUI
|
||||
or registering data call back in client automatically enables zmq in
|
||||
receiver and client. "externalgui" is removed from the command line. Use
|
||||
this command instead.
|
||||
|
||||
9. Rx_tcpport argument to the slsReceiver can be given using -t.
|
||||
Eg. slsReceiver -t1955
|
||||
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
|
||||
Package
|
||||
-------
|
||||
1. In addition to the C++ API, the Python API is also now provided.
|
||||
|
||||
2. CMAKE now with debug flag and rpath, show warnings, compile only certain
|
||||
components (such as receiver or gui)
|
||||
|
||||
3. One repository for entire package and made available at github.
|
||||
|
||||
4. One can do --version or -v to all the binaries to find out the release
|
||||
version of the particular executable.
|
||||
|
||||
5. All the software version numbers have only date in format YYMMDD.
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
6. Parallelized more commands to detector. Beneficial for large detectors.
|
||||
(setTimer, setFileIndex, setOnline, setReceiverOnline, getReceiverStatus,
|
||||
resetFramesCaught, setFrameIndex, setFileName, getFramesCaughtByReceiver,
|
||||
setDynamicRange, setRateCorrection)
|
||||
|
||||
Option to also use "sls_detector_put threaded 0" to improve speed by
|
||||
eliminating progress display during acquisition. Effective only for
|
||||
large detectors.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
7. (Eiger) Virtual class to execute on pc.
|
||||
|
||||
8. One can now read temperatures during acquisition. It goes via the stop
|
||||
server.
|
||||
|
||||
9. (Jungfrau) One can start server in "debug" mode and then program the
|
||||
new firmware via software command "sls_detector_put programfpga xx.pof".
|
||||
|
||||
10. (Jungfrau) Server can exit on start up if either the firmware or the
|
||||
server is incompatible with each other.
|
||||
|
||||
11. (Jungfrau) One is able to set transmission delay (ms) of image for each
|
||||
individual detector using "txndelay_frame" command. Beneficial for
|
||||
large detectors.
|
||||
|
||||
12. (Jungfrau) One can set a threshold temperature (temp_threshold) and
|
||||
enable the temperature control feature (temp_control). When the
|
||||
temperature (temp_fpga) overshoots the threshold temperature, it will
|
||||
set the temperature event (temp_event) and power off the chip. One must
|
||||
then switch off the detector and check cooling. Switching back on starts
|
||||
with defaults.
|
||||
|
||||
13. (25um Gotthard) Added start acquisition delay to master module.
|
||||
|
||||
14. (Gotthard) New constraints for firmware dated 08.02.2018 and 09.02.2018
|
||||
(25 um Slave) include minimum exposure time is 186 ns and minimum
|
||||
period is 1278 ns + current exposure time.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
14. The detectorip and rx_udpip does not have to be in the same subnet anymore.
|
||||
Add the following commands after rx_hostname in config file to overwrite
|
||||
mac configuration:
|
||||
rx_udpmac [router mac]
|
||||
configuremac 0
|
||||
|
||||
15. Added silent mode to receiver using command r_silent [i] from client.
|
||||
It might be beneficial for max frame rate applications.
|
||||
|
||||
16. Receiver print out can handle black or white backgrounds.
|
||||
|
||||
17. zmq package included updated to v4.0.8.
|
||||
|
||||
18. Zmq streaming from receiver also sends file index in json header.
|
||||
|
||||
|
||||
Gui
|
||||
---
|
||||
19. If acquisition is done, but "stop dummy packet" to the gui was lost in
|
||||
the network, stop acquisition command will restream it so that the gui
|
||||
doesnt hang forever. This is used only for very fast detectors like
|
||||
Moench.
|
||||
|
||||
|
||||
|
||||
Resolved Issues
|
||||
===============
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
1. gethostbyname used in connecting to sockets was not thread safe for
|
||||
multiple detectors. Using getaddrinfo for stability in multi threaded
|
||||
environment.
|
||||
|
||||
2. Updated writing content of config and parameter dump into files.
|
||||
|
||||
3. More locking to handle main and processing threads using the threadpool.
|
||||
Removing unlock twice, which is undefined behavior.
|
||||
|
||||
4. (Jungfrau) adcphase returns the correct value, instead of -1.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
4. (Eiger) The hardware MAC of the detector is used during configuration
|
||||
and relayed back to client. Similarly, hardware IP for 1 Gbe data mode.
|
||||
|
||||
5. (Eiger) Status will return error if there was the unlikely trouble
|
||||
reading status register in the front end board. Earlier, it would only
|
||||
return idle.
|
||||
|
||||
6. (Jungfrau) patch server v3.0.0.6.3
|
||||
Able to set settings, high voltage now correctly reads 0 when
|
||||
switched off, dacs are properly set.
|
||||
|
||||
7. (Jungfrau) FPGA reset and programming FPGA firmware via software is done
|
||||
properly
|
||||
|
||||
8. (Gotthard) patch server v3.0.0.5.1
|
||||
Able to read temperature properly.
|
||||
|
||||
9. (Gotthard) butst mode if set too fast had unwanted behavior such as
|
||||
sending same image continuously. Now it is handled to display error
|
||||
and stop acquisition.
|
||||
|
||||
10. (Gotthard) completely removed the possibility to set timing modes
|
||||
other than auto and trigger as they are not implemented anyway. Also
|
||||
signal index 1, 2 and 3 are reserved and hence, cannot be configured for
|
||||
an external trigger.
|
||||
|
||||
11. Non Mythen and non Eiger detectors can also now get settings file from
|
||||
board.
|
||||
|
||||
12. (Gotthard) Did not get first few images initially after configuring MAC
|
||||
of detector. Fixed.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
12. Made it easier to disable the standard receiver and fixing bugs related
|
||||
to the use of a custom one.
|
||||
|
||||
13. (Jungfrau) HDF5 dimensions (npixelsY) required for mapping fixed.
|
||||
|
||||
14. patch2-v3.0.0-slsReceiverSoftware.patch
|
||||
x, y and z coordinates in the call backs and the files are hardcoded
|
||||
for this release.
|
||||
|
||||
15. Rest implementation (not used by standard receiver) removed.
|
||||
|
||||
|
||||
Gui
|
||||
---
|
||||
16. patch1-v3.0.0-slsDetectorGui.patch
|
||||
(Eiger) In expert mode and in advanced tab, when trimbits
|
||||
loaded are different for every pixel, the gui complains and sets
|
||||
all trimbits to zero. This has been resolved. Now, the "Set All
|
||||
Trimbits" field is just set to -1.
|
||||
|
||||
17. Fixed segmentation fault of xputsn properly.
|
||||
|
||||
18. Upon clicking on "Start", clears acquiring flag in shared memory
|
||||
caused due to an earlier interrupted acquisition from Ctrl+C"
|
||||
|
||||
19. Fixed plotting twice caused due to unzooming the first time.
|
||||
|
||||
20. Removed option for compression in Gui as it is not available currently.
|
||||
|
||||
21. Can also show Jungfrau multi detector in x direction in gui.
|
||||
|
||||
22. Switching tabs sometimes results in delay and gates fields being incorrectly
|
||||
enabled. Fixed.
|
||||
|
||||
|
||||
|
||||
Known Issues
|
||||
============
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
1. File name prefix can only be done at multi deector level. Changing at
|
||||
individual detector level will not include scan or position variables.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
2. Standard header fills x-coord in 1D. y-coord and z-coord is not
|
||||
implemented (3D).
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
3. HDF5 compression and filters are not implemented yet.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
31
releases/RELEASE_v3.1.1.txt
Executable file
31
releases/RELEASE_v3.1.1.txt
Executable file
@ -0,0 +1,31 @@
|
||||
SLS Detector Package 3.1.1 released on 2018-03-20
|
||||
=================================================
|
||||
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
This document describes the differences between 3.1.0 into 3.1.0 releases.
|
||||
|
||||
|
||||
Topics Concerning
|
||||
==================
|
||||
Jungfrau adcphase
|
||||
Eiger in 10 GbE mode
|
||||
|
||||
|
||||
Resolved Issues
|
||||
===============
|
||||
|
||||
Detector Server and Client
|
||||
--------------------------
|
||||
1. (Jungfrau) Bug fix: Same adc phase given to the PLL will still shift
|
||||
adc by one step. One can now give same adc phase repeatedly.
|
||||
|
||||
Updated Command Line Manual for adcphase and clkdivider.
|
||||
|
||||
2. (Eiger) Bug Fix: This bug was introduced in 3.1.0 release.
|
||||
In 10GbE mode, if "detectorip" is before "tengiga", the detector still
|
||||
used the 1G IP (DHCP IP). This is fixed in this release.
|
||||
|
||||
|
26
releases/RELEASE_v3.1.2.txt
Executable file
26
releases/RELEASE_v3.1.2.txt
Executable file
@ -0,0 +1,26 @@
|
||||
SLS Detector Package 3.1.2 released on 2018-06-12
|
||||
=================================================
|
||||
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
This document describes the differences between 3.1.2 into 3.1.1 releases.
|
||||
|
||||
|
||||
Topics Concerning
|
||||
==================
|
||||
Memory Leak in Client API
|
||||
|
||||
|
||||
Resolved Issues
|
||||
===============
|
||||
|
||||
Client
|
||||
------
|
||||
1. Memory Leak for every multi threading command in client
|
||||
when using API in multi detector mode. This is fixed now.
|
||||
|
||||
|
||||
|
||||
|
26
releases/RELEASE_v3.1.3.txt
Executable file
26
releases/RELEASE_v3.1.3.txt
Executable file
@ -0,0 +1,26 @@
|
||||
SLS Detector Package 3.1.3 released on 2018-06-28
|
||||
=================================================
|
||||
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
This document describes the differences between 3.1.3 into 3.1.2 releases.
|
||||
|
||||
|
||||
Topics Concerning
|
||||
==================
|
||||
Using delay after trigger for Jungfrau
|
||||
|
||||
|
||||
Resolved Issues
|
||||
===============
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
1. Delay after trigger was always set to 5 seconds. This is fixed now.
|
||||
3. Get delay left after trigger is not available for this version.
|
||||
|
||||
|
||||
|
||||
|
72
releases/RELEASE_v3.1.4.txt
Executable file
72
releases/RELEASE_v3.1.4.txt
Executable file
@ -0,0 +1,72 @@
|
||||
SLS Detector Package 3.1.4 released on 2018-08-17
|
||||
=================================================
|
||||
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
This document describes the differences between 3.1.4 into 3.1.3 releases.
|
||||
|
||||
|
||||
Topics Concerning
|
||||
==================
|
||||
- get settings in users class
|
||||
- HDF5 in Receiver
|
||||
- gotthard timer accuracy
|
||||
|
||||
|
||||
Resolved Issues
|
||||
===============
|
||||
|
||||
Client
|
||||
------
|
||||
1. Users class setSettings(-1) gave undefined settings. Has been fixed.
|
||||
|
||||
2. Users class timers give more precise values now.
|
||||
|
||||
3. When deleting slsDetector object, Stop socket deletion includes a close on
|
||||
default file descriptor zero (which it didn't open, just set for flag).
|
||||
This is fixed with temporary solution, to connect stop socket at checkOnline
|
||||
to set file descriptor to the right one. Later releases will use exception
|
||||
to handle constructor error flags.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
1. (Gotthard) Timers converted from time in nanoseconds to number of cycles
|
||||
is made more precise now. Clock value changed from 32.1E+6 to 32.007729E+6.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
1. Jungfrau Single Module Master files did not link to the HDF5 data file properly.
|
||||
This is fixed now.
|
||||
|
||||
2. Relative linking is used in the HDF5, instead of absolute now.
|
||||
|
||||
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Client
|
||||
------
|
||||
1. Timers can be set/retrieved individually. It has been introduced because
|
||||
Gotthard 25um can have different delays for master and slave modules.
|
||||
|
||||
Receiver
|
||||
--------
|
||||
1. HDF5 x dimension (#images). Max made unlimited. Chunked Dataset by default.
|
||||
|
||||
When receiver gets an image more than #frames, the HDF5 dataset will
|
||||
extend itself in the x dimension by another #frames. So, one can do
|
||||
(in Jungfrau, Gotthard, NOT Eiger)
|
||||
sls_detector_put resetframescaught 0
|
||||
sls_detector_put receiver start
|
||||
sls_detector_put status start
|
||||
sls_detector_put status start
|
||||
...
|
||||
sls_detector_put receiver stop
|
||||
|
||||
|
||||
|
37
releases/RELEASE_v3.1.5.txt
Executable file
37
releases/RELEASE_v3.1.5.txt
Executable file
@ -0,0 +1,37 @@
|
||||
SLS Detector Package 3.1.5 released on 2018-11-30
|
||||
=================================================
|
||||
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
This document describes the differences between 3.1.5 and 3.1.4 releases.
|
||||
|
||||
|
||||
Topics Concerning
|
||||
==================
|
||||
- Gotthard adc channel shifted by one
|
||||
- users class: get version, status, resetframescaught
|
||||
|
||||
|
||||
Resolved Issues
|
||||
===============
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
1. (Gotthard) The adc channel is shifted by one due to an incorrect ADC pipeline
|
||||
register. This is fixed now.
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
1. Users class: Get versions gave -1. Has been fixed for single and multi modules.
|
||||
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
Client
|
||||
------
|
||||
1. Users class: Added "stopped" to detector status list, resetframescaught in
|
||||
receiver function.
|
508
releases/RELEASE_v4.0.0.txt
Executable file
508
releases/RELEASE_v4.0.0.txt
Executable file
@ -0,0 +1,508 @@
|
||||
SLS Detector Package 4.0.0 released on 27.09.2018
|
||||
=================================================
|
||||
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
This document describes the differences between 4.0.0 and 3.1.4 releases.
|
||||
|
||||
Download
|
||||
--------
|
||||
|
||||
The Source Code (Default C++ API):
|
||||
https://github.com/slsdetectorgroup/slsDetectorPackage
|
||||
|
||||
The Conda Lib Package:
|
||||
https://github.com/slsdetectorgroup/sls_detector_lib
|
||||
|
||||
The Conda GUI Package:
|
||||
https://github.com/slsdetectorgroup/sls_detector_gui
|
||||
|
||||
The Python Interface (including the package):
|
||||
https://github.com/slsdetectorgroup/sls_detector
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Manual (HTML & PDF):
|
||||
https://www.psi.ch/detectors/documentation
|
||||
slsDetectorPackage/manual/docs/
|
||||
|
||||
Command Line Documentation:
|
||||
manual/docs/html/slsDetectorClientDocs/index.html
|
||||
manual/docs/pdf/slsDetectorClientDocs.pdf
|
||||
|
||||
C++ API Documentation:
|
||||
manual/docs/html/slsDetectorUsersDocs/index.html
|
||||
manual/docs/pdf/slsDetectorUsersDocs.pdf
|
||||
|
||||
C++ API Example:
|
||||
manual/manual-api/mainClient.cpp
|
||||
manual/manual-api/mainReceiver.cpp
|
||||
|
||||
Python API Documentation:
|
||||
https://slsdetectorgroup.github.io/sls_detector/
|
||||
|
||||
Further Documentation:
|
||||
https://www.psi.ch/detectors/users-support
|
||||
|
||||
|
||||
Support
|
||||
-------
|
||||
|
||||
General Software related:
|
||||
dhanya.thattil@psi.ch
|
||||
anna.bergamaschi@psi.ch
|
||||
|
||||
Python related:
|
||||
erik.frojdh@psi.ch
|
||||
|
||||
|
||||
|
||||
CONTENTS
|
||||
|
||||
1. Firmware Requirements
|
||||
2. Changes in User Interface
|
||||
3. New/Modified Commands
|
||||
4. Other New Features
|
||||
5. Resolved Issues
|
||||
6. Known Issues
|
||||
7. Next Major Release Plans
|
||||
|
||||
|
||||
|
||||
1. Firmware Requirements
|
||||
========================
|
||||
|
||||
Gotthard
|
||||
========
|
||||
Minimum compatible version : 11.01.2013
|
||||
Latest version : 08.02.2018 (50um and 25um Master)
|
||||
09.02.2018 (25 um Slave)
|
||||
Eiger
|
||||
=====
|
||||
Minimum compatible version : 22
|
||||
Latest version : 22
|
||||
|
||||
Jungfrau
|
||||
========
|
||||
Minimum compatible version : 15.06.2018
|
||||
Latest version : 15.06.2018
|
||||
|
||||
|
||||
Detector Upgrade
|
||||
================
|
||||
Gotthard Cannot be upgraded remotely. Requires programming via USB blaster
|
||||
Eiger Can be upgraded remotely via bit files
|
||||
Jungfrau Can be upgraded remotely using sls_detector_put programfpga <pof>
|
||||
|
||||
Instructions available at
|
||||
https://www.psi.ch/detectors/installation-instructions
|
||||
under Detector Upgrade -> [Detector Type] -> Firmware.
|
||||
|
||||
|
||||
Please refer to the link below for more details on the firmware versions.
|
||||
https://www.psi.ch/detectors/firmware.
|
||||
|
||||
|
||||
|
||||
2. Changes in User Interface
|
||||
============================
|
||||
|
||||
Client
|
||||
------
|
||||
|
||||
1. Shared Memory:
|
||||
|
||||
POSIX shared memory has been implemented and they are typically created in
|
||||
/dev/shm/ folder.
|
||||
|
||||
A multiSlsDetector object will create a shared memory segment with naming style:
|
||||
slsDetectorPackage_x_[_z]
|
||||
and an slsDetector object will create a shared memory segment with naming style:
|
||||
slsDetectorPackage_x_sls_y[_z]
|
||||
|
||||
where
|
||||
x is the multi detector id
|
||||
y is the sls detector id
|
||||
z is the environment variable SLSDETNAME, if set.
|
||||
They can be deleted directly.
|
||||
|
||||
Environment variable SLSDETNAME included for user-friendliness
|
||||
of using 2 different detectors from the same client pc. One needn't use
|
||||
different multi detector id if the SLSDETNAME is different for both consoles.
|
||||
|
||||
Constructor will fail if shared memory size is different (different package
|
||||
releases/detectors). Loading config file cleans shared memory.
|
||||
|
||||
|
||||
2. Exceptions in constructors:
|
||||
|
||||
All constructors that have an error throws an exception. For this release,
|
||||
this is caught within the package and interfaced as error codes or messages
|
||||
to the users using command line or API.
|
||||
|
||||
As a result:
|
||||
- slsDetectorsUsers constructor signature now includes a success flag.
|
||||
- If one uses multiSlsDetector, slsDetector, ZmqSocket classes directly,
|
||||
catch exceptions from constructors.
|
||||
- In future releases, the exception will be thrown
|
||||
outside the package for the users to handle it.
|
||||
|
||||
|
||||
3. API Compatibility:
|
||||
|
||||
Client now checks API version of Detector Server - Client and Receiver - Client
|
||||
when connecting for the first time to detector server or receiver server
|
||||
and the online flags have not been set in shm.
|
||||
|
||||
Upon failure, error messages will ensue and further commands will not
|
||||
be executed. Detector servers referred to are only for Eiger, Jungfrau and Gotthard.
|
||||
|
||||
Previously, the detector server would exit on mismatched Firmware-Detector
|
||||
server mismatch. They now wait for client to ask for compatibility check,
|
||||
which is done the first time client connects to the detector and the
|
||||
online flag in shm has not been set.
|
||||
|
||||
|
||||
4. Commands "type", "id" and "replace" are removed.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. Reciever Header Structure in file writing and call back:
|
||||
|
||||
sls_receiver_header structure added to sls_receiver_defs.h for image headers
|
||||
in file writing.
|
||||
|
||||
#define MAX_NUM_PACKETS 512
|
||||
typedef std::bitset<MAX_NUM_PACKETS> sls_bitset;
|
||||
typedef struct {
|
||||
sls_detector_header detHeader; /**< is the detector header */
|
||||
sls_bitset packetsMask; /**< is the packets caught bit mask */
|
||||
} sls_receiver_header;
|
||||
|
||||
It includes the detector header structure + bitmask of 512 bits,
|
||||
where each bit represents a packet caught. This is useful in saving time
|
||||
in writing to file by not padding missing packets and still retaining useful data.
|
||||
|
||||
The binary and HDF5 writer version number changed from 1.0 to 2.0.
|
||||
The detector header version remains as 1.0.
|
||||
|
||||
registerCallBackRawDataReady modified to give this structure pointer,
|
||||
instead of individual structure member pointers.
|
||||
|
||||
|
||||
2. ZmqSocket class:
|
||||
|
||||
If one uses ZmqSocket.h, then the json header has to be parsed outside
|
||||
the class to allow the user to remove the restriction in extracting all data
|
||||
from the json header.
|
||||
|
||||
|
||||
3. Receiver Call back with modified size:
|
||||
|
||||
registerCallBackRawDataModifyReady call back that is similar to the receiver
|
||||
registerCallBackRawDataReady has been added to allow the call back to
|
||||
specify an updated size of image after call back. This is in view to process
|
||||
an image in call back (including extract only a region of the image) and
|
||||
provide this updated size in callback. This new resized/processed image
|
||||
will be written to file or streamed out via zmq. This is useful in ROI
|
||||
selection in the receiver.
|
||||
|
||||
This also means that the call back is now called before writing to file.
|
||||
|
||||
|
||||
|
||||
3. New/Modified Commands
|
||||
========================
|
||||
|
||||
Client
|
||||
------
|
||||
|
||||
1. add (modified):
|
||||
appends detector to end of multi detector list.
|
||||
|
||||
2. replace:
|
||||
sets hostname/ip address for a single detector.
|
||||
|
||||
3. user:
|
||||
get user details from shared memory.
|
||||
|
||||
4. checkdetversion:
|
||||
checks client version compatibility with detector server.
|
||||
|
||||
5. checkrecversion:
|
||||
checks client version compatibility with receiver server.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. rx_zmqip:
|
||||
sets/gets the zmq (TCP) ip of the receiver from where data is streamed
|
||||
out from. (Eg. to the gui or intermediate process). By default, it is
|
||||
the same as the zmqip.
|
||||
|
||||
2. zmqip:
|
||||
sets/gets the zmq (TCP) ip, where client listens to, to reconstuct images.
|
||||
(Eg. from receiver or intermediate process). By default, it is the same
|
||||
as rx_zmqip.
|
||||
|
||||
3. rx_jsonaddheader:
|
||||
sets/gets additional json header to be streamed out with the zmq from
|
||||
receiver. Default is empty. Eg. p rx_jsonaddheader \"what\":\"nothing\"
|
||||
|
||||
4. r_discardpolicy:
|
||||
sets/gets the frame discard policy in the receiver.
|
||||
nodiscard - no discard (default),
|
||||
discardempty - discard only empty frames,
|
||||
discardpartial - discard any partial frame(fastest)
|
||||
|
||||
5. r_padding:
|
||||
sets/gets the frame padding in the receiver.
|
||||
0 does not pad partial frames(fastest),
|
||||
1 (default) pads partial frames.
|
||||
One can look at bitmask in the sls_receiver_header to process the unpadded
|
||||
partial frames later.
|
||||
|
||||
6. activate (modified):
|
||||
Extra option added to pad or unpad images in receivers when deactivated.
|
||||
activate i [padding option], where i is activate/deactivate and padding
|
||||
option is "padding" (default) or "nopadding".
|
||||
|
||||
7. rx_udpsocksize:
|
||||
sets/gets the UDP socket buffer size. Already attempts to set by default
|
||||
to 100mb, 2gb for Jungfrau. Does not remember custom values in client
|
||||
shared memory, so must be initialized each time after setting receiver
|
||||
hostname in config file.
|
||||
|
||||
8. rx_realudpsocksize:
|
||||
gets the actual UDP socket buffer size. Usually double the set udp socket
|
||||
buffer size due to kernel bookkeeping.
|
||||
|
||||
9. r_framesperfile:
|
||||
sets/gets the frames per file in receiver. 0 means infinite or all frames
|
||||
in a single file. Default of Eiger changed from 2k to 10k.
|
||||
|
||||
|
||||
Eiger Specific
|
||||
--------------
|
||||
|
||||
1. status trigger:
|
||||
To trigger internally via software, one can use "status trigger".
|
||||
|
||||
2. subdeadtime:
|
||||
sets/gets sub frame dead time in s in 32 bit mode. Subperiod is set in
|
||||
the detector by subexptime + subdeadtime. This value is normally a
|
||||
constant set by an expert catered to individual detector modules in the
|
||||
config file. Receiver files writes master file metadata subperiod
|
||||
instead of subdeadtime.
|
||||
|
||||
3. gappixels:
|
||||
enables/disables gap pixels in system (detector & receiver). 1 sets,
|
||||
0 unsets. In Receiver, 4 bit gap pixels mode is not implemented, but is
|
||||
implemented in client data call back. Gap pixels are at module level
|
||||
and not at multi module level.
|
||||
|
||||
4. measuredperiod:
|
||||
gets the measured frame period (time between last frame and the previous
|
||||
one) in s. Makes sense only for acquisitions of more than 1 frame.
|
||||
|
||||
5. measuredsubperiod:
|
||||
gets the measured subframe period (time between last subframe and the
|
||||
previous one) in s in 32 bit mode.
|
||||
|
||||
6. flags(modified):
|
||||
extra flags "nooverflow" (default) and "overflow" for sub images in 32
|
||||
bit mode. If set to overflow, it will set MSB of pixel data high if
|
||||
there was any saturation in any of the sub images 32 bit mode.
|
||||
|
||||
|
||||
Jungfrau Specific
|
||||
-----------------
|
||||
|
||||
1. storagecells:
|
||||
sets/gets number of additional storage cells per acquisition. For very
|
||||
advanced users only. Range: 0-15. Default: 0.
|
||||
The #images = #frames * #cycles * (#storagecells +1).
|
||||
|
||||
2. storage_start:
|
||||
sets/gets the storage cell that stores the first acquisition of the series.
|
||||
For very advanced users only. Range: 0-15. Default: 15(0xf).
|
||||
|
||||
|
||||
|
||||
4. Other New Features
|
||||
=====================
|
||||
|
||||
Client
|
||||
------
|
||||
|
||||
1. (Jungfrau & Gotthard) Settingsdir and caldir is removed from config file.
|
||||
Default dacs are stored in detector server. Hence, these folders
|
||||
are also removed from slsDetectorPackage/settingsdir. Eiger and Mythen
|
||||
continue to have them.
|
||||
|
||||
2. Depending on 1d position of detectors and detsizechan in config file,
|
||||
row and column (previously xcoord and ycoord) are given to detector
|
||||
servers (Eiger and Jungfrau) to encode into the udp header.
|
||||
|
||||
3. (Eiger) Setting threshold energy changes such as CAL dac is irrelevant
|
||||
when interpolating between two energies and VRS dac is interpolated, not copied.
|
||||
|
||||
4. Users API updated with the following functions:
|
||||
- setReceiverFramesDiscardPolicy
|
||||
- setReceiverPartialFramesPadding
|
||||
- setReceiverFramesPerFile
|
||||
- sendSoftwareTrigger
|
||||
- setSubFrameExposureDeadTime
|
||||
- setSubFrameExposureTime
|
||||
- enableGapPixels
|
||||
- getMeasuredPeriod
|
||||
- getMeasuredSubFramePeriod
|
||||
- setOverflowMode
|
||||
- setNumberOfStorageCells
|
||||
- setStoragecellStart
|
||||
- setThresholdEnergy (overloaded)
|
||||
- resetFramesCaughtInReceiver
|
||||
- setReceiverFifoDepth
|
||||
- setFlowControl10G
|
||||
- setTenGigabitEthernet
|
||||
- getNMods
|
||||
- setReceiverDataStreamingOutIP
|
||||
- setClientDataStreamingInIP
|
||||
|
||||
SlsReceiver
|
||||
-----------
|
||||
|
||||
1. slsMultiReceiver executable added that creates multiple receiver child processes.
|
||||
./slsMultiReceiver [start_tcp_port] [num_receivers] [1 for call back, 0 for none]
|
||||
|
||||
2. Default row and column (previously xcoord and ycoord) are hardcoded
|
||||
for missing packets. (Eiger and Jungfrau)
|
||||
|
||||
|
||||
Gui
|
||||
---
|
||||
|
||||
1. (Jungfrau) Gain plot included. Option under 2D options in Plot tab.
|
||||
|
||||
2. Option to maintain aspect ratio
|
||||
|
||||
3. Start and Stop separated to prevent multiple click syndrome.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
|
||||
1. (Jungfrau) To use programfpga command, one must start server with -update
|
||||
mode and then restart server without -update mode.
|
||||
|
||||
2. (Jungfrau) ASIC Timer configured at server start up and changed a few
|
||||
startup values for firmware v0.7 such as adc phase, ADC_PORT_INVERT_VAL
|
||||
and ADC offset half speed value.
|
||||
|
||||
3. (Jungfrau) Minimum exposure time of 50 us was implemented.
|
||||
|
||||
4. (Eiger and Jungfrau) They can be configured to have x and y coord values
|
||||
of the detector in their udp header.
|
||||
|
||||
|
||||
|
||||
|
||||
5. Resolved Issues
|
||||
==================
|
||||
|
||||
Client
|
||||
------
|
||||
memory leak for multi threading
|
||||
|
||||
1. Compiler flag -std=c++98 enforced. Debug flag removed.
|
||||
|
||||
2. If trimen gives different list from different detectors, it returns a -1.
|
||||
|
||||
3. Version format for each submodule of the package changed to just date YYMMDD.
|
||||
Users class fixed to give correct version, instead of -1.
|
||||
|
||||
4. Getting settings in users class gave -1. Fixed now.
|
||||
|
||||
5. (Jungfrau) Programming FPGA now creates the rawbin file from pof in tmp
|
||||
rather than source file location (for permission issues).
|
||||
|
||||
6. (Gotthard) ROI segmentation fault fixed.
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. Silent feature of receiver fixed.
|
||||
|
||||
2. Socket descriptor misused earlier for success flag, instead exceptions
|
||||
used that are handled inside the package.
|
||||
|
||||
3. Global optind variable initialized to instantiate multiple receivers
|
||||
in same process. Also removed static members to enable this feature.
|
||||
|
||||
4. Socket buffer size attempts to set for each acquiistion and provide
|
||||
warning if no capabilities. Warnings can be removed using instruction with
|
||||
error provided. Default Jungfrau UDP socket buffer size if 2 GB, default is
|
||||
100 MB.
|
||||
|
||||
5. Refactored code a bit for performance and robustness, blocking push
|
||||
in buffer between listener and dataprocessor
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
|
||||
1. (Jungfrau) Stop server also mapped during a reset. Reading power status
|
||||
instead of user input register for power.
|
||||
|
||||
2. (Eiger) Bug fix for saving trimbits to file (Advanced users).
|
||||
|
||||
3. (Gotthard 25um) config.txt is not read again after detector startup,
|
||||
no matter the number of times the detector server is restarted.
|
||||
|
||||
|
||||
6. Known Issues
|
||||
===============
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. HDF5 compression and filters are not implemented yet.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
|
||||
1. (Eiger) Registers mapped differently between firmware v20 and v22.
|
||||
So, please ensure correct on-board server before switching between
|
||||
firmware versions. Else one cannot ping it anymore. Will need to flash firmware
|
||||
again to recover.
|
||||
|
||||
2. (Gotthard) To switch back to all ADC from single ADC ROI, one must take
|
||||
even number of images for the receiver to understand complete images.
|
||||
This will be fixed in the next firmware upgrade.
|
||||
|
||||
|
||||
|
||||
7. Next Major Release Plans
|
||||
===========================
|
||||
|
||||
Client
|
||||
------
|
||||
|
||||
1. Exceptions thrown to the user to be handled.
|
||||
|
||||
2. Compilation using c++11.
|
||||
|
||||
3. Support of Mythen II restricted to this major and its minor releases.
|
||||
|
||||
4. Restructuring and refactoring of client code.
|
||||
|
||||
|
||||
|
205
releases/RELEASE_v4.0.1.txt
Executable file
205
releases/RELEASE_v4.0.1.txt
Executable file
@ -0,0 +1,205 @@
|
||||
SLS Detector Package 4.0.1 released on 08.02.2018 (Bug Fix Release)
|
||||
===================================================================
|
||||
|
||||
|
||||
This document describes the differences between 4.0.1 and 4.0.0 releases.
|
||||
|
||||
CONTENTS
|
||||
--------
|
||||
1. Topics Concerning
|
||||
2. Resolved Issues
|
||||
3. Known Issues
|
||||
4. Firmware Requirements
|
||||
5. Download, Documentation & Support
|
||||
|
||||
|
||||
|
||||
1. Topics Concerning
|
||||
====================
|
||||
|
||||
- Jungfrau server (new firmware mapped)
|
||||
- Eiger server (measuredPeriod, reg)
|
||||
- Gotthard server(ADC channel shift, ROI, 25um slave packets)
|
||||
- Receiver (padding, releasing resources segfault, gappixels)
|
||||
- Users class (detectorSize, ROI, versions, status)
|
||||
- API (config error, ROI)
|
||||
- Compile (Options prefix, static libraries, Makefile for API)
|
||||
- Gui (multi module)
|
||||
|
||||
|
||||
|
||||
2. Resolved Issues
|
||||
==================
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
|
||||
1. (Jungfrau): Latest Jungfrau firmware release mapped.
|
||||
|
||||
2. (Eiger): Measured subperiod initially wrapped around 4.29s. Now, upto 42.9s.
|
||||
|
||||
Advanced command "reg" was writing only to right FPGA.
|
||||
|
||||
3. (Gotthard 25/50um): Since Gotthard only sends packet numbers, one had to
|
||||
remember to take even number of images in ROI mode, if they wanted to
|
||||
switch back to non ROI mode.
|
||||
This is fixed now, but temporary fix involves sending an image during
|
||||
configuration, which will not be captured by the receiver. Hence, it takes
|
||||
longer to configure. Permanent fix will require a firmware update.
|
||||
|
||||
The detector output is shifted by 1 for every 32 channels. This is fixed now.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. Receiver padding was enabled only if deactivated padding was also enabled.
|
||||
Receiver padding enable and receiver deactivated padding enable are independent now.
|
||||
|
||||
2. Starting and stopping receiver without listening resulted in seg faults.
|
||||
|
||||
3. Gappixels in receiver bug fix.
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
|
||||
1. (Users class): DetectorSize modified to set/get ROI if ROI is only 1 in number.
|
||||
|
||||
Allowed setting/getting ROI at single detector level via API.
|
||||
(ROI for Gotthard only). Added them to the users class as setROI and getROI.
|
||||
|
||||
Retrieving versions at module level is possible now.
|
||||
|
||||
Added "stopped" as status in getRunStatus list.
|
||||
|
||||
2. (API): Incorrect mac address in config file will set error flag in API and not just
|
||||
print the error.
|
||||
|
||||
ROI possible at module level.
|
||||
|
||||
|
||||
Compile
|
||||
-------
|
||||
|
||||
1. CMake options now have a prefix 'SLS_'.
|
||||
|
||||
2. Static libraries removed.
|
||||
|
||||
2. slsDetectorPackage/manual/manual-api/Makefile modified to use libraries
|
||||
from slsDetectorPackage/bin as the main Makefile copies the libraries there.
|
||||
No effect when using CMakeFiles.
|
||||
|
||||
|
||||
Gui
|
||||
---
|
||||
|
||||
1. Adding multiple detectors in x and y direction incremented number of detectors
|
||||
in y direction incorrectly. Effect seen only in GUI (segfault) if
|
||||
detsizechan has multi detectors in both direction. Fixed.
|
||||
|
||||
|
||||
|
||||
3. Known Issues
|
||||
===============
|
||||
|
||||
Detector Specific
|
||||
-----------------
|
||||
|
||||
1. (Gotthard 25 um): Slave misses or captures an extra frame. Occurs irregularly.
|
||||
|
||||
2. (Gotthard 25/50um): Using ROI (2 chips, 256 channels) missses last pixel
|
||||
of that ADC.
|
||||
|
||||
|
||||
|
||||
4. Firmware Requirements
|
||||
========================
|
||||
|
||||
Gotthard
|
||||
========
|
||||
Minimum compatible version : 11.01.2013
|
||||
Latest compatible version : 08.02.2018 (50um and 25um Master)
|
||||
09.02.2018 (25 um Slave)
|
||||
Eiger
|
||||
=====
|
||||
Minimum compatible version : 22
|
||||
Latest compatible version : 22
|
||||
|
||||
Jungfrau
|
||||
========
|
||||
Minimum compatible version : 26.02.2018
|
||||
Latest compatible version : 06.12.2018
|
||||
|
||||
|
||||
Detector Upgrade
|
||||
================
|
||||
Gotthard Cannot be upgraded remotely. Requires programming via USB blaster
|
||||
Eiger Can be upgraded remotely via bit files
|
||||
Jungfrau Can be upgraded remotely using sls_detector_put programfpga <pof>
|
||||
|
||||
Instructions available at
|
||||
https://www.psi.ch/detectors/installation-instructions
|
||||
under Detector Upgrade -> [Detector Type] -> Firmware.
|
||||
|
||||
|
||||
Please refer to the link below for more details on the firmware versions.
|
||||
https://www.psi.ch/detectors/firmware.
|
||||
|
||||
|
||||
|
||||
5. Download, Documentation & Support
|
||||
====================================
|
||||
|
||||
Download
|
||||
--------
|
||||
|
||||
The Source Code (Default C++ API):
|
||||
https://github.com/slsdetectorgroup/slsDetectorPackage
|
||||
|
||||
The Conda Lib Package:
|
||||
https://github.com/slsdetectorgroup/sls_detector_lib
|
||||
|
||||
The Conda GUI Package:
|
||||
https://github.com/slsdetectorgroup/sls_detector_gui
|
||||
|
||||
The Python Interface (including the package):
|
||||
https://github.com/slsdetectorgroup/sls_detector
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Manual (HTML & PDF):
|
||||
https://www.psi.ch/detectors/documentation
|
||||
slsDetectorPackage/manual/docs/
|
||||
|
||||
Command Line Documentation:
|
||||
manual/docs/html/slsDetectorClientDocs/index.html
|
||||
manual/docs/pdf/slsDetectorClientDocs.pdf
|
||||
|
||||
C++ API Documentation:
|
||||
manual/docs/html/slsDetectorUsersDocs/index.html
|
||||
manual/docs/pdf/slsDetectorUsersDocs.pdf
|
||||
|
||||
C++ API Example:
|
||||
manual/manual-api/mainClient.cpp
|
||||
manual/manual-api/mainReceiver.cpp
|
||||
|
||||
Python API Documentation:
|
||||
https://slsdetectorgroup.github.io/sls_detector/
|
||||
|
||||
Further Documentation:
|
||||
https://www.psi.ch/detectors/users-support
|
||||
|
||||
|
||||
Support
|
||||
-------
|
||||
|
||||
General Software related:
|
||||
dhanya.thattil@psi.ch
|
||||
anna.bergamaschi@psi.ch
|
||||
|
||||
Python related:
|
||||
erik.frojdh@psi.ch
|
||||
|
Loading…
x
Reference in New Issue
Block a user