* 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>