readout speed added to json and h5 master files.
Also fixed master file inconsistencies
Sserver binaries
- update server binaries because readoutspeed needs to be sent to receiver with rx_hostname command
API
- added const to Detector class set/getburstmode
Python
- updated python bindings (burstmode const and roi arguments)
Cmd generation
- added pragma once in Caller.in.h as Caller is included in test files
m3: num channels due to #counters < 3
* workaround for m3 for messed up num channels (client always assumes all counters enabled and adds them to num channels), fix for hdf5
g2: exptime master file inconsistency
- exptime didnt match because of round of when setting burst mode (sets to a different clk divider)
- so updating actual time for all timers (exptime, period, subexptime etc, ) in Module class, get timer values from detector when setting it and then send to receiver to write in master file
ctb image size incorrect:
- write actual size into master file and not the reserved size (digital reduces depending on dbit list and dbit offset)
- added a calculate ctb image size free function in generalData.h that is used there as well as for the tests.
master file inconsistencies
- refactored master attributes writing using templates
- names changed to keep it consistent between json and hdf5 master file (Version, Pixels, Exposure Times, GateDelays, Acquisition Period, etc.)
- datatypes changed to keep it simple where possible: imageSize, dynamicRange, tengiga, quad, readnrows, analog, analogsamples, digital, digitalsamples, dbitreorder, dbitoffset, transceivermask, transeiver, transceiversamples, countermask, gates =>int
- replacing "toString" with arrays, objects etc for eg for scan, rois, etc.
- json header always written (empty dataset or empty brackets)
- hdf5 needs const char* so have to convert strings to it, but taking care that strings exist prior to push_back
- master attributes (redundant string literals->error prone
tests for master file
- suppressed deprecated functions in rapidjson warnings just for the tests
- added slsREceiverSoftware/src to allow access to receiver_defs.h to test binary/hdf5 version
- refactored acquire tests by moving all the acquire tests from individual detector type files to a single one=test-Caller-acquire.cpp
- set some default settings (loadBasicSettings) for a basic acquire at load config part for the test_simulator python scripts. so minimum number of settings for detector to be set for any acquire tests.
- added tests to test master files for json and hdf5= test-Caller-master-attributes.cpp
- added option to add '-m' markers for tests using test_simulator python script
* slsSupportLib done, at receiver rooting out in implementation
* removed from receiver and client
* removed everywhere except gui, python and client(commands.yaml and Detector.h)
* updated python
* fixed autocomplete to print what the issue is if there is one with ToString when running the autocomplete script to generate fixed.json. updated readme.md in generator folder
* formatting
* removed enums for dacs
* udpating autocomplete and generating commands
* removed gotthard from docs and release notes
* removed dac test
* bug from removing g1
* fixed virtual test for xilinx, was minor. so in this PR
* gui done
* binary in merge fix
* formatting and removing enums
* updated fixed and dump.json
* bash autocomplete
* updated doc on command line generation
* removing increments in dac enums for backward compatibility. Not required
* removed ROI from rxParameters (only in g1), not needed to be backward compatible
* removed the phase shift option from det server staruip
* skeleton of structure for callbacks and funcitons updated
* updated callback header structures and implemented in receiver
* fixed bugs
* minor
* formatting
* wip: draft of frame synchronizer, semaphores not done yet
* signal handler not affecting semaphore inside lambda function
* finally works with sem
* install targets cmake error fix
* removed modified callback and instead passing by reference instead of value to the oriignal receiver data callback
* reducing the number of data call backs. incoming from developer
* added json header to receiver start acquiistion call back
* WIP: of synchronisation (#969)
* WIP of synchronisation
* working so far if everything goes right
* added all information into json headers
* valid json
* allow frame synchronizer to have access to static libzmq when compiling on conda (libzeromq-devel not installed by default
* upto date with multirecieverapp for invalid arguments and help
* formatting
* remove warnings
* changes to print
* removed prints
* no need for print frames to be called
* minor
* commnet
* adding json header in start callback, imagesize in data callback and formatted
* startcallback returns an unused int (changed to exceptions and forgotten in last modification to callbacks likely)
* fixed sanitizer issues. 1 left for ctrl+C
- zmq_msg_t should be deleted, not freed. Same with the char arrays and semaphores.
* fixed sanitizer issues and made it more readable
* moving clearing old frames to new startacq just in case it has to process soem frames before the callback
* fix cherry-pick merge of fixing sanitizer thread issues but has start callbacks signature change.fixed
---------
Co-authored-by: Felix Engelmann <felix-github@nlogn.org>
* initital implementation
* datetime replaces with sls::Duration in Python C bindings
* using custom type caster
* fix for conversion to seconds
* added set_count in python
* common header for pybind11 includes
authored-by: Erik Frojdh <erik.frojdh@psi.ch>
* Setting pattern from memory (#218)
* ToString accepts c-style arrays
* fixed patwait time bug in validation
* Introduced pattern class
* compile for servers too
* Python binding for Pattern
* added scanParameters in Python
* slsReceiver: avoid potential memory leak around Implementation::generalData
* additional constructors for scanPrameters in python
* bugfix: avoid potentital memory leak in receiver if called outside constructor context
* added scanParameters in Python
* additional constructors for scanPrameters in python
* M3defaultpattern (#227)
* default pattern for m3 and moench including Python bindings
* M3settings (#228)
* some changes to compile on RH7 and in the server to load the default chip status register at startup
* Updated mythen3DeectorServer_developer executable with correct initialization at startup
Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
Co-authored-by: Anna Bergamaschi <anna.bergamaschi@psi.ch>
* Pattern.h as a public header files (#229)
* fixed buffer overflow but caused by using global instead of local enum
* replacing out of range trimbits with edge values
* replacing dac values that are out of range after interpolation
* updated pybind11 to 2.6.2
* Mythen3 improved synchronization (#231)
Disabling scans for multi module Mythen3, since there is no feedback of the detectors being ready
startDetector first starts the slaves then the master
acquire firs calls startDetector for the slaves then acquire on the master
getMaster to read back from hardware which one is master
* New server for JF to go with the new FW (#232)
* Modified Jungfrau speed settings for HW1.0 - FW fix version 1.1.1, compilation date 210218
* Corrected bug. DBIT clk phase is implemented in both HW version 1.0 and 2.0. Previous version did not update the DBIT phase shift on the configuration of a speed.
* fix for m3 scan with single module
* m3 fw version
* m3 server
* bugfix for bottom when setting quad
* new strategy for finding zmq based on cppzmq
Co-authored-by: Dhanya Thattil <dhanya.thattil@psi.ch>
Co-authored-by: Dhanya Thattil <33750417+thattil@users.noreply.github.com>
Co-authored-by: Alejandro Homs Puron <ahoms@esrf.fr>
Co-authored-by: Anna Bergamaschi <anna.bergamaschi@psi.ch>
Co-authored-by: Xiaoqiang Wang <xiaoqiangwang@gmail.com>
Co-authored-by: lopez_c <carlos.lopez-cuenca@psi.ch>