mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-22 17:47:59 +02:00
Merge branch 'developer' into jf_h5reader
This commit is contained in:
@ -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
124
README.md
@ -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
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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})
|
||||||
|
@ -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
|
|
||||||
|
|
||||||
|
|
@ -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 ::
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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".
|
||||||
|
@ -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.
|
||||||
|
@ -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.
BIN
libs/pybind11/v2.13.6.tar.gz
Normal file
BIN
libs/pybind11/v2.13.6.tar.gz
Normal file
Binary file not shown.
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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:
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
{
|
{
|
||||||
|
@ -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"
|
||||||
|
Reference in New Issue
Block a user