* alignedData now uses std::align_alloc
* imagedata is now allocated on the heap
* m3 server fix for trimbits and badchannels that are shifted by 1
* formatting
* binary in
* added check for proper memory allocation
* commenting out the example in receiver data call back changing size as it affects users using debugging mode to print out headers
* fixed warnings
* commenting out the example in receiver data call back changing size as it affects users using debugging mode to print out headers
* got rid of cast to uint64
* got rid of Reorder function
* added sanity check to only enable for chipttestboard and xilinx
* removed Gotthard stuff
* update the comment about how to modify data on a data call back from the receiver
* autogenerated commands and make format
* changed font size in GUI
* clang-format with clang-format version 17
* updated update_image_size in xilinx
* version number automated for python build
* mistakenly set version back to 0.0.0
* updated github workflow scripts to support automatic version numbering with environment variable
* managed to load VERSION file in yaml file - simplifies things
* saving changes in git workflow failed
* got typo in github workflow
* updatet regex pattern to support postfix
* normalized version to PEP 440 specification in update_version.py
* bug did not support version 0.0.0
* upgrading to c++17 from c++11 and patch command has to be found before applying patch on libzmq (#1195)
* Dev/allow localhost for virtual tests (#1190)
* remove the check for localhost being used in rx_hostname for python test for simulators, run rx_arping test only if hostname is not 'localhost'
* fix tests for fpath: cannot set back to empty anymore (empty is default)
* default rx_hostname arg = localhost, and default settings path =../../settingsdir
* changed virtual tests script for better printout on exceptions
* fix for catching generaltests exceptions and exiting instead of continuing
* fix minor
* fixed shared memeory tests to include current env and fixed prints for errors
---------
Co-authored-by: Erik Fröjdh <erik.frojdh@gmail.com>
* added regex pattern matching to version in toml file
* Dev/gitea docker (#1194)
* gitea workflows for RH8 and RH9
* using our docker images
* version now supports . before postfix
* rough draft of test acquire of all detectors for frames caught and file size. ctb not included yet
* moved dbitoffset, dbitreorder and dbitlist to GeneralData
* added error message on receiver side, throw error
* removed log as error already printed
* added tests to check file size and frames caught with an acquire (virtual) for every detector
* minor printout removed
* typo fixed
* removed minor printout
* incorrect counter mask tested
* fix 10g adc enable mask, switched with 1g
* fixed hardcoded values of nchip nchan etc from detPArameters
* fixed ctb tests, need to fix in develoepr (if digital modfe not enabled, should not take into accoutn dbitlist or dbitoffset or dbitreorder
* only reorder bits if some sort of digital readout mode enabled
* trying to fix acquire for xilinx
* fix for xilinx ctb virtual
* alloweing all tests
* typo
* fix for slsreceiver killed but complaining for virtual tests with script
* fixed bug found by @AliceMazzoleni99 that for ctb server is still shown in pgrep -f if xilinx server running, so now the pid is killed and looking for any DetectorServer_virtual instead. also reset color coding after Log
* check if process running for kill -9 slsReceiver fail
* removed -9 to kill with cleanup
* frame synchonrizer fixes: typo of iterator for loop and zmg_msg_t list cleaned up before sending multi part zmq; test written for the frame synchronizer, test_simulator.py rewritten for more robustness and refactoring commonality between both scripts
* better error messageS
* minor
* typo
* moving the erasure of the fnum to after sending the zmg packets and also deleteing all old frames when end of acquisition
* fix bug in blackfin read access to firmware registers
* updates api version based on version file & converted shell script files to python
* updated all makefiles
* refactoring code and compiling binary
* formatting
* rewrote end() for StaticVector
* rearranged receiver topics, differentiated btween receiver variants and added info about slsFrameSynchronizer
* typo
* minor aesthetics
* minor
* added extra fs link and fixed execute_program warning
* and now with link
* updating pmods
* adresses review comments
* dummy commit for versionAPI
* formatted and updated versionAPI.h
* added expat to host section
* updated documentation for pip installation as well
* Dev/add numpy (#1227)
* added numpy dependency
* added build specifications for python version and platform
* updates files/variants for pmods for 9.2.0 (#1233)
* tests for bool in ToString/StringTo (#1230)
- Added tests for ToString/StringTo<bool>
- Added overload for ToString of bool (previously went through int)
* added docs for SLSDETNAME (#1228)
* added docs for SLSDETNAME
* clarification on hostname
* added examples on module index
* fixes
* fixed typo
* Dev/update test framesynchronizer (#1221)
* raise an exception if the pull socket python script had errors at startup (for eg if pyzmq was not installed)
* minor changes that got lost in the merge of automate_version_part 2 PR
---------
Co-authored-by: Erik Fröjdh <erik.frojdh@gmail.com>
* added workflow for python wheels
* wip
* formatting
* wip
* wip to parse vector of rois at command line
* wip
* first level test
* can get individual rois, but not connected to command yet
* rois shoudl work. left to implement tests for individual rois, create multiple datasets (1 for each roi) in the virutal data file. currently virutal dataset with roi is not implemented and a warning is given instead. wonder why since the inviduviaual roi files are clipped
* all tests pased
* minor
* fixed rx_roi for multi modules jungfrau , tests for eiger, multi modules jungfrau in x and 2 interfaces
* works for eiger as well
* switched to vector instead of std::array<ROI, 2>>, which prints extra [-1, -1] when theres only 1 udp interface
* wip
* fix for empty roi vectors (which shouldnt be) as you cant know if its all or not in roi
* wip: to map roi to virutal
* fix for eiger, added python test for testig roi in different module and detector type configurations
* wip, fails with master and virtual
* works for complete roi
* wip, works for a single roi
* works for all rois
* wip to fix tests
* 1d fixes
* rois test work on 1d as well
* check master file creation as well in rx_roi tests
* get rx_roi from metadata from rxr, cant reconstruct. fixed clear roi should give 1 roi min
* gui shows roi now
* format
* updated python bindings
* updated master file versions
* cmd generation and formatting
* minor fixes in command line and help
* minor
* doesnt happen anymore
* comment
* minor
* redundant getRxROI in Detector class for multi level and module level
* refactor cmd parsing (detid can be parsed directly)
* refactor cmd line
* refactor command line parsing of roi
* modified comments about ctb and xilinx not using roi
* refactoring
* refactorign
* refactoring wip
* wip refactoring
* formattin
* to avoid confusion, moved default initialized, single sized declared vector of roi to be created at setDetectorType
* pybind only 1 function for getRxROI
* command line help
* specified number of receiver error message
* minor comment
* refactored to take out repetitive code, need to adjust for slsMulti and slsFrameSync
* wip
* works, need to add tests
* made Commadnlineoptions into a class
* wip test
* fixed tests
* cleaning up properly , semaphore leaks, child process/thread throwing handled
* getuid issue on github workflow
* constexpr and checking if options object type is same
* unnecessary capture
* remove testing code, minor
* fixed help, -t for multi should not be supported as it never had it
* Formatting
* hdf5 definitions in test when not compiled with hdf5
* typo
* moved optstring and long options to the constructor
* raising a SIGINT when the child thread has an exception so that the parent thread can exit all the threads and clean up gracefully
* minor test typo
* check status of child exiting and use that to send sigint to all the child processes from the parent
* fixed validation in network_utils, added a tests to throw for port 65535 in test mode (option on for sls_use_tests), multi:parent process checks child process exit status to send sigint to others
* moving set signal handler to network utils
* 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
* doc: added inst on how to set persistentn NIC changes after reboot for each ethernet interface such as rx 4096, rx-usecs, adaptive-rx and gro etc.
* added permanent ethtool settings also for fedora or modern rhel
* troubleshooting doc: permanent changes for 10g pc tuning (#1247)
* doc: added inst on how to set persistentn NIC changes after reboot for each ethernet interface such as rx 4096, rx-usecs, adaptive-rx and gro etc.
* added permanent ethtool settings also for fedora or modern rhel
* ifcfg scripts still work on rhel8, just not preferred
* added dataformat for jungfrau
* eiger basic mod
* eiger doc done
* added moench
* done
* free shm exposed in python as free function and detector function
* minimum change
* added quad and updated about 1gbe/10gbe
* more info
* remove arguments info
* replacing commands with links
* minor
* detail explanation of eiger
* fixed imagesize ctb issue (out values not transferred, setting any dbit values was not recalculatign image size in generaldata)
* fixed ctb dbit clock changing period in tests as it was setting run clock instead
* python accessing freed shared memory object (#1253)
* added a 'isValid' member in shared memory (also updated shm version) with default true, any access to shared memory() checks also for validity. any free will set this to false and then unmap shm. Any access to shm will then check validity in python.
* fixed tests for shm
* added tests in python as well
---------
Co-authored-by: Alice <alice.mazzoleni@psi.ch>
* updated error message
* made markers argument in ParseArguments a boolean instead of an int
* removed relative path compared to where executable run in test script for settingsdir
* fix roi test
* updating versions (#1258)
* updating package version, client version, server versions. Renaming server versions, using hardlinks in serverBin. Removing ctb servers in serverBin. (#1259)
* fixed no interpolation mode for moench (#1262)
Co-authored-by: Anna Bergamaschi <anna.bergamaschi@psi.ch>
* fixed multi receiver and frames sync help throw of bad variant access (#1265)
* 1000/doc c standard (#1267)
* updated c++11 to c++17
* more about c++11 and updating readme
* updated documentation for receiver arguments and also making receiver constructor explicit
* minor fix for rxr err message
* fixed doc about gcc version
* 1000/release notes (#1269)
* updated firmware and server version in release notes
* release notes wip
* updated notes(prs done)
* updated release notes. wip
* Release notes
* minor
* minor fix
* 1000/doc architecture commands (#1271)
* sw architecture and setup commands
* 1000/shm free obsolete (#1273)
* freeing obsolete shm withoua a 'isValid' should access raw pointers. Need to move this all into the shm class
* fixed obsolete shm free issue
* minor
* ensuring the test works platform independent for size of int
* removed verify, update, fixed getUser to be a free function, generated commands, python bindings yet to do
* python bindings
* fixed tests
* minor
* minor
* format
* userdetails refinedg
* fixed caller test
* updated client api version (#1277)
* one doesnt need to open shared memory to call removesharedmemory, and calling hasMemoryvalid without opening will cause segfault (not used now, but could in the future)
* fix test on shm
* minor
* added image source files from draw.io to create the images (#1280)
* 1000/fix_actual_tests (#1282)
- fix acquire fail in tests (adcreg test)
- roi tests fail after overlapping invalid test and acquire after
- print udp dest mac in server properly
- fixed udp dst list get (server was not sending entry proper size to match proper struct size in client)
- updated server binaries and updated hard links in serverBin
- added documentation regarding gui: zmqport and zmqip in terms of gui, rx_zmqstream
- removed print - probably ended there for debuggung
---------
Co-authored-by: Alice <alice.mazzoleni@psi.ch>
* 1000/fix_m3_tests (#1286)
* testing clkdiv one must ensure the exptime delay etc all are reset to the exact values for tests
* change dac max values for vth values for m3 in client side (set module
* 1000/doc_cmake (#1289)
* more detail documentation in installation
* more detail documentation in installation
* added links to api examples
* reverted back that vthreshold dacs in m3 have min and max as 200 and 2400 (#1294)
* update release notes and date (#1298)
---------
Co-authored-by: Mazzoleni Alice Francesca <mazzol_a@pc17378.psi.ch>
Co-authored-by: Erik Fröjdh <erik.frojdh@gmail.com>
Co-authored-by: AliceMazzoleni99 <alice.mazzoleni@psi.ch>
Co-authored-by: Martin Mueller <martin.mueller@psi.ch>
Co-authored-by: froejdh_e <erik.frojdh@psi.ch>
Co-authored-by: Anna Bergamaschi <anna.bergamaschi@psi.ch>
* Python module is now built using scikit-build-core: Dev/scikitbuild #1164
* slsdet is available on PyPI from this release onwards
* Fixed broken import in typecaster.h #1181
* Dev/automate version number #1193
* Dev/automate version part2 #1209
* 9111: added expat to host section to fix conda #1216
* fix for gotthard.py to import slsdet properly
* added slsFramesynchronizer to conda copy_lib.sh
* version of release
* update version of client
* removed cmake <=3.28 that was added in 9.1.11 (main_library in meta.yaml in conda-recipes)
* added slsFrameSynchronizer binary to conda
* added numpy dependency to toml
* added documentation for pip in installation
Detailed Commits:
* skeleton pyproject.toml
* moved compiled extension into slsdet
* WIP
* WI{
* separated the recipes
* restored comments, cleanup
* cleaned meta yaml
* added back some python versions
* conda build of main library
* fixed typo
* removed conda build pin
* added zlib
* added workflow for python lib
* patching libzmq and cleaned up cmake
* removed compiler version
* switched patch tool
* reverted to scikit-build in pyproject.toml
* added sls_detector bin
* added sync, renamed action
* update cmake<=3.28 in conda build requirements
* Fixed broken import in typecaster.h (#1181)
- Fixed the broken import _slsdet --> slsdet._slsdet caused by a previous upgrade
- added tests that exercises the conversion from python to C++ and from C++ to python
- Python unit tests now run in CI (!)
* removed 3.28 restriction on cmake in meta.yaml
* from #1216 to 9.1.1.rc that got lost in merge from develoepr, added expat to host section to fix conda build
* back with the cmake restriction
* fixing gotthard1 import
* version number automated for python build
* mistakenly set version back to 0.0.0
* updated github workflow scripts to support automatic version numbering with environment variable
* managed to load VERSION file in yaml file - simplifies things
* saving changes in git workflow failed
* got typo in github workflow
* updatet regex pattern to support postfix
* normalized version to PEP 440 specification in update_version.py
* bug did not support version 0.0.0
* added regex pattern matching to version in toml file
* version now supports . before postfix
* updates api version based on version file & converted shell script files to python
* updated all makefiles
* adresses review comments
* updated release version and the api lib version
* raise an exception if the pull socket python script had errors at startup (for eg if pyzmq was not installed)
* cmake<=3.28 not required anymore
* updated documentation for pip installation as well
* 920/add numpy (#1226)
* added numpy dependency
* aded build specifications for python version and platform
* release notes
---------
Co-authored-by: froejdh_e <erik.frojdh@psi.ch>
Co-authored-by: Fröjd Lars Erik <froejdh_e@pcmoench03.psi.ch>
Co-authored-by: Erik Fröjdh <erik.frojdh@gmail.com>
Co-authored-by: mazzol_a <mazzol_a@pc17378.psi.ch>
Co-authored-by: AliceMazzoleni99 <alice.mazzoleni@psi.ch>
* 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
* reducing the number of data call backs. incoming from developer
* 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
* 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
* created a callback mutex to register the callbacks when using threads for different Receiver objects instead of child processes, remove the clean up of the frames (deleting from a signal is thread unsafe) from the siginterrupt handler, reading or setting terminate should also be inside the mutex, pass receiver object index so that only the first one cleans up the shared structure
---------
Co-authored-by: Felix Engelmann <felix-github@nlogn.org>
* when package used as subdirectory (cmake-subfolder-example) it fails when python is used because the cmake_source_dir is now the one above package.
* changed cmake_current_list_dir to cmake_current_source_dir
* removing the unnecessary VERSION file installed in the root directory (from PR #1020)
* bumped pybind11 version and added setuptools on host
* updated pybind11 tarball to 2.13 and in cmakefile to get 2.13 frpm github, also updated documentation about pybind 2.13
* updated client versioing, doc
* updating readme
---------
Co-authored-by: Dhanya Thattil <dhanya.thattil@psi.ch>
- renamed conda-recipe folder
- added a check to see if build and install folder exists in build.sh (conda recipe)
- created VERSION file that has '0.0.0'for developer but can be updated using update_version.py that takes in a version. The script checks for semantic versioning and updates VERSION file
- VERSION file also copied along with py files to slsdet in python cmakelist and build_pylib.sh (for conda), also copied in root folder for installations (for no coding purpose)
- init.py and setup.py reads this file to get the version (a bit differently to find the VERSION file)
- VERSION file read into cmake to get the version and also added to compile definition. So RELEASE removed from versionAPI.h (using SLS_DET_VERSION compile definiton instead) and also removed updateRelease script.
- conda getting project version from environment variable SLS_DET_VERSION that is set in build_pylib.sh prior.
- added 3.13 python to conda build
- anything related to ctb removed from release notes as users will always use developer
- sets 0.0.0 to VERSION file by running update_version.py without an argument
* added empty c extension
* added rotation to the decoding
* added color map, options and findex
* minor
* move checks to before acquisition
* added pixel map based decoder
* cleanup
* no thread creation for single thread processing
* added rotation and test to compare
* allow high and low water mark for zmq (also buffer size) for fast readouts
* removed roatation during decoding
* added Transpose to image and invert Y False to invert it
* retains the zoomed state after the first image of gui, catch and display exception if no detector connected
* moved start frame to dockable widget, removed extra frame number label, moved current measurement also to dockable widget, hide frame plot entirely when showing patternviewer
* first image dependin on which plot
* remember settings of main window size and position, dockewidget if docked, its size and posisiotn as well, then update it next time the gui is opened
* change in comment
* using c decoder for moench 04 and matterhorn
* catch exception from invalid image from decoder
* clean up
* update row and col when choosing image type, neeeded to show values
* fix for previous PR
* disable resetting colormap values
keep the range selected for every new acquisition
* fix typos + tested on virtual matterhorn
* minor print
* refactored Slow ADCs Tab
* refactored DAC tab
* refactored power supplies
* refactored signals tab
* refactored transceiver tab
* fix typo
* fix typo2
* remove commented code
* delete commented code
* delete commented code
* delete commented signals code
* remove commented code for transceiver tab
* refactor adc tab
* refactor Pattern Tab
* Refactor transceivers tab (PR#5) (#118)
* refactored transceiver tab
* remove commented code for transceiver tab
---------
Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
* refactor adc tab (PR#6) (#119)
* refactor adc tab
* refactored Plot and Acquisition Tabs
* fix the regression issue
* restructure project files
* applying singleton and renaming tabs to services
* working install using pip
* applies singleton to tab classes and remove CI erros
* added pyzmq and pillow
* remove the singleton implementation and keep changes
* fix merge errors in mainWindow
* moved misplaced init file
* rename service to tab
* reorganize imports
* iterate over tabs
* reorder tabs
* add slowadc to the list
* saving changes (buggy)
power supply ui not showing in the gui
* split power supply tab
* fixed tests
* add hardcoded values to defines file
* fix error
* separate power supply
* fix errors for powerSuppliesTab
* split dacs
* split slow adcs
* split signals tab
* added tests for bit_utils
* add slowAdc class to defines
* split transceiver ui file
* split adc.ui
* split pattern ui file
* split plot and acquisition ui file
* added basic test for parsing bit names
* removed redundant code in read_alias_file
* fix dacs ui position
* testing for correct exception
* cmd and args at split
* group radio buttons
* fix comments from PR#1
* show legend
* added python version and dev requirements to setup.py
* fix dac issue
* moved _decoder into pkg
* added inplace build
* removed clear
* fixed dependencies
* make tests run without slsdet
* updated name of action
* define colcount
* fixed loading of alias file
* add yapf and ruff
* apply formatting
* fix E and F rules
* add more ruff rules
* change variable name
* squashing gh debugging commits and add pre-commit
* update label values to mv units
* add hook for yapf
* reconfigure yapf precommit hook
* add format and check_format to makefile
* change gh actions
* update readme
* added check_format
* WIP
* added linting in github action
* updated readme]
* add more control for color choice
* remove useless file
* fix un-updated line after refactoring Defines
BIT0_31_MASK is not found in Defines.signals
* visually improve the interface
* fix last commit
* add only selected plots for legend
* add hide legend button
* change hide legend to show legend
checkbox show legend is checked by default
* add support for saving in numpy
* solve conversations
* fix acq index offset
* fix browse button in pattern error
* fix other browse button errors
* finish tests and add usage.md
* remove buffer
* add file,numpy-like interface and tests
* remove useless .npy files
* subscriptible npz files
* remove useless files
* remove repetetive tests
* save changes
* add mode r+, add with support,remove logging
* remove offset of acqIndex between raw and numpy saving
* fix only saving last frame
* save signals of multiple devices
* add comments and move condition for clearer code
* fix bug when vieweing pattern file
* iterate over enabled and plotted plots
* add padestal substraction to transceiver and analog data
* init pedestal frames to detector.frames
* restore old exception
* add pedestal substraction for digital signals
* remove frames spinbox from plotTab
* remove comments and use str instead of Path
* avoid saving all frames
* correct exception and log error's trace
* add gui tests
* add waveform test
* add pedestal test
* refactor by using fixtures
* add tests for moench analog and pattern
* add pytest-qt to dependencies
* add save and load gui parameters
* remove nohup file
* fix old bug IndexError
* save plot type
* a
* handle canceling load, loading matterhorn pedestal for moench
* remove comparing .png files for pattern test
* save plot type
* red error on status bar when shape mismatch for loaded pedestal
* fix makefile and docstrings
* fix PRs conversation
* move code into different function
* fix wrong function names for power supply
* removed old ctbgui
* removed unnecessary files
---------
Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
Co-authored-by: Braham Bechir <braham_b@pc11979.psi.ch>
Co-authored-by: Bechir <bechir.braham@psi.ch>
Co-authored-by: Bechir <bechir.brahem420@gmail.com>
* period and exptime(patternwaittime level 0)
* added new regsieterdefs and updated api version and fixedpattern reg
* autogenerate commands
* formatting
* minor
* wip resetflow, readout mode, transceiver mask, transceiver enable
* acquisition, but streaming done bit and busy (exposing + read chip to fifo) not known yet from fw
* programming fpga and device tree done
* most configuration done, need to connect configuretransceiver to client
* stuck at resetting transciever timed out
* minor
* fixed virtual, added chip busyto fifo, streaming busy, set/getnext framenumber
* configuretransceiver from client, added help in client
* make formatt and command generation
* tests for xilinx ctb works
* command generation
* dacs added and tested, power not done
* power added
* added temp_fpga
* binaries in
* ctrlreg is 0 to enable chip=fixed, high dac val = min val= fixed, power regulators in weird order=fixed, device tree could be loaded with dacs before adcs=fixed
* start works
* virtual server sends
* receiver works
* tests
* python function and enum generation, commands generatorn and autocomplete, formatting, tests
* tests fail at start(transceiver not aligned)
* tests passed
* all binaries compiled
* eiger binary in
* added --nomodule cehck for xilinx
* commands code generation (#803)
* commands code generation for only frames command
* fix cmake file and add Caller files
* working exptime, fully extended commands file and its variants
* start adding template commands
* add INT_CMD_VEC_ID template
* add list command, generate multiple bins, format code
* reach 208 commands using the cpp macros
* add tests for command parser
* start adding tests for commands parser
* fix typo to use commands.yaml
* add more tests for command_parser
* add all template functions (up to 218 commands)
* finish template functions and add more CmdProxy.cpp functions (250+)
* 257 commands
* 300 commands the rest are very special commands
* add special commands without generation
* separate special functions from generated c++ file
* implementing one command for put and get (buggy)
* add infer action in a separate file
* generate header for special commands from yaml
* allow only 0 or 1 for bool inputs
* group all commands in gen_commands.py
* add help to gen_commands.py
* add autocomplete bash script
* autocompletion: add support for module levels and help
* remove debugging line
* add autocompletion, help to commands, change int [0,1] to bool
* copy tests for Caller.cpp. Tests pass
* update with the new developer branch changes
* fix errors after merging (there is problems with tests)
* fixed port/stopport in yaml (intput typo), added '_caller' to the test dac and test on chip dac command in global test for cmdcaller
* undo previous test simulator debug change
* add documentation for the generated code
* reducing the comment to be replaced in length so formatting does not split into 2 lines
* removed formatting specific style of C++11 in gen_commands.py to keep with the top level clang format of the project
* regeneratign code for commands
* automation generated
* Redirect deprecated commands (#872)
* working implementation, need to fix dac
* fixed deprecation redirect for dac command
* Detector specific autocomplete (#873)
* working implementation, need to fix dac
* fixed deprecation redirect for dac command
* detector specific completion for dac
* added autocomplete using detector specific
* fixed error when autocompleting partial words
* Generate commands/fix commands (#875)
* fix vm_a, im_a etc have deg Celsius suffix, also help missing or changed in some places
* dac: require det id for all, arg0 to be printed at output, help for onchip dac and dac, onchipdac: spacing
* getscan detid and blocking trigger help
* udp_Dstlist det_id fixed, but rx_id invalid
* cmdApp in line with cmdLineApp (missing version, receiver_id, not creating det object in help action
* added set_command to differentiate between check_det_id and require_det_id (mixed up), args: -1 needs to check for at least one argument
* reordering
* reordering and checked till integer_command_hex
* fixed a lot more commands
* fix caller tests for eiger
* changes to tests after Bechir left
* changing .cmd to .cmdcall for the caller commands
* fixed tests for caller, still warning for setexptime about cast input
* autocomplete ran
* add moench test
* regenerating autocomplete and commands
* fixing other things from merge conflicts (renaming slsDetectorDefs to defs in commands.yaml)
* formatting
* added code injection to help (#876)
* updated 3 commands to have get output that can be put into put (#877)
* updated some commands to have get output that can be put into put
* fix tests for clkdiv
* adding help to free (#878)
* removing old commands and renaming them, (also making it work for parameters command as it was still calling cmdproxy) (#879)
* More helpful error messages for unsupported actions (#880)
* removing old commands and renaming them, (also making it work for parameters command as it was still calling cmdproxy)
* Added specific help for unsupported actions
* fixed a vetofile get special exception message. more specific warning for special exception message instead of no function warning
* added condition checking true in exceptions for special message
---------
Co-authored-by: Bechir Brahem <bachbrahem@gmail.com>
Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
Co-authored-by: Dhanya Thattil <dhanya.thattil@psi.ch>
* using fetchcontent to get zmq
* local copy of libzmq
* added guard for policy setting
* removed the need to export by using build interface
* moved pybind11 to FetchContent
* removed zmq hint from cmk script
* Fixed comments
---------
authored-by: froejdh_e <erik.frojdh@psi.ch>
* using fetchcontent to get zmq
* local copy of libzmq
* added guard for policy setting
* removed the need to export by using build interface
* removed zmq hint from cmk script
---------
Co-authored-by: Dhanya Thattil <dhanya.thattil@psi.ch>
Co-authored-by: froejdh_e <erik.frojdh@psi.ch>
- qt4->qt5
- in built qt5 6.1.5 because rhel7 is not upto date with qt5, removed findqwt.cmake
- made a fix in qwt lib (qwt_plot_layout.h) to work with 5.15 and lower versions for qrect constr.
- qt5 forms fixed, qt4 many hard coding forms switched to forms including qtabwidget, scrolls etc, fonts moved to forms
- docking option enabled by default, removed option to disable docking feature from "Mode"
- added qVersionResolve utility functions to handle compatibility before and after qt5.12
- qtplots (ian's code) takes in gain mode enable to set some settings within the class, with proper gain plot ticks
- ensure gain plots have no zooming of z axis in 2d and y axis in 1d
- removed placeholder text in qpalette in main window form as its not supportd until 5.12 (so using qt5.9 designer insted of qt5.15 to cope)
- tab order
Servers:
- fixed some error messages that were empty for fail in funcs (mostly minor as if this error, major issues)
Use already installed version of the slsDetectorPackage. Assumes that the library has already been built and installed either on a system wide location or pointed to by CMAKE_PREFIX_PATH
* removed Makefile for moench and integrated the build in CMake
* broke out tiff reading and writing to its own library
* moved tiff includes to include/sls
* moved tiffio source to src
* removed incorrectly used bps
* cleanup and tests for tiffio
* removed using namespace std from header
* some fixing for moench04
* Program for offline processing renamed
Co-authored-by: Anna Bergamaschi <anna.bergamaschi@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>