From 574127b5acb87715ac31703d96b94f4a5e48a981 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil <33750417+thattil@users.noreply.github.com> Date: Thu, 23 Mar 2023 12:30:38 +0100 Subject: [PATCH] fix hdf5 compilation using det spec fields in header (#700) * fix hdf5 compilation using det spec fields in header --- RELEASE.txt | 928 +---------------------- slsReceiverSoftware/src/HDF5DataFile.cpp | 16 +- 2 files changed, 20 insertions(+), 924 deletions(-) diff --git a/RELEASE.txt b/RELEASE.txt index 255e192f3..156c7942f 100644 --- a/RELEASE.txt +++ b/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 diff --git a/slsReceiverSoftware/src/HDF5DataFile.cpp b/slsReceiverSoftware/src/HDF5DataFile.cpp index 54554b156..faae336b6 100644 --- a/slsReceiverSoftware/src/HDF5DataFile.cpp +++ b/slsReceiverSoftware/src/HDF5DataFile.cpp @@ -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],