mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-03 11:20:03 +02:00
207 lines
6.9 KiB
Plaintext
207 lines
6.9 KiB
Plaintext
SLS Detector Package 3.0.0 released on 2017-03-24
|
|
================================================================================
|
|
|
|
|
|
|
|
INTRODUCTION
|
|
|
|
This document describes the differences between previous versions and 3.0.0 releases.
|
|
|
|
Manuals can be found under the 'manual' folder.
|
|
|
|
Command Line Documentation can be accessed from this location via browser:
|
|
slsDetectorSoftware/slsDetectorClientDocs/html/index.html
|
|
|
|
User documentation and other help can 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
|
|
|
|
|
|
|
|
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:
|
|
* ASCII file: header of 1024 bytes (only for EIGER detectors)
|
|
* binary files: series of images, each preceded by a
|
|
Standard Image Header (header described below)
|
|
|
|
2. Stanard 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).
|
|
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
X, Y and Z Coordinates define the position of the detector in 3d.
|
|
|
|
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
|
|
-----
|
|
11. Users 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) Buf Fix: Front End Temperature read out conversion fixed.
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|