mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-30 18:00:05 +02:00
fix hdf5 compilation using det spec fields in header (#700)
* fix hdf5 compilation using det spec fields in header
This commit is contained in:
parent
e942678139
commit
574127b5ac
928
RELEASE.txt
928
RELEASE.txt
@ -1,937 +1,33 @@
|
||||
SLS Detector Package Major Release 7.0.0 released on 24.02.2023
|
||||
SLS Detector Package Major Release 7.0.1 released on 24.03.2023
|
||||
===============================================================
|
||||
|
||||
This document describes the differences between v7.0.0 and v6.1.2
|
||||
This document describes the differences between v7.0.1 and v7.0.0
|
||||
|
||||
|
||||
|
||||
CONTENTS
|
||||
--------
|
||||
1 New, Changed or Resolved Features
|
||||
1.1 Compilation
|
||||
1.2 Callback
|
||||
1.3 Python
|
||||
1.4 Client
|
||||
1.5 Detector Server
|
||||
1.6 Simulator
|
||||
1.7 Receiver
|
||||
1.8 Gui
|
||||
2 On-board Detector Server Compatibility
|
||||
3 Firmware Requirements
|
||||
4 Kernel Requirements
|
||||
5 Download, Documentation & Support
|
||||
1 Resolved Issues
|
||||
2 On-board Detector Server Compatibility
|
||||
3 Firmware Requirements
|
||||
4 Kernel Requirements
|
||||
5 Download, Documentation & Support
|
||||
|
||||
|
||||
|
||||
|
||||
1 New, Changed or Resolved Features
|
||||
=====================================
|
||||
1 Resolved Issues
|
||||
=================
|
||||
|
||||
|
||||
1.1 Compilation
|
||||
==================
|
||||
|
||||
|
||||
General:
|
||||
Receiver:
|
||||
--------
|
||||
|
||||
|
||||
* Custom location to find ZeroMQ
|
||||
Option to provide a custom location to look for ZeroMQ, if not found
|
||||
using FindZeroMQ.cmake
|
||||
|
||||
For example, to use the system installed zmq:
|
||||
Using cmake: -DZeroMQ_HINT=/usr/lib64
|
||||
Using cmk.sh script: -q /usr/lib64
|
||||
|
||||
|
||||
* Support external build
|
||||
Assuming already installed version of the slsDetectorPacakge exists,
|
||||
external build of python bindings, gui, ctbgui and moench has been added.
|
||||
|
||||
|
||||
* Catch updated to latest 2.x version due to build failure in fedora
|
||||
|
||||
|
||||
|
||||
Gui:
|
||||
----
|
||||
|
||||
|
||||
* Qt5 and in-built compressed Qwt 6.1.5
|
||||
Ported from Qt4 to Qt5. Minimum requirement: Qt 5.9
|
||||
Compressed Qwt 6.1.5 added into the package in libs. It is unpacked and built
|
||||
as a static library.This allows us to remove qwt as an external dependency
|
||||
and reduces the risk of picking up the wrong version.
|
||||
|
||||
|
||||
Python:
|
||||
-------
|
||||
|
||||
|
||||
* Install python extension
|
||||
Option to copy the python extension (slsdet folder and _slsdet-..so)
|
||||
to CMAKE_INSTALL_PREFIX/python using
|
||||
-DSLS_INSTALL_PYTHONEXT
|
||||
|
||||
|
||||
* Pybind11 (v2.10.0)
|
||||
Pybind11 is removed as a submodule and instead built into package to
|
||||
simplify for users. Now, there is no more need to clone with the '--recursive'
|
||||
argument or to update submodule when switching to this package version
|
||||
and above.
|
||||
|
||||
|
||||
* Conda packages
|
||||
Removed conda packages for python 3.6 and 3.7. Added for python 3.11.
|
||||
|
||||
|
||||
|
||||
1.2 Callback
|
||||
=============
|
||||
|
||||
|
||||
* Datatype of Metadata [registerCallBackRawDataReady,
|
||||
registerCallBackRawDataModifyReady]
|
||||
Datatype changed from char* to sls_receiver_header.
|
||||
|
||||
|
||||
* Datatype of Size [registerCallBackRawDataReady,
|
||||
registerCallBackRawDataModifyReady]
|
||||
Datatype changed from uint32_t to size_t
|
||||
|
||||
|
||||
* Datatype of file name and file path [registerCallBackStartAcquisition]
|
||||
Datatype changed from string to const string reference.
|
||||
|
||||
|
||||
* Incorrect image size [registerCallBackStartAcquisition]
|
||||
Fixed. It used to give +120 bytes.
|
||||
|
||||
|
||||
* [Gotthard2] 25um Image reconstruction for 2 modules
|
||||
First module (master) interleaves with second modules(slave). First channel
|
||||
of master is first channel of detector.
|
||||
|
||||
Requires firmware update to reverse channels of slaves.
|
||||
|
||||
|
||||
|
||||
1.3 Python
|
||||
===========
|
||||
|
||||
|
||||
* Python sub-microsecond resolution
|
||||
Reading back sub-microsecond exposure times from the Python API fixed by
|
||||
addig Python datetime supports only micro seconds as lowest unit.
|
||||
|
||||
This is fixed by introducing a new C++ type (DurationWrapper), which
|
||||
holds number of nanoseconds as a uint64_t (only in python bindings) and
|
||||
custom typecaster to convert to and from std::chrono::nanoseconds.
|
||||
|
||||
A get using API now returns in DurationWrapper, instead of datetime.
|
||||
Refer exptime help for examples.
|
||||
|
||||
|
||||
* Defines in sls_detector_defs
|
||||
sls_detetor_defs parsed and #defines extracted into defines.py
|
||||
For exmaple, one can use slsdet.LOCALHOST_IP
|
||||
|
||||
|
||||
* Concatenated hostnames
|
||||
Hostnames concatenated using '+' was not split up in Python API. Fixed.
|
||||
|
||||
|
||||
* Added many commands to python API
|
||||
|
||||
|
||||
|
||||
1.4 Client
|
||||
===========
|
||||
|
||||
|
||||
Breaking API:
|
||||
-------------
|
||||
|
||||
|
||||
* Versioning
|
||||
The client, receiver and detector servers now have semantic Versioning
|
||||
along with the date and are managed with the Version class.
|
||||
|
||||
--version argument to the executable gives the complete versioning with date.
|
||||
|
||||
Using the client to get versions gives only the semantic version. An older
|
||||
server will still give date. Hence, the return type is a string, breaking API.
|
||||
|
||||
Compatibility checks at hostname or rx_hostname command will only be for
|
||||
backwards compatibility (ie. it only checks for the major version number).
|
||||
If its an old server, then its expected to have the exact same date (as
|
||||
before)
|
||||
|
||||
Setting intitialchecks to 0 also bypasses the receiver compatibility check.
|
||||
|
||||
|
||||
* Detector Specific fields
|
||||
bunchid ->detSpec1
|
||||
reserved->detSpec2
|
||||
debug->detSpec3
|
||||
roundRnumber->detSpec4
|
||||
|
||||
Header version number stays the same in the UDP header as there is no
|
||||
difference in the format from the detector. Only the structure memeber names
|
||||
have changed in sls_detector_defs.h
|
||||
|
||||
Further details about each detector specific field can be found at:
|
||||
https://slsdetectorgroup.github.io/devdoc/udpdetspec.html
|
||||
|
||||
|
||||
* Namespace sls
|
||||
All files in slsSupportLib and tests have now been moved to sls namespace
|
||||
including macros. Using the LOG, for example, will require the sls qualifier.
|
||||
|
||||
|
||||
* [Eiger] Number of UDP interfaces
|
||||
Command line: numinterfaces, API: getNumberofUDPInterfaces
|
||||
This command now reflects the actual number of udp interfaces for Eiger,
|
||||
which is 2.
|
||||
|
||||
|
||||
* [Eiger][Jungfrau] Row column
|
||||
[Jungfrau] Fixed row column indexing for multi module 2 interfaces
|
||||
|
||||
[Eiger] The row indicies were switched across the Y axis for the callback
|
||||
only for Eiger. This is now changed and kept similar to the other detectors.
|
||||
The row indices would be in the order of the half modules in the hostname
|
||||
command. Therefore, to keep the image from callback, invert the hostname
|
||||
order in the config file.
|
||||
|
||||
* Deprecated CopyDetectorServer
|
||||
Command line: copydetectorserver, API: copydetectorserver
|
||||
Removed. Use updatedetectorserver
|
||||
|
||||
|
||||
* [Eiger][Jugfrau][Mythen3] Deprecated specific transmission delay commands
|
||||
txndelay_frame -> txdelay_frame
|
||||
txndelay_left -> txdelay_left
|
||||
txndelay_right -> txdelay_right
|
||||
|
||||
|
||||
* [Eiger] Datastream only for 10GbE
|
||||
Command line: datastream, API: getDataStream/ setDataStream
|
||||
|
||||
This command to enable/ disable data stream from left or right port
|
||||
is now allowed only for 10GbE. Previously, it incorrectly allowed to do so.
|
||||
|
||||
|
||||
* [Eiger][Jungfrau][Moench][Ctb] Stop command effect on next frame number
|
||||
Stopping acquisition sometimes results in different next frame numbers
|
||||
for different moduels. Hence, after a stop, if the next frame numbers are
|
||||
different, they are all set to their maximum value + 1.
|
||||
|
||||
|
||||
* Missing packets
|
||||
Command line: rx_missingpackets, API: getNumMissingPackets
|
||||
This now returns a signed 64 bit instead of unsigned. The negative polarity
|
||||
depicts extra packets instead of missing packets and also takes care of
|
||||
disabled ports.
|
||||
|
||||
|
||||
* Frames caught and frame index
|
||||
Command line rx_framescaught, rx_frameindex, API: getFramesCaught/ getRxCurrentFrameIndex
|
||||
They now return a vector for each port when there are 2 udp interfaces
|
||||
in the receiver.
|
||||
|
||||
|
||||
* [Gotthard][Gotthard2] Num modules
|
||||
Only 2 modules allowed maximum in a detector shared memory.
|
||||
|
||||
|
||||
* [Moench][Ctb][Mythen3] Deprecated commands
|
||||
Patloopx, patnloopx, patwaitx, patwaittimex
|
||||
Please use instead patloop, patnloop, patwait and patwaittime commands
|
||||
with the level as an argument.
|
||||
|
||||
Old commands work with warning, but the server expects the new ones
|
||||
such as a default pattern file to be loaded at startup for Moench.
|
||||
|
||||
Renamed patternParameters struct member from 'loop' to 'startloop' and
|
||||
'stoploop'.
|
||||
|
||||
|
||||
* [Mythen3] Clock Divider 4 and 5
|
||||
Cannot be set anymore. Only read back.
|
||||
|
||||
|
||||
|
||||
New commands:
|
||||
-------------
|
||||
|
||||
|
||||
* [Eiger][Gotthard][Gotthard2][Mythen3][Jungfrau] Master
|
||||
|
||||
Setting up from client:
|
||||
[Eiger][Gotthard2][Jungfrau]
|
||||
Command line: master, API: getMaster/ setMaster
|
||||
All of them can get master mode from the client.
|
||||
|
||||
This can also be set up on the detector server. Please refer to notes
|
||||
on that section.
|
||||
|
||||
|
||||
* [Eiger] Top
|
||||
Command line: top, API: getTop/ setTop
|
||||
Sets the half module to top or bottom from the client.
|
||||
|
||||
This can also be set up on the detector server. Please refer to notes
|
||||
on that section.
|
||||
|
||||
|
||||
* [Mythen3][Eiger] Save settings file
|
||||
Command line: trimbits (sls_detector_get), API: saveTrimbits
|
||||
Added
|
||||
|
||||
|
||||
* [Gotthard2] Parallel readout added
|
||||
Command line: parallel, API: getParallelMode/ setParallelMode
|
||||
Default for Gotthard2 is parallel. Non parallel mode only works in
|
||||
continuous mode.
|
||||
|
||||
|
||||
* [Jungfrau] Software trigger added
|
||||
Command line: trigger, API: sendSoftwareTrigger
|
||||
Send software trigger instead of harware trigger.
|
||||
|
||||
|
||||
* [Eiger][Jungfrau] Blocking trigger
|
||||
Commandline: blockingtrigger, API: sendSoftwareTrigger with argument true
|
||||
Sends software trigger signal to detector and blocks until the frames
|
||||
are sent out for that trigger.
|
||||
|
||||
|
||||
* [Jungfrau] Sync
|
||||
Command line: sync, API: getSynchronization/ setSynchronization
|
||||
Enables or disables synchronization between modules
|
||||
|
||||
|
||||
* [Gotthard2][Mythen3] Temperature readout
|
||||
Command line: temp_fpga, API: getTemperature with TEMPERATURE_FPGA enum
|
||||
Added
|
||||
|
||||
|
||||
* [Gotthard2][Mythen3] Round robin added
|
||||
Command line: udp_dstlist, API: getDestinationUDPList/ setDestinationUDPList
|
||||
Command line: udp_numdst, API: getNumberofUDPDestinations
|
||||
One can set up to 32 (64 for Mythen3) entries in the destination list.
|
||||
|
||||
|
||||
* [Jungfrau] Module Id
|
||||
Command line: moduleid, API: getModuleId
|
||||
16 bit value (ideally unique) that is streamed out in the udp header of
|
||||
the detector. The on-board detector server picks it up from a file
|
||||
(if it exists) called detid_jungfrau.txt.
|
||||
|
||||
|
||||
* [Jungfrau][[Gotthard2][Myhten3][Gotthard][Ctb][Moench] Hardware version
|
||||
Command line: hardwareversion, API: getHardwareVersion
|
||||
Gets the board or hardware version.
|
||||
For example, Jungfrau returns 1.0 or 2.0.
|
||||
It is also printed at on-board detector server start up.
|
||||
Also printed before starting FPGA programming.
|
||||
|
||||
|
||||
* [Eiger][Jugfrau][Mythen3] Transmission Delay
|
||||
Command line: tx_delay, API: getTransmissionDelay/ setTransmissionDelay
|
||||
Sets transmission delay for all modules in the detector using the step
|
||||
size provided. Sets up for every module:
|
||||
[Eiger] txdelay_left to (2 * mod_index * n_delay)
|
||||
[Eiger] txdelay_right to ((2 * mod_index + 1) * n_delay)
|
||||
[Eiger] txdelay_frame to (2 *num_modules * n_delay)
|
||||
[Jungfrau][Mythen3] txdelay_frame to (num_modules * n_delay)
|
||||
|
||||
|
||||
* [Mythen3] Bad channels
|
||||
Command line: badchannels, API: getBadChannels/ setBadChannels
|
||||
Set bad channels from file with a list of channels, which will be masked
|
||||
out. Also does trimming. A detector level command will require the channel
|
||||
numbers accordingly. The file and the command line is also extended to
|
||||
include commas, colons range and removes duplicates.
|
||||
|
||||
API allows badchannels as a 2D vector (for every module) or
|
||||
a 1D vector with positions.
|
||||
|
||||
Command line: Setting it to "none" or "0" will reset all the bad channels.
|
||||
API: Empty vector will reset all the bad channels.
|
||||
|
||||
|
||||
* [Moench][Ctb] Starting frame number
|
||||
Command line: nextframenumber, API: getNextFrameNumber/ setNextFrameNumber
|
||||
Added and default set up on detector server start up.
|
||||
|
||||
|
||||
* [Ctb] DAC names
|
||||
Command line: daclist, API: getDacNames/ setDacNames
|
||||
Can set and get dac names in the dac list now.
|
||||
|
||||
|
||||
* [Mythen3] Polarity, interpolation, pump probe, analog pulsing, digital pulsing
|
||||
Command line: polarity, interpolation, pumpprobe, apulse, dpulse
|
||||
API: getPolarity/ setPolarity, getInterpolation/ setInterpolation,
|
||||
getPumpProbe/ setPumpProbe, getAnalogPulsing/ setAnalogPulsing,
|
||||
getDigitalPulsing/ setDigitalPulsing
|
||||
|
||||
Added these commands.
|
||||
|
||||
Enabling interpolation will also enable all counters and disable vth3.
|
||||
Disabling sets to previous counter mask and previous vth values.
|
||||
|
||||
In pump probe mode, only vth2 enabled. Disabling sets vth2 to prevevious
|
||||
value.
|
||||
|
||||
Setting counter mask will check interpolation and pump probe mode
|
||||
requirements, else sets vthx dacs according to counter mask.
|
||||
|
||||
Direct overwrite of any dac (including vthx) allowed using dac command
|
||||
(as before).
|
||||
|
||||
|
||||
|
||||
New commands for Receiver only:
|
||||
-------------------------------
|
||||
|
||||
|
||||
* Arping for 10GbE
|
||||
Command line: rx_arping API: getRxArping/ setRxArping
|
||||
Starts a thread in the receiver to arping the interface it is listening
|
||||
to in 10GbE mode every 60 s.
|
||||
Changes NUM_RX_THREAD_IDS (sls_detector_defs.h) from 8 to 9.
|
||||
|
||||
|
||||
* Receiver Region of Interest
|
||||
Command line: rx_roi, API: getRxROI/ setRxROI
|
||||
Command line: rx_clearroi, API: clearRxROI
|
||||
One can set an ROI in the receiver to write to file. 1D detectors can set
|
||||
xmin and xmax, whereas the 2D can also set ymin and ymax. -1 values signify
|
||||
no ROI.
|
||||
|
||||
This is not at network level and can only be used to reduce size of file.
|
||||
Virtual HDF5 files not created when this is enabled and also no link in
|
||||
master file. No file created if module not in ROI.
|
||||
|
||||
There can only be one ROI per detector. Therefore, can be set only at
|
||||
detector level, but can be retrieved at module level as well.
|
||||
|
||||
The GUI still shows the entire image, but has a yellow border around the
|
||||
ROI. Status bar displays a message when Rx ROI enabled.
|
||||
|
||||
|
||||
|
||||
Additonal Features:
|
||||
-------------------
|
||||
|
||||
|
||||
* Non-blocking start
|
||||
Allowing non-blocking start at modular level again.
|
||||
|
||||
|
||||
* [Jungfrau][Moench][Ctb] Additional programming checks
|
||||
Also checks if the drive to write to is a special file or a normal
|
||||
file. If its a normal file, it throws asking to redo the command with a
|
||||
'--please-delete' argument to delete the normal file and create the device
|
||||
drive and restart FPGA programming.
|
||||
|
||||
More readable error message insetad of "programfpga not implemented for
|
||||
this detector'. This happens when 'hostname' command fails due to
|
||||
server-firmware/client compatibility and the detector type becomes
|
||||
'GENERIC'. Fixed to suggest if 'hostname' executed properly.
|
||||
|
||||
|
||||
* Udp Source IP
|
||||
Command line: udp_srcip(2), API: getSourceUDPIP(2)/ setSourceUDPIP(2)
|
||||
One can also set this to 'auto' for 1 GbE data and virtual detectors.
|
||||
It will set to IP of detector. Not available for GotthardI.
|
||||
|
||||
* Incrementing default receiver tcp port
|
||||
Automatically incrementing the default receiver tcp port for every module
|
||||
when creating shared memory.
|
||||
|
||||
|
||||
* Command line pattern commands also prints level index at output now.
|
||||
|
||||
|
||||
* Zmq High water mark (hwm) and buffer size
|
||||
When switching to the gui, hwm for the gui and the reciver was set to 2.
|
||||
Now, if hwm is less than 25, the zmq receive buffer size is set to 1Mb
|
||||
in the gui, else to 0 (os default). Similarly, zmq send buffer size is
|
||||
also set for the receiver. These functions and option to rebind the zmq
|
||||
publisher socket is also available now.
|
||||
* HDF5 Compilation
|
||||
Compilation issues from 7.0.0 fixed.
|
||||
|
||||
|
||||
Changes or Fixes:
|
||||
-----------------
|
||||
|
||||
|
||||
* [Jungfrau][Gotthard2][Mythen3][Gotthard][Moench][Ctb] Can't stop
|
||||
This bug was introduced in 6.1.1, when stopping an acquisition saying it
|
||||
cannot stop, even though it was successful. It is fixed now.
|
||||
|
||||
Note: Only if the detector is not in idle or stopped status, will the
|
||||
command to stop acquisition go to the detector. This was introduced in 6.1.2
|
||||
to handle multiple modules getting asynchronous start and stops from
|
||||
different processes.
|
||||
|
||||
|
||||
* [Gotthard] Set delay exception
|
||||
Set delay threw an exception as it adds master delay in verification
|
||||
even if it was not a master. Fixed.
|
||||
|
||||
|
||||
* Shared memory access failure
|
||||
After a free, one could get seg fault if one called a function accessing
|
||||
the shared memory structure without first loading the config file that
|
||||
creates the shared memory. Fixed, a proper exception thrown if one tries
|
||||
to access shared memory without creating it first.
|
||||
|
||||
|
||||
* Stop detector when receiver is stuck
|
||||
If receiver was stuck or crashed, stop acquisition command should
|
||||
stop detector first before checking receiver status to restream
|
||||
dummy header. Fixed.
|
||||
|
||||
|
||||
* Free and config command fail
|
||||
Free and config command checked mismatch of size of shared memory before
|
||||
freeing or loading new config. Fixed.
|
||||
|
||||
|
||||
* Incorrect user provided detector size
|
||||
Command line: detsize, API: getDetectorSize/ setDetectorSize
|
||||
If a user sets an incorrect detector size that is greater than the actual
|
||||
detector size, then it would have set an incorrect number of modules,
|
||||
affecting number of ports in the receiver. This has been fixed and now
|
||||
the user can only set less than or equal to the maximum dimension
|
||||
it could have.
|
||||
|
||||
|
||||
* sls_detector_help or sls_detector_get -h
|
||||
Should not create Detector object. Fixed.
|
||||
|
||||
|
||||
* [Jungfrau] Storage cells in running receiver
|
||||
Allowing the possibility to set this when receiver in running state.
|
||||
|
||||
|
||||
* [Eiger] Vtr
|
||||
Allow Vtrim to be interpolated for settings.
|
||||
|
||||
|
||||
* [Mythen3] Incorrect gain caps when setting threshold energy
|
||||
Gain caps overwritten with settings enum. Fixed.
|
||||
|
||||
|
||||
* [Mythen3] Non blocking start acquisition
|
||||
Non-blocking start acquisition was sent out twice to the master. Fixed.
|
||||
|
||||
|
||||
* [Mythen3] Threshold
|
||||
When settings trimbits or threshold, counter mask is set and hence,
|
||||
vthx dacs are set accordingly.
|
||||
|
||||
setAllThresholdEnergy takes 3 values for each counter and if one of them
|
||||
is -1, the trimbits and setings for that counter is picked up from the
|
||||
detector.
|
||||
|
||||
|
||||
* [Moench][Ctb] Pattern levels
|
||||
Changed from 3 to 6.
|
||||
|
||||
|
||||
* [Mythen3][Moench][Ctb] Default patwait and patloop addresses
|
||||
Set default wait and loop addresses to 0x1fff (max value) for all levels
|
||||
before loading pattern. Please use the pattern command instead of parameters.
|
||||
This ensures defaults are set up and is faster.
|
||||
|
||||
|
||||
* [Moench] Patsetbit and patsetmask
|
||||
Command line: patsetbit API: getPatternBitMask/ setPatternBitMask
|
||||
Command line: patmask API: getPatternMask/ setPatternMask
|
||||
|
||||
Exchanging the help and masks for patsetbit and patsetmask in the detector
|
||||
server, especially in loading settings.
|
||||
|
||||
|
||||
* [Moench][Ctb] ADC Vpp
|
||||
Command line: adcvpp, API: getADCVpp/ setADCVpp
|
||||
Moved from SetDAC function into into its own. One can use mV values or
|
||||
option numbers as before.
|
||||
|
||||
|
||||
* [Ctb] ADC command goes back to control server
|
||||
Slow ADCs, slow ADC temperature, get measured current and voltage values
|
||||
are requested via the control server again insetad of the stop server
|
||||
due to configuration and definitions in the control server.
|
||||
|
||||
|
||||
* UDP Source Mac addresses
|
||||
Only allowing unicast addresses (LSB of first octet must be 0).
|
||||
|
||||
|
||||
1.5 Detector Server
|
||||
====================
|
||||
|
||||
|
||||
Config file:
|
||||
------------
|
||||
|
||||
* [Eiger][Gotthard2][Gotthard] Master
|
||||
Using config file with 'master' with argument (master=1, slave=0)
|
||||
|
||||
|
||||
* [Eiger] Top
|
||||
Using config file with 'top' with argument (top=1, bottom=0)
|
||||
|
||||
|
||||
|
||||
Command line arguments:
|
||||
-----------------------
|
||||
|
||||
* They have precedence over config files.
|
||||
|
||||
|
||||
* [Eiger][Gotthard2 Virtual][Mythen3 Virtual][Gotthard Virtual] Master
|
||||
Using command line '--master = 1' or '-m = 1' with argument
|
||||
(master = 1, slave = 0)
|
||||
|
||||
|
||||
* [Eiger] Top
|
||||
Using command line '--top = 1' or '-t = 1' with argument (top=1, bottom=0)
|
||||
|
||||
|
||||
* Ignore config file
|
||||
The config files can also be ignored by an argument from the command line,
|
||||
'--ignore-config' or '-i'.
|
||||
|
||||
|
||||
|
||||
Fixes:
|
||||
------
|
||||
|
||||
|
||||
* [Jungfrau][Eiger] Clear UDP destination
|
||||
Command line: udp_cleardst, API: clearUDPDestinations
|
||||
Clearing udp destination also clears it in the FPGA now.
|
||||
|
||||
|
||||
* [Eiger] Incorrect next frame number
|
||||
Command line: nextframenumber, API: getNextFrameNumber/ setNextFrameNumber
|
||||
Get next frame number for 10g was connected to 1g registers and gave
|
||||
incorrect values. Fixed.
|
||||
|
||||
|
||||
* [Eiger] Quad Dynamic range
|
||||
Could not set dyanamic range in an Eiger Quad. Fixed.
|
||||
|
||||
|
||||
* [Eiger] Stop before first acquisition after power on
|
||||
Firmware fixed to handle a stop command before first acquisition after
|
||||
the module is powered on.
|
||||
|
||||
|
||||
* [Mythen3][Gotthard2] System clock change effects
|
||||
When changing the system clock (clkdiv 2), time settings should also be
|
||||
affected (exptime, period etc.). Fixed.
|
||||
|
||||
[Gotthard2] System frequency should be same irrespective of timing source.
|
||||
Fixed.
|
||||
|
||||
|
||||
* [Mythen3] Kernel version compatibility test
|
||||
Fix added to parse properly the kernel version with CET for corrected
|
||||
version compatibility test.
|
||||
|
||||
|
||||
* [Mythen3] Server crash for setting vthrehsold
|
||||
Fixed.
|
||||
|
||||
|
||||
* [Mythen3] trimming
|
||||
Fixed deserializing in trimming.
|
||||
|
||||
|
||||
* [Mythen3] Incorrect gaincaps
|
||||
Setting threshold energy was overwriting gaincaps with settings enum. Fixed.
|
||||
|
||||
|
||||
* [Ctb][Moench] Hostname fail in update mode.
|
||||
Fixed
|
||||
|
||||
|
||||
|
||||
Changes:
|
||||
--------
|
||||
|
||||
|
||||
* [Jungfrau] Temporary fix for stop in 6.1.1
|
||||
Temporary fix introduced in 6.1.1 for not being able to start after a
|
||||
stop command has been issued is removed. Reset core right after also has
|
||||
been removed. It has been fixed in firmware instead.
|
||||
|
||||
|
||||
* [Gotthard2] Clock Divider defaults
|
||||
When chancing burst mode, clock dividers (2, 3 and 4) set to their
|
||||
defaults according to burst mode.
|
||||
|
||||
|
||||
* [Mythen3] Change in default clock dividers.
|
||||
|
||||
|
||||
* [Mythen3] DAC check for settings
|
||||
Verify DAC values for each setting has been temporarily switched off
|
||||
|
||||
|
||||
* [Mythen3] DAC min and max values
|
||||
Vtrim minimum of 600 has been removed.
|
||||
The threshold dacs minimum is 200 and maximum is 2400.
|
||||
The other DACs minimum is 0 and maximum is 2800.
|
||||
When out of range, will not throw, just a warning.
|
||||
|
||||
|
||||
* [Mythen3] Vicin Dac changed to 800
|
||||
|
||||
|
||||
* [Jungfrau][Moench][Ctb] PLL reset at server start up
|
||||
PLL reset now at server start up.
|
||||
|
||||
|
||||
* [Moench] ADC9257 Vref
|
||||
ADC Vref voltage modified from 1.33V to 2V
|
||||
|
||||
|
||||
|
||||
* [Ctb] Allow all clock dividers for PLL
|
||||
Fixed. For example, 133 MHz would not really be set previously. Fixed by
|
||||
changing totaldiv from float to an integer.
|
||||
|
||||
|
||||
|
||||
Additional Features:
|
||||
--------------------
|
||||
|
||||
|
||||
* Stop server startup errors
|
||||
Stop servers now also check for errors at startup (including version
|
||||
compatibility) and like the control server, it will translate to the
|
||||
client when connecting for the first time (hostname command).
|
||||
|
||||
|
||||
* [Jungfrau][Moench][Ctb] Additional server update process
|
||||
Removes old server binary or target of linked file when updating
|
||||
detector server for blackfin detectors as there is less space on blackfin.
|
||||
|
||||
Clearing up absolute and respawn path (removing double '/')
|
||||
|
||||
Raise error if server name to be copied is the same as final soft link name.
|
||||
|
||||
|
||||
* [Moench][Ctb] 1 GbE Non blocking acquisition
|
||||
Previously non blocking acquisition in 1 GbE would not send data.
|
||||
This feature added now.
|
||||
|
||||
|
||||
* [Gotthard2] Adapted to new HDI version
|
||||
HDI module ID written to FPGA register
|
||||
|
||||
|
||||
|
||||
1.6 Simulator
|
||||
==============
|
||||
|
||||
|
||||
* Command line arguments. Please refer to previous section on Detector Server.
|
||||
|
||||
|
||||
* [Eiger] Only one executable
|
||||
Only one executable for an Eiger virtual server. Master and top mode
|
||||
can be provided via command line or config file to the detector server,
|
||||
as well as via the client. See in Other New Features for more details.
|
||||
|
||||
One can start a module using:
|
||||
eigerDetectorServer_virtual # reads default config file (top master)
|
||||
eigerDetectorServer_virtual -i #ignores the config file (bottom slave)
|
||||
|
||||
|
||||
* [Eiger][Junfrau][Gotthard2][Mythen3] Module Id
|
||||
Added into udp header
|
||||
|
||||
|
||||
* Minimum Configuration
|
||||
One can setup with just:
|
||||
hostname localhost
|
||||
rx_hostname localhost
|
||||
udp_dstip auto
|
||||
|
||||
|
||||
* [Mythen3] Packet size
|
||||
Fixed packet size calculation. Previously, sending only header with no data.
|
||||
|
||||
|
||||
|
||||
1.7 Receiver
|
||||
=============
|
||||
|
||||
|
||||
Breaking API:
|
||||
-------------
|
||||
|
||||
|
||||
* Namespace sls
|
||||
All the receiver source files have also been added to namespace sls.
|
||||
|
||||
|
||||
* HDF5 and Binary writer version
|
||||
Changed from 6.3 to 6.4
|
||||
|
||||
|
||||
* Master file format to json
|
||||
The format has been changed from ASCII to json.
|
||||
|
||||
|
||||
* Geometry metadata
|
||||
Added geometry (number of modules in each direction) to metadata in file.
|
||||
|
||||
|
||||
* HDF5 Dataset name
|
||||
Changed to just "data" to simplify for user
|
||||
|
||||
|
||||
* File write
|
||||
File write is disabled by default.
|
||||
|
||||
|
||||
|
||||
Fixes:
|
||||
------
|
||||
|
||||
|
||||
* Refactored and fixed minor issues
|
||||
Including memory structure and udp sockets.
|
||||
Fixed progress also in discard partial packaets mode and deactivated ports.
|
||||
Fixed 200% progress.
|
||||
Completely padded images now have detector type or version in metadata.
|
||||
Fixed getting stuck at stop receiver when using zmq
|
||||
Fixed clang compiler warnings
|
||||
|
||||
|
||||
* Multiple files
|
||||
This bug was introduced in v6.0.0, where 1 file was created per frame
|
||||
after the first file. Fixed by resetting the number of frames in
|
||||
current file when creating a new one.
|
||||
|
||||
|
||||
* [Eiger] Datastream command order
|
||||
The order of commands to set datastream from client mattered previously.
|
||||
Datastream had to be set before 10GbE enable. Order does not matter anymore.
|
||||
|
||||
|
||||
* Udp destination MAC
|
||||
If it has been set before, changing udp_dstip will not update udp_dstmac.
|
||||
Fixed to always set it in detector even if it had a value before.
|
||||
Udp_dstmac can still be used to overwrite again. This is useful when
|
||||
using a router for example.
|
||||
|
||||
|
||||
* Stuck when using zmq
|
||||
More often in 6.1.1, gets stuck at stop receiver.
|
||||
|
||||
|
||||
* [Mythen3] Incorrect number of packets calculated or tengiga not set up
|
||||
Runnig config second time (with tengiga=0, dr !=32, counters !=0x7)
|
||||
calculated incorrect image size expected due to inconsistent copy of
|
||||
detector parameters. Fixed
|
||||
|
||||
|
||||
* Storage cells in receiver
|
||||
Previously not updated in receiver. Fixed.
|
||||
|
||||
|
||||
* Virtual HDF5 Parameter datasets
|
||||
Corner case bug when frames caught is not a multiple of frames per file.
|
||||
Not found in virtual image datasets. Fixed.
|
||||
|
||||
|
||||
|
||||
Changes:
|
||||
--------
|
||||
|
||||
|
||||
* Master file created at end of acquisition
|
||||
The file is now written at the end of acquisition. So if any metadata
|
||||
is changed during an acquisition, it will reflect the last value.
|
||||
|
||||
|
||||
* File name prefix
|
||||
Slash '/' not allowed.
|
||||
|
||||
|
||||
|
||||
Additional Features:
|
||||
--------------------
|
||||
|
||||
|
||||
* [Gotthard2] 25um image reconstruction in virtual HDF5
|
||||
Virtual HDF5 reconstructs complete image by interleaving first module
|
||||
(master) with second module (slave). First channel of master is first
|
||||
channel of detector.
|
||||
|
||||
Requires firmware update to reverse channels of slaves.
|
||||
|
||||
|
||||
* Memory size
|
||||
Increased an internal fifo header by 8 bytes to align memory allocated for
|
||||
to receive images for efficiency.
|
||||
|
||||
|
||||
|
||||
1.8 Gui
|
||||
========
|
||||
|
||||
|
||||
* Refer Compilation topic for changes.
|
||||
|
||||
|
||||
* [Jungfrau][Eiger] Gap pixels
|
||||
Enabled by default in the gui.
|
||||
|
||||
|
||||
* High voltage
|
||||
Moved from Developer tab to Settings tab.
|
||||
|
||||
|
||||
* Gain plot zooming
|
||||
Zooming disabled. Instead, it automatically zooms in when you zoom in
|
||||
the main plot or if min and max of x and y axis set up in plot tab.
|
||||
|
||||
|
||||
* [Mythen3] Inconsistent timing mode
|
||||
Timing mode of the slaves should be discarded before squashing. Fixed.
|
||||
|
||||
|
||||
* [Mythen3][Gotthard2] Crashes
|
||||
Additional locking Added
|
||||
|
||||
|
||||
* File path set in detector after choosing a directory in dialog (without
|
||||
pressing enter). Before, it was only set in the display box, but lost
|
||||
when switching tabs.
|
||||
|
||||
|
||||
* X, Y, Z axis limits
|
||||
Did not reflect on the current plot. Fixed.
|
||||
|
||||
|
||||
* Refer 'Client' notes on Zmq High water mark and Zmq buffer size for
|
||||
fast detectors.
|
||||
|
||||
|
||||
|
||||
|
||||
2 On-board Detector Server Compatibility
|
||||
|
@ -14,14 +14,14 @@ HDF5DataFile::HDF5DataFile(int index, std::mutex *hdf5Lib)
|
||||
"frame number",
|
||||
"exp length or sub exposure time",
|
||||
"packets caught",
|
||||
"bunch id",
|
||||
"detector specific 1",
|
||||
"timestamp",
|
||||
"mod id",
|
||||
"row",
|
||||
"column",
|
||||
"reserved",
|
||||
"debug",
|
||||
"round robin number",
|
||||
"detector specific 2",
|
||||
"detector specific 3",
|
||||
"detector specific 4",
|
||||
"detector type",
|
||||
"detector header version",
|
||||
"packets caught bit mask",
|
||||
@ -317,7 +317,7 @@ void HDF5DataFile::WriteParameterDatasets(const uint64_t currentFrameNumber,
|
||||
dataSetPara[2]->write(&header.packetNumber, parameterDataTypes[2],
|
||||
memspace, *dataSpacePara);
|
||||
i = 3;
|
||||
dataSetPara[3]->write(&header.bunchId, parameterDataTypes[3], memspace,
|
||||
dataSetPara[3]->write(&header.detSpec1, parameterDataTypes[3], memspace,
|
||||
*dataSpacePara);
|
||||
i = 4;
|
||||
dataSetPara[4]->write(&header.timestamp, parameterDataTypes[4],
|
||||
@ -332,13 +332,13 @@ void HDF5DataFile::WriteParameterDatasets(const uint64_t currentFrameNumber,
|
||||
dataSetPara[7]->write(&header.column, parameterDataTypes[7], memspace,
|
||||
*dataSpacePara);
|
||||
i = 8;
|
||||
dataSetPara[8]->write(&header.reserved, parameterDataTypes[8], memspace,
|
||||
dataSetPara[8]->write(&header.detSpec2, parameterDataTypes[8], memspace,
|
||||
*dataSpacePara);
|
||||
i = 9;
|
||||
dataSetPara[9]->write(&header.debug, parameterDataTypes[9], memspace,
|
||||
dataSetPara[9]->write(&header.detSpec3, parameterDataTypes[9], memspace,
|
||||
*dataSpacePara);
|
||||
i = 10;
|
||||
dataSetPara[10]->write(&header.roundRNumber, parameterDataTypes[10],
|
||||
dataSetPara[10]->write(&header.detSpec4, parameterDataTypes[10],
|
||||
memspace, *dataSpacePara);
|
||||
i = 11;
|
||||
dataSetPara[11]->write(&header.detType, parameterDataTypes[11],
|
||||
|
Loading…
x
Reference in New Issue
Block a user