Commit Graph

494 Commits

Author SHA1 Message Date
510666352f killprocess throws if no process found-> github runs fails, changed to pkill and not throw 2025-12-19 22:31:45 +01:00
4ca81dd973 starting server for tests per session and nor module 2025-12-19 22:04:04 +01:00
1b98c09efd removed make with registerAddress etc
All checks were successful
Build on RHEL9 / build (push) Successful in 3m19s
Build on RHEL8 / build (push) Successful in 5m4s
2025-12-19 17:17:21 +01:00
4f5e3aaa0c repr reimplemented for bit.cpp 2025-12-19 17:09:48 +01:00
71e129eaa9 replaceing str with __str__ for bit.cpp 2025-12-19 16:58:50 +01:00
0d14c26981 tests for python side 2025-12-19 16:51:51 +01:00
111985aaa3 some last changes 2025-12-19 16:51:42 +01:00
ee95b63893 some more changes for test 2025-12-19 15:23:12 +01:00
c2ea07c870 a few python tests added and python bindings corrected 2025-12-19 15:14:31 +01:00
431595880e updated python bindings 2025-12-18 13:33:55 +01:00
f80efe38fa updated python bindings 2025-12-18 13:16:59 +01:00
2bcec2ae31 wip, removing parsing from string inside the class RegisterAddress, BitAddress and RegisterValue 2025-12-18 13:14:50 +01:00
caa3b3087c Allowed concatenation with other RegisterValue, made them all constexpr 2025-12-15 15:47:33 +01:00
ea9508da9f Removing implicit conversions:
RegisterAddresss and RegisterValue: Removed the implicit conversions.
RegisterAddress: Changed member name from address_ to value_ and method as well to value().
RegisterValue: Also added | operator to be able to concatenate with uint32_t. Same in python bindings (but could not find the tests to modify
2025-12-15 15:19:27 +01:00
ea561e2422 got rid of setbitposition and setaddress, instead overloaded constructor to take in strings so that the conversion from string to bit address members, takes place within the class for easy maintainance in case type changes 2025-12-15 14:29:55 +01:00
5f287ea092 changed bitPosition from int to uint32_t 2025-12-15 13:41:56 +01:00
224f202e05 naming refactoring (getRegisterDefnition to retunr name and address specifically
All checks were successful
Build on RHEL9 / build (push) Successful in 3m21s
Build on RHEL8 / build (push) Successful in 4m34s
2025-12-13 02:26:07 +01:00
Erik Fröjdh
f150eed74b Using define reg/bit from python (#1344)
* define_bit, define_addr in python. 
* setBit/clearBit takes int or addr
2025-12-12 08:35:31 +01:00
654c16b52b changed BitPosition to BitAddress
All checks were successful
Build on RHEL9 / build (push) Successful in 3m44s
Build on RHEL8 / build (push) Successful in 5m17s
2025-12-11 13:04:13 +01:00
ecf1ec553d removed duplicates
Some checks failed
Build on RHEL8 / build (push) Failing after 1m14s
Build on RHEL9 / build (push) Successful in 3m52s
2025-12-08 15:18:27 +01:00
0ca667bd52 Merge branch 'developer' into dev/define_cmd
Some checks failed
Build on RHEL8 / build (push) Failing after 1m14s
Build on RHEL9 / build (push) Successful in 4m17s
2025-12-08 09:55:08 +01:00
b90851a855 clang-format 12 2025-11-26 14:15:04 +01:00
30e82e4740 removed tests for eiger 2025-11-26 13:51:38 +01:00
08486b9812 rx_roi also accepts sequence of 2 ints 2025-11-26 13:51:22 +01:00
50448cefb4 Code Review 2025-11-26 13:50:45 +01:00
cad44943c3 wrapped virtual detector setup in a test fixture 2025-11-26 12:24:07 +01:00
d4f8049623 added tests 2025-11-26 12:23:40 +01:00
925cd55b1c API also allows single sequence for single ROI 2025-11-26 12:23:22 +01:00
ec11ba5a54 added typecaster for slsdefs::ROI and added setter and getter for ROI 2025-11-26 12:23:04 +01:00
1ad2628311 added tests for python
Some checks failed
Build on RHEL8 / build (push) Failing after 1m18s
Build on RHEL9 / build (push) Failing after 3m30s
2025-11-20 12:22:43 +01:00
f4c1395319 python compiles
Some checks failed
Build on RHEL8 / build (push) Failing after 1m19s
Build on RHEL9 / build (push) Failing after 4m7s
2025-11-19 15:32:02 +01:00
f0bd9dd0b3 wip for pybindings
Some checks failed
Build on RHEL8 / build (push) Failing after 1m26s
Build on RHEL9 / build (push) Failing after 2m53s
2025-11-13 13:59:53 +01:00
161cd5508d Dev/define cmd tie bit to reg (#1328)
Some checks failed
Build on RHEL8 / build (push) Failing after 1m8s
Build on RHEL9 / build (push) Failing after 2m22s
* strong type wip

* moved everythign to bit_utils class

* wip, still on testing in ctb reg

* passed tests for define
2025-11-10 16:27:03 +01:00
Martin Mueller
e7a91d38f2 Pattern unification & Matterhorn Changes (#1303)
Some checks failed
Build on RHEL9 / build (push) Failing after 3m7s
Build on RHEL8 / build (push) Failing after 4m58s
* update ctb regDefs, included fill level of adc, transceiver and DBit fifos, added enable registers for cont. readout

* fix fifo fill level range bug

* updated ctb RegDefs, increased size of fifo fill level register

* added register to read the firmware git hash

* ctb: added altchip_id read register

* start with unification of pattern machinery for xctb, ctb, mythen

* udate addrs for d-server internal matterhorn startup

* update xctb reg defs

* move pattern loopdef start

* added zero trimbits to matterhorn config

* Revert "added zero trimbits to matterhorn config"

This reverts commit 7c347badd5.

* added adjustable clocks on Xilinx-CTB

* added support for fractional dividers of runclk

* XCTB: make frequencies adjustable from python gui

* update docs

* added support for patternstart command to XCTB

* XCTB: map pattern_ram directly into memory, removed rw strobe

* refactor Mythen pattern control addresses

* test altera ctb with common addresses, removed ifdefs

* change ordering of regdefs

* updated python help for dbitclk, adcclk and runclk (khz)

* xilinx: moved the wait for firmware to measure the actual frequency to the server side and removed it in the pyctbgui side

* will not be anymore in developer branch

* make format (exception RegisterDefs.h), rewrite XILINX PLL to have less consstants in the code

* bug: mixing && for &

---------

Co-authored-by: Martin Mueller <martin.mueller@psi.ch>
Co-authored-by: Dhanya Thattil <dhanya.thattil@psi.ch>
2025-09-17 17:28:17 +02:00
fff5fa73be Dev/verify shm (#1276)
Some checks failed
Build on RHEL9 / build (push) Failing after 3m41s
Build on RHEL8 / build (push) Failing after 5m10s
* removed verify, update, fixed getUser to be a free function, generated commands, python bindings yet to do

* python bindings

* fixed tests

* minor

* minor

* format
2025-08-23 10:23:27 +02:00
72056ff813 Dev/doc architecture commands (#1272)
Some checks failed
Build on RHEL9 / build (push) Failing after 4m6s
Build on RHEL8 / build (push) Failing after 5m13s
* wip for sw architecture

* wip:intro

* wip client wip

* documentation on architecutre is done. commands left

* wip. clientto module done

* almost done

* about 2nd port

* done

* review changes

* review fixes

* minor
2025-08-21 11:41:54 +02:00
d83e9385ed updated error message 2025-08-05 11:31:16 +02:00
956103bbd4 fixed imagesize ctb issue (out values not transferred, setting any dbit values was not recalculatign image size in generaldata) 2025-08-04 12:12:30 +02:00
c8fc7fd6c1 free shm exposed in python as free function and detector function 2025-07-29 11:57:02 +02:00
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
b1c6b4b078 pybind only 1 function for getRxROI 2025-07-03 11:42:24 +02:00
ba02094c4e updated python bindings 2025-06-30 14:43:17 +02:00
e4f329466c wip 2025-06-16 17:25:21 +02:00
68bd9fb4f7 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 2025-05-07 15:44:32 +02:00
Mazzoleni Alice Francesca
9fde62ae30 merged developer into feature and solved merge conflicts 2025-04-09 09:39:47 +02:00
Erik Fröjdh
5ab2c1693e Fixed broken import in typecaster.h (#1181)
Some checks failed
Native CMake Build / Configure and build using cmake (push) Failing after 28s
- 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 (!)
2025-04-03 12:00:57 +02:00
froejdh_e
d9a50ad9f4 WIP 2025-03-18 13:21:46 +01:00
froejdh_e
bc187bb198 moved compiled extension into slsdet 2025-03-18 10:56:03 +01:00
froejdh_e
eb8c34f53b skeleton pyproject.toml 2025-03-18 10:33:51 +01:00
Erik Fröjdh
3c2f149c22 Adding patterntools to slsdet (#1142)
* added patterntools from mythen3tools
* refactored do use implementation from slsSupportLib
2025-03-17 08:46:26 +01:00