Merge branch 'developer' into jf_h5reader

This commit is contained in:
2024-12-02 15:06:48 +01:00
21 changed files with 173 additions and 168 deletions

View File

@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.14)
project(slsDetectorPackage) project(slsDetectorPackage)
# Read VERSION file into project version # Read VERSION file into project version
set(VERSION_FILE "${CMAKE_SOURCE_DIR}/VERSION") set(VERSION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/VERSION")
file(READ "${VERSION_FILE}" VERSION_CONTENT) file(READ "${VERSION_FILE}" VERSION_CONTENT)
string(STRIP "${VERSION_CONTENT}" PROJECT_VERSION_STRING) string(STRIP "${VERSION_CONTENT}" PROJECT_VERSION_STRING)
set(PROJECT_VERSION ${PROJECT_VERSION_STRING}) set(PROJECT_VERSION ${PROJECT_VERSION_STRING})
@ -304,19 +304,20 @@ if (SLS_USE_INTEGRATION_TESTS)
endif (SLS_USE_INTEGRATION_TESTS) endif (SLS_USE_INTEGRATION_TESTS)
if (SLS_USE_PYTHON) if (SLS_USE_PYTHON)
find_package (Python 3.6 COMPONENTS Interpreter Development) find_package (Python 3.8 COMPONENTS Interpreter Development)
if(SLS_FETCH_PYBIND11_FROM_GITHUB) if(SLS_FETCH_PYBIND11_FROM_GITHUB)
FetchContent_Declare( FetchContent_Declare(
pybind11 pybind11
GIT_REPOSITORY https://github.com/pybind/pybind11 GIT_REPOSITORY https://github.com/pybind/pybind11
GIT_TAG v2.11.0 GIT_TAG v2.13.6
) )
else() else()
# https://github.com/pybind/pybind11/releases
FetchContent_Declare( FetchContent_Declare(
pybind11 pybind11
URL ${CMAKE_SOURCE_DIR}/libs/pybind11/v2.11.0.tar.gz URL ${CMAKE_CURRENT_SOURCE_DIR}/libs/pybind11/v2.13.6.tar.gz
URL_HASH MD5=90c4946e87c64d8d8fc0ae4edf35d780 URL_HASH MD5=a04dead9c83edae6d84e2e343da7feeb
) )
endif() endif()
FetchContent_MakeAvailable(pybind11) FetchContent_MakeAvailable(pybind11)
@ -354,6 +355,4 @@ if(SLS_MASTER_PROJECT)
set(CMAKE_INSTALL_DIR "share/cmake/${PROJECT_NAME}") set(CMAKE_INSTALL_DIR "share/cmake/${PROJECT_NAME}")
set(PROJECT_LIBRARIES slsSupportShared slsDetectorShared slsReceiverShared) set(PROJECT_LIBRARIES slsSupportShared slsDetectorShared slsReceiverShared)
include(cmake/package_config.cmake) include(cmake/package_config.cmake)
endif() endif()
install(FILES ${CMAKE_SOURCE_DIR}/VERSION DESTINATION ${CMAKE_INSTALL_PREFIX})

124
README.md
View File

@ -2,7 +2,11 @@
Before building from source make sure that you have the [software wiki](https://slsdetectorgroup.github.io/devdoc/dependencies.html) installed. If installing using conda, conda will manage the dependencies. Avoid also installing packages with pip. Before building from source make sure that you have the [software wiki](https://slsdetectorgroup.github.io/devdoc/dependencies.html) installed. If installing using conda, conda will manage the dependencies. Avoid also installing packages with pip.
## Documentaion ## Documentaion
Detailed documentation can be found in the [software wiki](https://slsdetectorgroup.github.io/devdoc/index.html) and on the [official site](https://www.psi.ch/en/detectors/software). Detailed documentation including installation can be found in the [software wiki](https://slsdetectorgroup.github.io/devdoc/index.html).
Different releases can be found on the [official site](https://www.psi.ch/en/lxn/software-releases).
Firmware compatiblity can be found in [firmware page](https://github.com/slsdetectorgroup/slsDetectorFirmware)
## Installation ## Installation
@ -42,33 +46,20 @@ conda search slsdet
conda search slsdetgui conda search slsdetgui
``` ```
### 2. Build from source ## 2. Build from source
##### 2.1 Download Source Code from github ### 2.1 Download Source Code from github
``` ```
git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git --branch 7.0.0 git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git --branch 7.0.0
``` ```
**Pybind for Python**<br> > **Note:** For v6.x.x of slsDetectorPackage and older, refer [pybind11 notes on cloning](#Pybind-and-Zeromq).
* **v7.0.0+**:
pybind11 packaged into 'libs/pybind'. No longer a submodule. No need for "recursive" or "submodule update".
* **Older versions**:
pybind11 is a submodule. Must be cloned using "recursive" and updated when switching between versions using the following commands.
```
# clone using recursive to get pybind11 submodule
git clone --recursive https://github.com/slsdetectorgroup/slsDetectorPackage.git
# update submodule when switching between releases
cd slsDetectorPackage
git submodule update --init
```
##### 2.2 Build from source
###### Build using CMake ### 2.2 Build from source
### Build using CMake
``` ```
# outside slsDetecorPackage folder # outside slsDetecorPackage folder
@ -94,26 +85,28 @@ Instead of the cmake command, one can use ccmake to get a list of options to con
ccmake .. ccmake ..
# choose the options # choose the options
# first press [c] - configure # first press [c] - configure (unil you see [g])
# then press [g] - generate # then press [g] - generate
``` ```
|Example cmake options|Comment| |Example cmake options|Comment|
|---|---| |---|---|
| -DSLS_USE_PYTHON=ON | Python | | -DSLS_USE_PYTHON=ON | Python |
| -DPython_FIND_VIRTUALENV=ONLY | Python from only the conda environment | | -DPython_FIND_VIRTUALENV=ONLY | Python from only the conda env |
| -DZeroMQ_HINT=/usr/lib64 | Use system zmq instead |
| -DSLS_USE_GUI=ON | GUI | | -DSLS_USE_GUI=ON | GUI |
| -DSLS_USE_HDF5=ON | HDF5 |
| -DSLS_USE_SIMULATOR=ON | Simulator |
> **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for cmake option to hint library location](#Pybind-and-Zeromq).
###### Build using in-built cmk.sh script ### Build using in-built cmk.sh script
``` ```
The binaries are generated in slsDetectorPackage/build/bin directory. The binaries are generated in slsDetectorPackage/build/bin directory.
Usage: ./cmk.sh [-b] [-c] [-d <HDF5 directory>] [e] [g] [-h] [i] [-j <Number of threads>] Usage: $0 [-b] [-c] [-d <HDF5 directory>] [-e] [-g] [-h] [-i]
[-k <CMake command>] [-l <Install directory>] [m] [n] [-p] [-q <Zmq hint directory>] [-j <Number of threads>] [-k <CMake command>] [-l <Install directory>]
[r] [s] [t] [u] [z] [-m] [-n] [-p] [-r] [-s] [-t] [-u] [-z]
-[no option]: only make -[no option]: only make
-b: Builds/Rebuilds CMake files normal mode -b: Builds/Rebuilds CMake files normal mode
-c: Clean -c: Clean
@ -128,14 +121,13 @@ Usage: ./cmk.sh [-b] [-c] [-d <HDF5 directory>] [e] [g] [-h] [i] [-j <Number of
-m: Manuals -m: Manuals
-n: Manuals without compiling doxygen (only rst) -n: Manuals without compiling doxygen (only rst)
-p: Builds/Rebuilds Python API -p: Builds/Rebuilds Python API
-q: Zmq hint directory
-r: Build/Rebuilds only receiver -r: Build/Rebuilds only receiver
-s: Simulator -s: Simulator
-t: Build/Rebuilds only text client -t: Build/Rebuilds only text client
-u: Chip Test Gui -u: Chip Test Gui
-z: Moench zmq processor -z: Moench zmq processor
# display all options # display all options
./cmk.sh -? ./cmk.sh -?
@ -145,11 +137,14 @@ Usage: ./cmk.sh [-b] [-c] [-d <HDF5 directory>] [e] [g] [-h] [i] [-j <Number of
# new build, python and compile in parallel: # new build, python and compile in parallel:
./cmk.sh -cbpj5 ./cmk.sh -cbpj5
#To use the system zmq (/usr/lib64) instead #For rebuilding only certain sections
./cmk.sh -cbj5 -q /usr/lib64 ./cmk.sh -tg #only text client and gui
./cmk.sh -r #only receiver
``` ```
###### Build on old distributions > **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for cmk script option to hint library location](#Pybind-and-Zeromq).
### Build on old distributions
If your linux distribution doesn't come with a C++11 compiler (gcc>4.8) then If your linux distribution doesn't come with a C++11 compiler (gcc>4.8) then
it's possible to install a newer gcc using conda and build the slsDetectorPackage it's possible to install a newer gcc using conda and build the slsDetectorPackage
@ -166,7 +161,10 @@ cmake ../slsDetectorPackage -DCMAKE_PREFIX_PATH=$CONDA_PREFIX
make -j12 make -j12
``` ```
###### Build slsDetectorGui (Qt5) > **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for dependencies for conda](#Pybind-and-Zeromq).
### Build slsDetectorGui (Qt5)
1. Using pre-built binary on conda 1. Using pre-built binary on conda
``` ```
@ -180,7 +178,14 @@ yum install qt5-qtbase-devel.x86_64
yum install qt5-qtsvg-devel.x86_64 yum install qt5-qtsvg-devel.x86_64
``` ```
3. Using conda 3. Using system installation on RHEL8
```
yum install qt5-qtbase-devel.x86_64
yum install qt5-qtsvg-devel.x86_64
yum install expat-devel.x86_64
```
4. Using conda
``` ```
#Add channels for dependencies and our library #Add channels for dependencies and our library
conda config --add channels conda-forge conda config --add channels conda-forge
@ -208,13 +213,15 @@ cd slsDetectorPackage
./cmk.sh -cbgj9 ./cmk.sh -cbgj9
``` ```
###### Build documentation from package > **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for dependencies for conda](#Pybind-and-Zeromq).
### Build documentation from package
The documentation for the slsDetectorPackage is build using a combination The documentation for the slsDetectorPackage is build using a combination
of Doxygen, Sphinx and Breathe. The easiest way to install the dependencies of Doxygen, Sphinx and Breathe. The easiest way to install the dependencies
is to use conda is to use conda
``` ```
conda create -n myenv python sphinx_rtd_theme breathe conda create -n myenv python=3.12 sphinx sphinx_rtd_theme breathe doxygen numpy
``` ```
``` ```
@ -228,6 +235,47 @@ make rst # rst only, saves time in case the API did not change
``` ```
## Pybind and Zeromq
### Pybind11 for Python
**v8.0.0+**:
pybind11 is built
* by default from tar file in repo (libs/pybind/v2.1x.0.tar.gz)
* or use advanced option SLS_FETCH_PYBIND11_FROM_GITHUB [link].
* v9.0.0+: pybind11 (v2.13.6)
* v8.x.x : pybind11 (v2.11.0)
**v7.x.x**:
pybind11 packaged into libs/pybind. No longer a submodule. No need for “recursive” or “submodule update”.
**Older versions**:
pybind11 is a submodule. Must be cloned using “recursive” and updated when switching between versions using the following commands.
```
# Note: Only for v6.x.x versions and older
# clone using recursive to get pybind11 submodule
git clone --recursive https://github.com/slsdetectorgroup/slsDetectorPackage.git
# update submodule when switching between releases
cd slsDetectorPackage
git submodule update --init
```
### Zeromq
**v8.0.0+**:
zeromq (v4.3.4) is built
* by default from tar file in repo (libs/libzmq/libzmq-4.3.4.tar.gz)
* or use advanced option SLS_FETCH_ZMQ_FROM_GITHUB [link].
**v7.x.x and older**:
zeromq-devel must be installed and one can hint its location using
* cmake option:-DZeroMQ_HINT=/usr/lib64 or
* option -q in cmk.sh script: : ./cmk.sh -cbj5 -q /usr/lib64
* zeromq dependency added when installing using conda
## Support ## Support
dhanya.thattil@psi.ch dhanya.thattil@psi.ch
erik.frojdh@psi.ch erik.frojdh@psi.ch

View File

@ -8,7 +8,4 @@ cd python
# copy VERSION into slsdet for installation # copy VERSION into slsdet for installation
cp ../VERSION slsdet/VERSION cp ../VERSION slsdet/VERSION
# to be used to get project version in meta.yaml
export SLS_DET_VERSION=$(cat python/slsdet/VERSION)
${PYTHON} setup.py install ${PYTHON} setup.py install

View File

@ -1,10 +1,6 @@
{% set version = environ.get('SLS_DET_VERSION', '0.0.0') %}
package: package:
name: sls_detector_software name: sls_detector_software
version: "{{ version }}" version: {{ environ.get('GIT_DESCRIBE_TAG', '') }}
source: source:
@ -79,12 +75,13 @@ outputs:
- {{compiler('cxx')}} - {{compiler('cxx')}}
- {{ pin_subpackage('slsdetlib', exact=True) }} - {{ pin_subpackage('slsdetlib', exact=True) }}
- setuptools - setuptools
- pybind11=2.11 - pybind11=2.13
host: host:
- python - python
- {{ pin_subpackage('slsdetlib', exact=True) }} - {{ pin_subpackage('slsdetlib', exact=True) }}
- pybind11=2.11 - setuptools
- pybind11=2.13
run: run:

View File

@ -64,7 +64,6 @@ set(SPHINX_SOURCE_FILES
src/binaryfileformat.rst src/binaryfileformat.rst
src/hdf5fileformat.rst src/hdf5fileformat.rst
src/zmqjsonheaderformat.rst src/zmqjsonheaderformat.rst
src/ctbframeformat.rst
) )
foreach(filename ${SPHINX_SOURCE_FILES}) foreach(filename ${SPHINX_SOURCE_FILES})

View File

@ -1,81 +0,0 @@
Chip Test Board Frame Format
================================
Contents of a frame
--------------------
Each frame consists of 3 types of data in the following order:
.. code-block:: text
# only data from enabled modes are included
[ Analog Data ]
[ Digital Data ]
[ Transceiver Data ]
Each Data type is further divided into:
.. code-block:: text
[ Sample 0 for all enabled Channels ]
[ Sample 1 for all enabled Channels ]
...
[ Sample N for all enabled Channels ]
Digital data
-------------------
The chip test board sends out all digital data.
Only the receiver can filter them using the command `rx_dbitlist <commandline.html#term-rx_dbitlist-all-or-i0-i1-i2-...>`_.
.. code-block:: text
# filtered and reordered digital data from receiver
# Any signal that is not a byte is filled with 0's to make up a byte
[all samples of list signal 0]
[all samples of list signal 1]
...
[all samples of list signal N]
Parameters of readout modes
---------------------------------
.. list-table::
:widths: 25 40 20 30
:header-rows: 1
* - Readout mode
- Enable Channels
- Number of samples
- Number of bytes
* - Analog
- 1G: `adcenable <commandline.htmlterm-adcenable-bitmask>`_
10G: `adcenable10g <commandline.htmlterm-adcenable10g-bitmask>`_
- `asamples <commandline.html#term-asamples-n_samples>`_
- 2 bytes per channel,
max 32 channels
* - Digital
- `rx_dbitlist <commandline.html#term-rx_dbitlist-all-or-i0-i1-i2-...>`_
[filtered only by receiver, module sends out all digital data]
- `dsamples <commandline.html#term-dsamples-n_value>`_
- 1 bit per signal,
max 64 signals
* - Transceiver
- `transceiverenable <commandline.html#term-transceiverenable-bitmask>`_
- `tsamples <commandline.html#term-tsamples-n_value>`_
- 8 bytes per channel,
max 4 channels

View File

@ -20,8 +20,8 @@ the shared libraries these are needed:
Python bindings Python bindings
----------------------- -----------------------
* Python > 3.6 * Python >= 3.8
* pybind11 2.11.0 (packaged in libs) * pybind11 2.13.6 (packaged in libs)
.. note :: .. note ::

View File

@ -12,7 +12,7 @@ Welcome to slsDetectorPackage's documentation!
For further documentation, visit the official page: https://www.psi.ch/en/detectors/documentation For further documentation, visit the official page: https://www.psi.ch/en/detectors/documentation
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 3
:caption: Installation: :caption: Installation:
installation installation
@ -88,7 +88,6 @@ Welcome to slsDetectorPackage's documentation!
fileformat fileformat
slsreceiverheaderformat slsreceiverheaderformat
ctbframeformat
masterfileattributes masterfileattributes
binaryfileformat binaryfileformat
hdf5fileformat hdf5fileformat

View File

@ -1,9 +1,4 @@
.. warning ::
Before building from source make sure that you have the
:doc:`dependencies <../dependencies>` installed. If installing using conda, conda will
manage the dependencies. Avoid also installing packages with pip.
.. _Installation: .. _Installation:
@ -11,8 +6,18 @@
Installation Installation
=============== ===============
One can either install pre-built binaries using conda or build from source.
.. warning ::
Before building from source make sure that you have the
:doc:`dependencies <../dependencies>` installed. If installing using conda, conda will
manage the dependencies. Avoid also installing packages with pip.
Install binaries using conda Install binaries using conda
------------------------------- ----------------------------------
Conda is not only useful to manage python environments but can also Conda is not only useful to manage python environments but can also
be used as a user space package manager. Dates in the tag (for eg. 2020.07.23.dev0) be used as a user space package manager. Dates in the tag (for eg. 2020.07.23.dev0)
@ -55,7 +60,7 @@ We have three different packages available:
Build from source Build from source
------------------- ----------------------
1. Download Source Code from github 1. Download Source Code from github
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -75,8 +80,10 @@ Build from source
2. Build from Source 2. Build from Source
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
One can either build using cmake or use the in-built cmk.sh script.
Build using CMake Build using CMake
^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: bash .. code-block:: bash
@ -103,7 +110,7 @@ Instead of the cmake command, one can use ccmake to get a list of options to con
ccmake .. ccmake ..
# choose the options # choose the options
# first press [c] - configure (maybe multiple times till you see [g]) # first press [c] - configure (until you see [g])
# then press [g] - generate # then press [g] - generate
@ -123,7 +130,7 @@ Example cmake options Comment
Build using in-built cmk.sh script Build using in-built cmk.sh script
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: bash .. code-block:: bash
@ -173,7 +180,7 @@ Build using in-built cmk.sh script
Build on old distributions Build on old distributions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If your linux distribution doesn't come with a C++11 compiler (gcc>4.8) then If your linux distribution doesn't come with a C++11 compiler (gcc>4.8) then
it's possible to install a newer gcc using conda and build the slsDetectorPackage it's possible to install a newer gcc using conda and build the slsDetectorPackage
@ -198,7 +205,7 @@ using this compiler
Build slsDetectorGui (Qt5) Build slsDetectorGui (Qt5)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1. Using pre-built binary on conda 1. Using pre-built binary on conda
@ -259,7 +266,7 @@ Build slsDetectorGui (Qt5)
Build this documentation Build this documentation
^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The documentation for the slsDetectorPackage is build using a combination The documentation for the slsDetectorPackage is build using a combination
of Doxygen, Sphinx and Breathe. The easiest way to install the dependencies of Doxygen, Sphinx and Breathe. The easiest way to install the dependencies
@ -282,16 +289,18 @@ is to use conda
Pybind and Zeromq Pybind and Zeromq
^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. _pybind for different slsDetectorPackage versions: .. _pybind for different slsDetectorPackage versions:
| **Pybind for Python** | **Pybind11 for Python**
| v8.0.0+: | v8.0.0+:
| pybind11 (v2.11.0) is built | pybind11 is built
| * by default from tar file in repo (libs/pybind/v2.11.0.tar.gz) | * by default from tar file in repo (libs/pybind/v2.1x.0.tar.gz)
| * or use advanced option SLS_FETCH_PYBIND11_FROM_GITHUB [`link <https://github.com/pybind/pybind11>`__]. | * or use advanced option SLS_FETCH_PYBIND11_FROM_GITHUB [`link <https://github.com/pybind/pybind11>`__].
| * v9.0.0+: pybind11 (v2.13.6)
| * v8.x.x : pybind11 (v2.11.0)
| |
| v7.x.x: | v7.x.x:
| pybind11 packaged into 'libs/pybind'. No longer a submodule. No need for "recursive" or "submodule update". | pybind11 packaged into 'libs/pybind'. No longer a submodule. No need for "recursive" or "submodule update".

View File

@ -6,7 +6,7 @@ Getting Started
Which Python? Which Python?
-------------------- --------------------
We require at least Python 3.6 and strongly recommended that you don't use the system We require at least Python 3.8 and strongly recommended that you don't use the system
Python installation. The examples in this documentation uses `conda Python installation. The examples in this documentation uses `conda
<https://docs.conda.io/en/latest/miniconda.html>`_ since it provides good support <https://docs.conda.io/en/latest/miniconda.html>`_ since it provides good support
also for non Python packages but there are also other alternatives like, pyenv. also for non Python packages but there are also other alternatives like, pyenv.

View File

@ -394,6 +394,14 @@ Missing first frame or next frame after a delay
Connect the data link from the Module directly to receiver pc or to a private network. Connect the data link from the Module directly to receiver pc or to a private network.
Mythen3
--------
Detector status is waiting even in auto timing mode
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Check if the control board or the flat band cable is connected properly. If not, connect them properly and try again.
Jungfrau Jungfrau
--------- ---------

Binary file not shown.

Binary file not shown.

View File

@ -11,4 +11,6 @@ slsDetectorPackage/8.0.1_rh7 stable cmake/3.15.5 Qt/5.12.10
slsDetectorPackage/8.0.1_rh8 stable cmake/3.15.5 Qt/5.12.10 slsDetectorPackage/8.0.1_rh8 stable cmake/3.15.5 Qt/5.12.10
slsDetectorPackage/8.0.2_rh7 stable cmake/3.15.5 Qt/5.12.10 slsDetectorPackage/8.0.2_rh7 stable cmake/3.15.5 Qt/5.12.10
slsDetectorPackage/8.0.2_rh8 stable cmake/3.15.5 Qt/5.12.10 slsDetectorPackage/8.0.2_rh8 stable cmake/3.15.5 Qt/5.12.10
slsDetectorPackage/9.0.0_rh8 stable cmake/3.15.5 Qt/5.12.10

View File

@ -64,7 +64,7 @@ configure_file( scripts/test_virtual.py
${CMAKE_BINARY_DIR}/test_virtual.py ${CMAKE_BINARY_DIR}/test_virtual.py
) )
configure_file( ${CMAKE_SOURCE_DIR}/VERSION configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/../VERSION
${CMAKE_BINARY_DIR}/bin/slsdet/VERSION ${CMAKE_BINARY_DIR}/bin/slsdet/VERSION
) )

View File

@ -1505,6 +1505,7 @@ fi
if [[ ${IS_GET} -eq 0 ]]; then if [[ ${IS_GET} -eq 0 ]]; then
if [[ "${cword}" == "2" ]]; then if [[ "${cword}" == "2" ]]; then
FCN_RETURN="" FCN_RETURN=""
IS_PATH=1
fi fi
fi fi
return 0 return 0
@ -1514,6 +1515,7 @@ FCN_RETURN=""
if [[ ${IS_GET} -eq 1 ]]; then if [[ ${IS_GET} -eq 1 ]]; then
if [[ "${cword}" == "2" ]]; then if [[ "${cword}" == "2" ]]; then
FCN_RETURN="" FCN_RETURN=""
IS_PATH=1
fi fi
fi fi
return 0 return 0

View File

@ -1429,6 +1429,7 @@ fi
if [[ ${IS_GET} -eq 0 ]]; then if [[ ${IS_GET} -eq 0 ]]; then
if [[ "${cword}" == "2" ]]; then if [[ "${cword}" == "2" ]]; then
FCN_RETURN="" FCN_RETURN=""
IS_PATH=1
fi fi
fi fi
return 0 return 0
@ -1438,6 +1439,7 @@ FCN_RETURN=""
if [[ ${IS_GET} -eq 1 ]]; then if [[ ${IS_GET} -eq 1 ]]; then
if [[ "${cword}" == "2" ]]; then if [[ "${cword}" == "2" ]]; then
FCN_RETURN="" FCN_RETURN=""
IS_PATH=1
fi fi
fi fi
return 0 return 0

View File

@ -3884,8 +3884,8 @@ patternX:
require_det_id: true require_det_id: true
function: setPattern function: setPattern
input: [ 'args[0]' ] input: [ 'args[0]' ]
arg_types: [special::path]
input_types: [ std::string ] input_types: [ std::string ]
cast_input: [ false ]
output: [ 'args.front()' ] output: [ 'args.front()' ]
patword: patword:

View File

@ -6539,7 +6539,7 @@ patternX:
PUT: PUT:
args: args:
- arg_types: - arg_types:
- std::string - special::path
argc: 1 argc: 1
cast_input: cast_input:
- false - false

View File

@ -3319,6 +3319,12 @@ TEST_CASE("reg", "[.cmdcall]") {
auto det_type = det.getDetectorType().squash(); auto det_type = det.getDetectorType().squash();
if (det_type != defs::EIGER) { if (det_type != defs::EIGER) {
uint32_t addr = 0x64; uint32_t addr = 0x64;
if (det_type == defs::MYTHEN3) {
addr = 0x80;
}
if (det_type == defs::GOTTHARD2) {
addr = 0x20;
}
std::string saddr = ToStringHex(addr); std::string saddr = ToStringHex(addr);
auto prev_val = det.readRegister(addr); auto prev_val = det.readRegister(addr);
{ {
@ -3369,6 +3375,12 @@ TEST_CASE("setbit", "[.cmdcall]") {
auto det_type = det.getDetectorType().squash(); auto det_type = det.getDetectorType().squash();
if (det_type != defs::EIGER) { if (det_type != defs::EIGER) {
uint32_t addr = 0x64; uint32_t addr = 0x64;
if (det_type == defs::MYTHEN3) {
addr = 0x80;
}
if (det_type == defs::GOTTHARD2) {
addr = 0x20;
}
std::string saddr = ToStringHex(addr); std::string saddr = ToStringHex(addr);
auto prev_val = det.readRegister(addr); auto prev_val = det.readRegister(addr);
{ {
@ -3393,6 +3405,12 @@ TEST_CASE("clearbit", "[.cmdcall]") {
auto det_type = det.getDetectorType().squash(); auto det_type = det.getDetectorType().squash();
if (det_type != defs::EIGER) { if (det_type != defs::EIGER) {
uint32_t addr = 0x64; uint32_t addr = 0x64;
if (det_type == defs::MYTHEN3) {
addr = 0x80;
}
if (det_type == defs::GOTTHARD2) {
addr = 0x20;
}
std::string saddr = ToStringHex(addr); std::string saddr = ToStringHex(addr);
auto prev_val = det.readRegister(addr); auto prev_val = det.readRegister(addr);
{ {
@ -3417,6 +3435,12 @@ TEST_CASE("getbit", "[.cmdcall]") {
auto det_type = det.getDetectorType().squash(); auto det_type = det.getDetectorType().squash();
if (det_type != defs::EIGER) { if (det_type != defs::EIGER) {
uint32_t addr = 0x64; uint32_t addr = 0x64;
if (det_type == defs::MYTHEN3) {
addr = 0x80;
}
if (det_type == defs::GOTTHARD2) {
addr = 0x20;
}
std::string saddr = ToStringHex(addr); std::string saddr = ToStringHex(addr);
auto prev_val = det.readRegister(addr); auto prev_val = det.readRegister(addr);
{ {

View File

@ -1,8 +1,6 @@
// SPDX-License-Identifier: LGPL-3.0-or-other // SPDX-License-Identifier: LGPL-3.0-or-other
// Copyright (C) 2021 Contributors to the SLS Detector Package // Copyright (C) 2021 Contributors to the SLS Detector Package
/** API versions */ /** API versions */
#define APIRECEIVER "developer 0x241014"
#define APILIB "developer 0x241021"
#define APICTB "developer 0x241107" #define APICTB "developer 0x241107"
#define APIGOTTHARD "developer 0x241107" #define APIGOTTHARD "developer 0x241107"
#define APIGOTTHARD2 "developer 0x241107" #define APIGOTTHARD2 "developer 0x241107"
@ -10,4 +8,6 @@
#define APIXILINXCTB "developer 0x241107" #define APIXILINXCTB "developer 0x241107"
#define APIEIGER "developer 0x241107" #define APIEIGER "developer 0x241107"
#define APIJUNGFRAU "developer 0x241120" #define APIJUNGFRAU "developer 0x241120"
#define APIMYTHEN3 "developer 0x241121" #define APIMYTHEN3 "developer 0x241121"
#define APILIB "developer 0x241122"
#define APIRECEIVER "developer 0x241122"