Commit Graph

85 Commits

Author SHA1 Message Date
ee27f0bc1b readoutspeed in rx master file and other master file inconsistencies (#1245)
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
2025-07-25 11:45:26 +02:00
297c3752e3 Dev/remove gotthard i (#1108)
* 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
2025-03-10 14:24:33 +01:00
ce8911de10 when creating the python bindings for Detector class, it should ignore the assignment operators (#1107) 2025-02-26 12:21:06 +01:00
e933a25453 Dev/frame synchronizer (#968)
* 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>
2025-02-18 11:28:21 +01:00
Erik Frojdh
403989e2f8 trigger, blockingtrigger in python and m3 timefix 2023-02-22 18:01:46 +01:00
f9c9a53c8c fix python compare script from g to sls_detector_get 2023-02-22 17:09:47 +01:00
Dhanya Thattil
b7cdfbb4d2 Adcvpp (#566)
* added api in detector class for adcvpp, taken out of dac list
2022-10-20 10:58:56 +02:00
Erik Fröjdh
045a28b5de Nanosecond times in Python (#522)
* 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>
2022-08-26 11:48:40 +02:00
Erik Fröjdh
3d3e70c718 added defines for python (#498) 2022-07-14 10:07:26 +02:00
Erik Frojdh
78823760b3 more checks in generate functions 2022-03-17 09:52:39 +01:00
Erik Frojdh
561777dad6 fixed clang--format version 2022-03-17 09:02:40 +01:00
Erik Frojdh
401467c700 updated scripts and generated detector.cpp 2022-03-16 18:29:33 +01:00
Erik Frojdh
6c662b1370 bitwise operators for gain caps 2022-02-02 18:35:44 +01:00
Erik Frojdh
91cf18c5d1 removed comment 2021-11-05 12:03:01 +01:00
Erik Frojdh
642989cab2 removed c++14 only overload_cast from pybind enum interface 2021-11-05 11:56:57 +01:00
519b09fcad permission 2021-10-18 15:01:10 +02:00
fada085f0e added .py licenses 2021-10-15 15:54:58 +02:00
e92270565b changed gain mode. dynamic_gain_mode to dynamic only. binaries in 2021-08-06 16:38:05 +02:00
67916cc188 binaries in, merge fix 2021-08-06 16:14:53 +02:00
cc3aede979 merge fix 2021-08-06 16:11:58 +02:00
2c53a134cd updated i3gbe to lll 2021-08-06 16:08:07 +02:00
3802f22ebe wip 2021-08-04 14:03:27 +02:00
0e5e0f346b rewrote settings enums, gainmode enums 2021-08-04 13:07:48 +02:00
9ed3a294ce jungfrau: gainmode 2021-08-02 12:44:57 +02:00
cce2511f7a removed forceswitch enum, removed fixgain1 and 2 from jungfrau settings (kept enum for g2 2021-07-23 17:12:48 +02:00
05b7e0ef42 conflict merge fix 2021-07-22 11:53:00 +02:00
da996314e7 merge conflict 2021-07-22 11:15:57 +02:00
af16ad4040 vetoalg: wip 2021-07-20 12:58:05 +02:00
Erik Frojdh
09391b767a support for scoped enums and operators in Python 2021-07-16 14:48:22 +02:00
Erik Frojdh
779a2a0199 CSR in trim files 2021-04-01 08:09:04 +02:00
Erik Frojdh
fa25340e5c allow bitwise op on the gain cap 2021-03-29 16:14:10 +02:00
Erik Frojdh
043d582616 initial implementation 2021-03-29 14:21:48 +02:00
Erik Frojdh
7c4f9ee044 read back of csr 2021-03-26 17:46:11 +01:00
Erik Fröjdh
2f2fe4dd47 Release of 5.1.0 (#237)
* 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>
2021-03-22 14:43:11 +01:00
Erik Frojdh
0b0f5c94d5 master file no index 2020-09-23 16:28:50 +02:00
Erik Frojdh
6d01348bf4 removed setClockFrequency and added some python commands 2020-09-17 16:03:58 +02:00
Erik Frojdh
e8cd75a6ac more python commands 2020-09-17 15:10:02 +02:00
Erik Frojdh
d70090967d python funcs 2020-09-10 16:47:34 +02:00
Erik Frojdh
c94dfde17c updated compare script 2020-09-10 15:48:25 +02:00
Erik Frojdh
b879a377ba python cmds 2020-09-10 15:28:29 +02:00
Erik Frojdh
2bc33ad34a default value for setDAC 2020-09-10 14:45:31 +02:00
Erik Frojdh
2733bc5320 added now 2020-09-10 14:02:25 +02:00
Erik Frojdh
a95d8f664a added slowadc to python 2020-09-10 12:16:25 +02:00
Erik Frojdh
9ee67f2cfa python rx_jsonpara 2020-09-07 16:23:28 +02:00
Erik Frojdh
7048a75808 triggersl and print fix for acq 2020-09-03 16:21:15 +02:00
Erik Frojdh
22f14cacb0 virtual and vetofile 2020-09-03 15:33:12 +02:00
Erik Frojdh
508ec150f5 added Gotthard and Moench 2020-08-25 15:48:56 +02:00
Erik Frojdh
e782fcce62 added gotthard2 2020-08-20 16:49:55 +02:00
Erik Frojdh
a7cc2b38d8 temperature reading for eiger 2020-08-20 11:46:35 +02:00
Erik Frojdh
6e4b7f5bd7 fixed space in python enums 2020-08-03 11:10:01 +02:00