mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-07 18:40:42 +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