client:updated users class and release.txt

This commit is contained in:
2018-08-22 18:08:35 +02:00
parent 7945d15beb
commit 63c130a380
12 changed files with 328 additions and 146 deletions

View File

@ -59,7 +59,7 @@ CONTENTS
- Other New Features
- Resolved Issues
- Known Issues
- Future Plans
- Neat Release Plans
@ -159,9 +159,7 @@ Changes in User Interface
online flag in shm has not been set.
4. With the new shared memory implementation, commands "type" and "replace"
are removed and "add" now only appends detector to the end of the multi
detector list.
4. Commands "type", "id" and "replace" are removed.
Receiver
@ -172,6 +170,7 @@ Changes in User Interface
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 */
@ -216,68 +215,68 @@ New/Modified Commands
Client
------
- add (modified):
1. add (modified):
appends detector to end of multi detector list.
- replace:
2. replace:
sets hostname/ip address for a single detector.
- user:
3. user:
get user details from shared memory.
- checkdetversion:
4. checkdetversion:
checks client version compatibility with detector server.
- checkrecversion:
5. checkrecversion:
checks client version compatibility with receiver server.
Receiver
--------
- rx_zmqip:
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.
- 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.
- rx_jsonaddheader:
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\"
- r_discardpolicy:
4. r_discardpolicy:
sets/gets the frame discard policy in the receiver.
0 - no discard (default),
1 - discard only empty frames,
2 - discard any partial frame(fastest)
- r_padding:
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.
- activate (modified):
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".
- rx_udpsocksize:
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.
- rx_realudpsocksize:
8. rx_realudpsocksize:
gets the actual UDP socket buffer size. Usually double the set udp socket
buffer size due to kernel bookkeeping.
- r_framesperfile:
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.
@ -285,45 +284,45 @@ New/Modified Commands
Eiger Specific
--------------
- status trigger:
1. status trigger:
To trigger internally via software, one can use "status trigger".
- subdeadtime:
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.
- gappixels:
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.
- measuredperiod:
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.
- measuredsubperiod:
5. measuredsubperiod:
gets the measured subframe period (time between last subframe and the
previous one) in s in 32 bit mode.
- flags(modified):
6. flags(modified):
extra flags "overflow" (default) and "nooverflow" for sub images in 32
bit mode. If set to overflow, it will set MSB of pixel data high if
there was an overflow in any of the sub images 32 bit mode.
there was any saturation in any of the sub images 32 bit mode.
Jungfrau Specific
-----------------
- storagecells:
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).
- storage_start:
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).
@ -344,8 +343,30 @@ Other New Features
xcoord and ycoord are given to detector servers (Eiger and Jungfrau)
to encode into the udp header.
3. Users API updated to reflect new features.
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
-----------
@ -362,35 +383,47 @@ Other New Features
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.
added few more functions to slssDeectorUsers API
setThresholdEnergy with the more options such as trimbits and settings
resetFramesCaughtInReceiver
setReceiverFifoDepth
setFlowControl10G
setTenGigabitEthernet
getNMods
setSubFrameExposureTime
setSubFrameExposureDeadTime
setReceiverDataStreamingOutIP
setClientDataStreamingInIP
enableGapPixels
setOverflowMode
Resolved Issues
===============
Client
------
1. If trimen gives different list from different detectors, it returns a -1.
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).
Receiver
--------
@ -401,7 +434,23 @@ Resolved Issues
3. Global optind variable initialized to instantiate multiple receivers
in same process.
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, including removing
many static members, 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).
Known Issues
@ -409,12 +458,22 @@ Known Issues
Receiver
--------
1. HDF5 compression and filters are not implemented yet.
Detector Server
---------------
Future Plans
============
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.
Neat Release Plans
==================
Client
------