mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-14 13:57:13 +02:00
Compare commits
289 Commits
Author | SHA1 | Date | |
---|---|---|---|
066706872d | |||
f98c403f06 | |||
5dcc2ab35c | |||
d80c5e1c02 | |||
7acc201797 | |||
57a52ba2dc | |||
c011129c43 | |||
2ed8b85143 | |||
5ac2fc33ff | |||
c169e6b896 | |||
497d29db39 | |||
2fbf0d6996 | |||
16246407c5 | |||
4a89bef87b | |||
a146257b13 | |||
340b18ca83 | |||
271f6da92e | |||
9d20bf25c6 | |||
6668fef61a | |||
a455a95aab | |||
7f7a691b25 | |||
7536971b34 | |||
8ca11ec705 | |||
00d63e48bb | |||
146da0f20f | |||
993ba5926e | |||
44424bcbe3 | |||
3570795469 | |||
a9d61526ef | |||
2a5116f49a | |||
5e0408474d | |||
e7b11f3eb1 | |||
c1e374ed51 | |||
eb690437c9 | |||
f076c1cbb7 | |||
de9854e773 | |||
150d8f5fda | |||
b0a5a76065 | |||
77e610f5a5 | |||
0689c82e98 | |||
ce94364c73 | |||
1ed10acc01 | |||
2c57d5f72d | |||
0d867c91d9 | |||
845920f8cc | |||
eff4ba01b9 | |||
bcf0922b8d | |||
d689c415e4 | |||
e9caa53af0 | |||
81eb0217ad | |||
0e23665de5 | |||
044843c8b7 | |||
9d63875802 | |||
9aea183f5c | |||
f39f93b2c8 | |||
ed2e6e4e28 | |||
74348afcf6 | |||
a101e18d60 | |||
d9686e0b6a | |||
5f38165b07 | |||
9d859cb4c2 | |||
7772eb153d | |||
e37725ac12 | |||
f3c95148a7 | |||
b9b3055984 | |||
464ebe70f1 | |||
4f76219456 | |||
18b0e84fbf | |||
1c6e33064b | |||
a74f71be0e | |||
848884f6cf | |||
4690bd0b19 | |||
f7286d29fa | |||
eb666d8b05 | |||
148c979727 | |||
00775b543e | |||
904af4de06 | |||
eb69d7cb69 | |||
0ffd30e147 | |||
eda66e63a5 | |||
6e276770eb | |||
4fb19ceaa5 | |||
1840ad218a | |||
93a191f122 | |||
c532ecc2e8 | |||
25eecf7039 | |||
85d350b48b | |||
ec1ee635d5 | |||
18bbce70b1 | |||
fa822634aa | |||
93a86324fb | |||
9d21062f5a | |||
a099637b7e | |||
4dfdd6f10b | |||
4f6640a6f1 | |||
65a2a9eb06 | |||
169361d459 | |||
0144eff60b | |||
4f5f8408cf | |||
32d664a77d | |||
4a8c365447 | |||
4b46091be2 | |||
5190e2ab30 | |||
adc6cf214a | |||
fb7daf426f | |||
0e9c88dfa2 | |||
233d374a4d | |||
15aa42d328 | |||
14ee2087dc | |||
1e134276ca | |||
d9168803ae | |||
0090c183bf | |||
f5d62b50ce | |||
098601e717 | |||
898ee9b7b7 | |||
1fd15fadf8 | |||
db88f67cda | |||
0f08ddd454 | |||
f8e2522a11 | |||
5143295711 | |||
a59537088b | |||
dde98fc8b6 | |||
c0e3bbbc61 | |||
bf778b5336 | |||
99c44b2592 | |||
6569e4a8bf | |||
3ebfbb123d | |||
8d2bb3d678 | |||
e81e06696a | |||
99ad1d9228 | |||
33c86db019 | |||
f085b4ca1e | |||
7558c43b8c | |||
e332439020 | |||
ea44151cb1 | |||
3167aade45 | |||
44709b1384 | |||
717d68c217 | |||
c218d7dc00 | |||
30d38ecae9 | |||
254b918408 | |||
1506c70329 | |||
729441dcc6 | |||
90b9b57865 | |||
29a41c6b19 | |||
64a25a242b | |||
7b4f8c118b | |||
54ee4ec653 | |||
59bcf6a0d0 | |||
6462a7162e | |||
e15028e94c | |||
81e1221e0d | |||
953fc9bb48 | |||
91cf18c5d1 | |||
642989cab2 | |||
d438b53c68 | |||
6e49b77b08 | |||
5f94ca30f1 | |||
98cf908918 | |||
cb39a59508 | |||
b68ef6cbd0 | |||
eff64f99f2 | |||
2b1028d636 | |||
1da2761654 | |||
7c2e64d9fe | |||
340d708b12 | |||
3f517420af | |||
05c9fcfe19 | |||
dcae1b7a2b | |||
d8570bc9a9 | |||
e3bfdaf38e | |||
5188e600a2 | |||
45b3514118 | |||
2813cd5ac2 | |||
2d2287e189 | |||
c3eff0246a | |||
c911fe4c85 | |||
87a515a549 | |||
0b2d294a19 | |||
b62a6eff64 | |||
dde62f13d5 | |||
146b012eff | |||
95897085ec | |||
e53a71f88f | |||
274ec27934 | |||
1454cc8434 | |||
76c86cb5ac | |||
ec4aca0dd4 | |||
9f27478f95 | |||
ec1bdffa1a | |||
258a0f794c | |||
6caafaea00 | |||
727e52b9e8 | |||
fdd3ab2a60 | |||
a84bd1f881 | |||
1f8823a3b7 | |||
1f4d94b3cc | |||
effbc6f571 | |||
8c8aa175a6 | |||
42b1f9a623 | |||
9e23648801 | |||
6dc4634495 | |||
4b7d73a4ee | |||
0358749b3b | |||
333a23c7e2 | |||
802bd27e50 | |||
0909eabfaf | |||
2f7a0898d6 | |||
e89dd393e2 | |||
76dc6db5c0 | |||
9b321d2ee1 | |||
f7a6160e67 | |||
156ce6a2e5 | |||
9dc217aaa3 | |||
ae736cd0e5 | |||
c5962f40eb | |||
aab5418166 | |||
f61d14a2f1 | |||
836e4c51f3 | |||
b39c64032d | |||
3726ae3fd1 | |||
98c2d52200 | |||
54097ba21c | |||
b8b7966d79 | |||
a1c9947821 | |||
469d4e5c7c | |||
bd0eb22392 | |||
3a543daf55 | |||
c061baaaee | |||
b9fab9bc1f | |||
6cf5072293 | |||
8db1dfb2ce | |||
a54a570a78 | |||
3cfdc063fc | |||
9b521ade27 | |||
313216443a | |||
318a5fd9d5 | |||
dd2e9ff7f3 | |||
27c4d8652e | |||
927f30e55e | |||
51c2e78a31 | |||
a0004dc775 | |||
db4f345b47 | |||
195d28d091 | |||
d7bbcb24c9 | |||
6b94f266bf | |||
203d6465a1 | |||
43bbf66e85 | |||
b665ed87b4 | |||
29fbef7ced | |||
f3ca25d104 | |||
e4b141dda5 | |||
843a35d2f9 | |||
1e2395bd44 | |||
ed81ce2877 | |||
12945916b7 | |||
4367a39b98 | |||
519b09fcad | |||
84f56ff314 | |||
3e70f0cbfb | |||
96f7bf05c8 | |||
7eb05a3637 | |||
ca08cd9ec1 | |||
a0ecf056d8 | |||
479fa23acb | |||
fada085f0e | |||
b913c0059a | |||
dac60ad76d | |||
4de7bb51ed | |||
0801957203 | |||
2d7ffdd603 | |||
576157351e | |||
86a9aa9e38 | |||
928ed201f6 | |||
ae4473d631 | |||
cbe2956ee4 | |||
aff3a6ed20 | |||
e6b18f6a95 | |||
93550ebed7 | |||
8fb4393981 | |||
2bfe0a939d | |||
cfbc4c699f | |||
c0edbc8631 | |||
34bc596ea6 | |||
e172156829 | |||
1c13dd95a0 | |||
c836371b7c | |||
7426110e8a | |||
e84f5bec0b |
60
CMakeLists.txt
Executable file → Normal file
60
CMakeLists.txt
Executable file → Normal file
@ -1,12 +1,17 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
project(slsDetectorPackage)
|
||||
set(PROJECT_VERSION 5.1.0)
|
||||
include(CheckIPOSupported)
|
||||
set(PROJECT_VERSION 6.1.0)
|
||||
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
|
||||
|
||||
cmake_policy(SET CMP0074 NEW)
|
||||
include(cmake/project_version.cmake)
|
||||
|
||||
#functions to add compiler flags
|
||||
include(cmake/SlsAddFlag.cmake)
|
||||
|
||||
# Include additional modules that are used unconditionally
|
||||
include(GNUInstallDirs)
|
||||
|
||||
@ -51,7 +56,7 @@ option(SLS_TUNE_LOCAL "tune to local machine" OFF)
|
||||
option(SLS_DEVEL_HEADERS "install headers for devel" OFF)
|
||||
option(SLS_USE_MOENCH "compile zmq and post processing for Moench" OFF)
|
||||
|
||||
# set(ClangFormat_BIN_NAME clang-format)
|
||||
|
||||
set(ClangFormat_EXCLUDE_PATTERNS "build/"
|
||||
"libs/"
|
||||
"slsDetectorCalibration/"
|
||||
@ -62,9 +67,7 @@ set(ClangFormat_EXCLUDE_PATTERNS "build/"
|
||||
${CMAKE_BINARY_DIR})
|
||||
find_package(ClangFormat)
|
||||
|
||||
#Enable LTO if available
|
||||
check_ipo_supported(RESULT SLS_LTO_AVAILABLE)
|
||||
message(STATUS "SLS_LTO_AVAILABLE:" ${SLS_LTO_AVAILABLE})
|
||||
|
||||
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
@ -75,6 +78,16 @@ if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
endif()
|
||||
|
||||
|
||||
#Enable LTO if available
|
||||
include(CheckIPOSupported)
|
||||
check_ipo_supported(RESULT SLS_LTO_AVAILABLE)
|
||||
if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE)
|
||||
message(STATUS "Building with link time optimization")
|
||||
else()
|
||||
message(STATUS "Building without link time optimization")
|
||||
endif()
|
||||
|
||||
|
||||
#Add two fake libraries to manage options
|
||||
add_library(slsProjectOptions INTERFACE)
|
||||
add_library(slsProjectWarnings INTERFACE)
|
||||
@ -82,7 +95,7 @@ target_compile_features(slsProjectOptions INTERFACE cxx_std_11)
|
||||
target_compile_options(slsProjectWarnings INTERFACE
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wno-unused-parameter #Needs to be slowly mitigated
|
||||
-Wno-unused-parameter
|
||||
# -Wold-style-cast
|
||||
-Wnon-virtual-dtor
|
||||
-Woverloaded-virtual
|
||||
@ -93,13 +106,12 @@ target_compile_options(slsProjectWarnings INTERFACE
|
||||
-Wvla
|
||||
-Wdouble-promotion
|
||||
-Werror=return-type
|
||||
|
||||
)
|
||||
|
||||
#Settings for C code
|
||||
add_library(slsProjectCSettings INTERFACE)
|
||||
target_compile_features(slsProjectCSettings INTERFACE c_std_99)
|
||||
target_compile_options(slsProjectCSettings INTERFACE
|
||||
-std=gnu99 #fixed
|
||||
-Wall
|
||||
-Wextra
|
||||
-Wno-unused-parameter
|
||||
@ -116,31 +128,23 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2)
|
||||
message(FATAL_ERROR "Clang version must be at least 3.2!")
|
||||
endif()
|
||||
target_compile_options(slsProjectWarnings INTERFACE -Wshadow) #Clag does not warn on constructor
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
|
||||
message(FATAL_ERROR "GCC version must be at least 4.8!")
|
||||
endif()
|
||||
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
|
||||
target_compile_options(slsProjectWarnings INTERFACE
|
||||
-Wno-missing-field-initializers)
|
||||
endif()
|
||||
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
|
||||
target_compile_options(slsProjectWarnings INTERFACE
|
||||
-Wno-misleading-indentation # mostly in rapidjson remove using clang format
|
||||
-Wduplicated-cond
|
||||
-Wnull-dereference )
|
||||
|
||||
endif()
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 8.0)
|
||||
target_compile_options(slsProjectWarnings INTERFACE
|
||||
-Wno-class-memaccess )
|
||||
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Add or disable warnings depending on if the compiler supports them
|
||||
# The function checks internally and sets HAS_warning-name
|
||||
sls_enable_cxx_warning("-Wnull-dereference")
|
||||
sls_enable_cxx_warning("-Wduplicated-cond")
|
||||
sls_disable_cxx_warning("-Wclass-memaccess")
|
||||
sls_disable_c_warning("-Wstringop-truncation")
|
||||
|
||||
|
||||
if(SLS_USE_SANITIZER)
|
||||
target_compile_options(slsProjectOptions INTERFACE -fsanitize=address,undefined -fno-omit-frame-pointer)
|
||||
@ -187,8 +191,6 @@ if (NOT TARGET libzmq)
|
||||
find_package(ZeroMQ 4 QUIET)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
# libzmq autotools install: fallback to pkg-config
|
||||
if(NOT ZeroMQ_FOUND)
|
||||
message(STATUS "CMake libzmq package not found, trying again with pkg-config (normal install of zeromq)")
|
||||
@ -212,8 +214,6 @@ if (SLS_USE_TESTS)
|
||||
endif(SLS_USE_TESTS)
|
||||
|
||||
|
||||
|
||||
|
||||
# Common functionallity to detector and receiver
|
||||
add_subdirectory(slsSupportLib)
|
||||
|
||||
@ -259,16 +259,12 @@ if(SLS_BUILD_DOCS)
|
||||
add_subdirectory(docs)
|
||||
endif(SLS_BUILD_DOCS)
|
||||
|
||||
|
||||
if(SLS_USE_MOENCH)
|
||||
add_subdirectory(slsDetectorCalibration/moenchExecutables)
|
||||
endif(SLS_USE_MOENCH)
|
||||
|
||||
if(SLS_MASTER_PROJECT)
|
||||
# Set install dir CMake packages
|
||||
set(CMAKE_INSTALL_DIR "share/cmake/${PROJECT_NAME}")
|
||||
# Set the list of exported targets
|
||||
set(PROJECT_LIBRARIES slsSupportShared slsDetectorShared slsReceiverShared)
|
||||
# Generate and install package config file and version
|
||||
include(cmake/package_config.cmake)
|
||||
endif()
|
||||
|
17
COPYING
Normal file
17
COPYING
Normal file
@ -0,0 +1,17 @@
|
||||
The SLS Detector Package is provided under:
|
||||
|
||||
SPDX-License-Identifier: LGPL-3.0-or-later
|
||||
|
||||
Being under the terms of the GNU Lesser General Public License version 3 or later,
|
||||
according with:
|
||||
|
||||
LICENSES/LGPL-3.0
|
||||
|
||||
Source code under the Apache 2.0 License have the SPDX Identifier and are
|
||||
according with:
|
||||
|
||||
LICENSES/ThirdParty/Apache-2.0
|
||||
|
||||
All contributions to the SLS Detector Package are subject to this COPYING file.
|
||||
|
||||
|
@ -1,3 +1,17 @@
|
||||
Valid-License-Identifier: GPL-3.0
|
||||
Valid-License-Identifier: GPL-3.0+
|
||||
SPDX-URL: https://spdx.org/licenses/GPL-3.0-or-later.html
|
||||
Usage-Guide:
|
||||
To use this license in source code, put one of the following SPDX
|
||||
tag/value pairs into a comment according to the placement
|
||||
guidelines in the licensing rules documentation.
|
||||
For 'GNU Library General Public License (LGPL) version 3.0 only' use:
|
||||
SPDX-License-Identifier: GPL-3.0
|
||||
For 'GNU Library General Public License (LGPL) version 3.0 or any later
|
||||
version' use:
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
License-Text:
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
@ -1,3 +1,17 @@
|
||||
Valid-License-Identifier: LGPL-3.0
|
||||
Valid-License-Identifier: LGPL-3.0+
|
||||
SPDX-URL: https://spdx.org/licenses/LGPL-3.0-or-later.html
|
||||
Usage-Guide:
|
||||
To use this license in source code, put one of the following SPDX
|
||||
tag/value pairs into a comment according to the placement
|
||||
guidelines in the licensing rules documentation.
|
||||
For 'GNU Library General Public License (LGPL) version 3.0 only' use:
|
||||
SPDX-License-Identifier: LGPL-3.0
|
||||
For 'GNU Library General Public License (LGPL) version 3.0 or any later
|
||||
version' use:
|
||||
SPDX-License-Identifier: LGPL-3.0-or-later
|
||||
License-Text:
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
210
LICENSES/Third Party/Apache-2.0
Normal file
210
LICENSES/Third Party/Apache-2.0
Normal file
@ -0,0 +1,210 @@
|
||||
Valid-License-Identifier: Apache-2.0
|
||||
SPDX-URL: https://spdx.org/licenses/Apache-2.0.html
|
||||
Usage-Guide:
|
||||
To use this license in source code, put one of the following SPDX
|
||||
tag/value pairs into a comment according to the placement
|
||||
guidelines in the licensing rules documentation.
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
License-Text:
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
306
RELEASE.txt
306
RELEASE.txt
@ -1,7 +1,7 @@
|
||||
SLS Detector Package 6.0.0-rc1 released on 08.10.2021 (Release Candidate 1)
|
||||
===========================================================================
|
||||
SLS Detector Package Minor Release 6.1.0 released on 25.11.2021
|
||||
===============================================================
|
||||
|
||||
This document describes the differences between v6.0.0-rc1 and v5.1.0.
|
||||
This document describes the differences between v6.1.0 and v6.0.0.
|
||||
|
||||
|
||||
|
||||
@ -9,8 +9,8 @@ This document describes the differences between v6.0.0-rc1 and v5.1.0.
|
||||
--------
|
||||
1. New or Changed Features
|
||||
2. Resolved Issues
|
||||
3. Known Issues
|
||||
4. Firmware Requirements
|
||||
3. Firmware Requirements
|
||||
4. Kernel Requirements
|
||||
5. Download, Documentation & Support
|
||||
|
||||
|
||||
@ -22,231 +22,91 @@ This document describes the differences between v6.0.0-rc1 and v5.1.0.
|
||||
Client
|
||||
------
|
||||
|
||||
1. [Jungfrau] Chip version
|
||||
Features for chipv1.1 incorporated
|
||||
Command line: chipversion, API: getchipVersion
|
||||
gets chip version (1.0 or 1.1)
|
||||
chipv1.1 requires config_jungfrau.txt on detector server.
|
||||
1. Kernel version
|
||||
Commandline: kernelversion, API: getKernelVersion
|
||||
|
||||
2. [Jungfrau] Chip configuration (only chipv1.1)
|
||||
powering on the chip and changing settings will configure the chip.
|
||||
Hence, required before acquisition.
|
||||
2. [Jungfrau][Mythen3][Gotthard2][Gotthard][Moench][Ctb]
|
||||
Update Kernel
|
||||
Commandline: updatekernel, API: updatekernel
|
||||
You could damage the detector. Please use with caution.
|
||||
|
||||
3. [Jungfrau] Settings and Gain mode
|
||||
Settings can be gain0 and highgain0. Gain mode can be dynamicgain,
|
||||
forceswitchg1, forceswitchg2, fixg1, fixg2, fixg0. fixg0 must be
|
||||
used with EXTRA caution as you can damage the detector.
|
||||
Changing settings also changes dac values of 3 dacs () and reconfigures
|
||||
chip (only v1.1)
|
||||
3. Update Detector Server (no tftp)
|
||||
Commandline: updatedetectorserver, API: updateDetectorServer
|
||||
Updates the detector server without using tftp. It also creates a
|
||||
symbolic link to a shorter name and reboots. The API using tftp
|
||||
(copydetectorserver) is deprecated.
|
||||
|
||||
4. [Jungfrau] Storage cells (only chipv1.1)
|
||||
Additional number of storage cells not applicable for chipv1.1.
|
||||
Storage cell start is only allowed from 0 - 3 for chipv1.1
|
||||
(0 - 15 for chipv1.0).
|
||||
4. Update Firmware and Server (no tftp)
|
||||
Commandline: update (fewer arguments), API: updateFirmwareAndServer
|
||||
(overloaded) Same as before, except the server is transferred to the
|
||||
detector without tftp. The previous API and command (fewer arguments)
|
||||
using tftp is deprecated.
|
||||
|
||||
5. [Gotthard2][Jungfrau] Filter Resistor
|
||||
Command line: filterresistor, API: getFilterResistor/ setFilterResistor
|
||||
Previous Command: filter, setFilter/ getFilter
|
||||
Set Filter resistor. Increasing values for increasing resistance.
|
||||
[Jungfrau] only for chipv1.1. Options: [0|1]. Default is 1.
|
||||
[Gotthard2] Options: [0|1|2|3]. Default is 0.
|
||||
|
||||
6. [Jungfrau] Filter cell (only chipv1.1)
|
||||
Command line: filtercell, API: getFilterCell/ setFilterCell
|
||||
Set filter cell. Options: [0-12]. Advanced user command.
|
||||
|
||||
7. [Jungfrau] Comparator disable time (only chipv1.1)
|
||||
Command line: comp_disable_time, API: getComparatorDisableTime/
|
||||
setComparatorDisableTime
|
||||
One can customize the period to disable comparator.
|
||||
|
||||
8. [Eiger][Jungfrau] Flip rows
|
||||
Command line: fliprows, API: getFlipRows/ setFlipRows
|
||||
Previous command: flippeddatax, setBottom/ getBottom
|
||||
[Jungfrau] Flips rows in detector only for HW v2.0.
|
||||
slsReceiver and slsDetectorGui will not flip them again.
|
||||
[Eiger] same as before.
|
||||
|
||||
9. [Eiger][Jungfrau] Read n rows
|
||||
Command line: readnrows, API: getReadNRows/ setReadNRows
|
||||
Previous Command: readnlines, getPartialReadout/ setPartialReadout
|
||||
[Eiger] same as before
|
||||
[Jungfrau] Options: 8 - 512, multiples of 8. Default is 512.
|
||||
|
||||
10. [Gotthard2][Jungfrau] Current source
|
||||
Command line: currentsource, API: getCurrentSource, setCurrentSource
|
||||
Enable or disable current source. Default is disabled.
|
||||
[Gotthard2] Can only enable or disable.
|
||||
[Jungfrau] Can choose to fix, select source and choose normal or low
|
||||
current. Normal/ low only for chipv1.1.
|
||||
Select source is 0-63 for chipv1.0 and a 64 bit mask for chipv1.1.
|
||||
|
||||
11. Default dac
|
||||
Command line: defaultdac, API: getDefaultDac/ setDefaultDac
|
||||
change default value of a dac
|
||||
[Jungfrau][Mythen3] Also change default value of dac for particular
|
||||
setting.
|
||||
|
||||
12. Reset dacs
|
||||
Command line: resetdacs, API: resetToDefaultDacs
|
||||
Previous command: defaultdacs
|
||||
Resets dacs to their default values or hard coded values.
|
||||
|
||||
13. [Mythen3] Gain Capacitance
|
||||
Command line: gaincaps, API: getGainCaps/ setGainCaps
|
||||
Set various gain capacitances.
|
||||
|
||||
14. [Gotthard2] Veto Streaming from chip
|
||||
Command line: veto, API: getVeto/ setVeto
|
||||
This command used to mean veto streaming from detector. Now, it means
|
||||
veto streaming from chip (New feature). Default is disabled.
|
||||
|
||||
15. [Gotthard2] Veto streaming from detector
|
||||
Command line: vetostream, API: getVetoStream, setVetoStream
|
||||
Options: None, local link interface, 10 10GbE, Both
|
||||
Default: None
|
||||
10GbE (as before) will enable 2 udp interfaces in receiver.
|
||||
|
||||
16. [Gotthard2] Veto algorithm
|
||||
Command line: vetoalg, API: getVetoAlgorithm/ setVetoAlgorithm
|
||||
Set veto algorithm for each interface.
|
||||
Options: hits, raw
|
||||
|
||||
17. [Eiger][Gotthard2][Mythen3] Module ID
|
||||
Command line: moduleid, API: getModuleId
|
||||
Previous command (Eiger only): serialnumber, getSerialNumber
|
||||
Unique id read from txt file on detector and streamed out in udp header.
|
||||
|
||||
18. [Gotthard2]
|
||||
Command line: dbitpipeline, API: getDBITPipeline/ setDBITPipeline
|
||||
Set pipeline to latch digital bits. Options: 0-7
|
||||
|
||||
19. [Eiger][Jungfrau] Round Robin commands
|
||||
Command line, udp_dstlist, API: getDestinationUDPList/
|
||||
setDestinationUDPList
|
||||
Round robin commands at the moment does not configure the receiver.
|
||||
Set multiple udp destinations in the detector to stream udp data packets
|
||||
to. Upto 32 destinations. Refer documentation for details.
|
||||
|
||||
Command line, udp_numdst, API: getNumberofUDPDestinations
|
||||
|
||||
[Jungfrau] Command line, udp_firstdst, API: getFirstUDPDestination/
|
||||
setFirstUDPDestination
|
||||
|
||||
20. Command Line Parsing
|
||||
Parsing of detector index and module index has been modified to
|
||||
integrate round robin index.
|
||||
[detector index]-[module index]:[round robin index] [command]
|
||||
|
||||
It is backwards compatible.
|
||||
For ease, one can also execute
|
||||
sls_detector_put [module index] [command]
|
||||
|
||||
21. Clear Udp Destination
|
||||
Command line, udp_cleardst, API: clearUDPDestinations
|
||||
This is useful when changing receivers for a detector or for round robin
|
||||
system.
|
||||
|
||||
22. Shared Memory Naming
|
||||
Shared memory name has been changed to reflect a more appropriate naming
|
||||
scheme.
|
||||
|
||||
23. [Eiger][Mythen3] Blocking trigger
|
||||
Command line: blockingtrigger, API: sendSoftwareTrigger
|
||||
Sends software trigger signal to detector and blocks till frames are
|
||||
sent out for that trigger.
|
||||
|
||||
24. [Eiger] Data stream enable for ports
|
||||
Command line: datastream, API: getDataStream/ setDataStream
|
||||
Enable or disable each port. Default: enabled
|
||||
|
||||
25. Changing TCP ports
|
||||
This will only affect shared memory and will not try to change the
|
||||
current tcp port of the control/stop server in detector.
|
||||
|
||||
26. [Eiger][Jungfrau][Gotthard2] Speed
|
||||
Command line: readoutspeed, readoutspeedlist API: getReadoutSpeed/ setReadoutSpeed /
|
||||
getReadoutSpeedList
|
||||
Previous command: speed, setSpeed/ getSpeed
|
||||
[Eiger][Jungfrau] same as before.
|
||||
[Gotthard2] New command to set readout speed. Options: 108, 144 (in MHz)
|
||||
5. Update mode in Detector server
|
||||
Commandline: udpatemode, API set/getUpdateMode
|
||||
One can set detector server to update mode (especially if server and
|
||||
firmware are incompatible that the server cannot start up without errors).
|
||||
This mode will limit access to a few operations only needed to update the
|
||||
detector. Setting it will create an empty file (udpate.txt) and resetting
|
||||
it will delete the empty file. Ofcourse, command line "--update" will
|
||||
overwrite any file detection and start server in update mode.
|
||||
|
||||
|
||||
Detector servers
|
||||
----------------
|
||||
Detector Server
|
||||
---------------
|
||||
|
||||
1. [Gotthard2] Bad Channels moved to a new register, default settings
|
||||
including clock frequency changed
|
||||
1. [Gotthard2] speed
|
||||
Ensuring dbitpipeline is default when changing speed. This has an effect
|
||||
only if dbitpipeline was changed in between.
|
||||
|
||||
2. [Gotthard2] Updated config file in detector server
|
||||
|
||||
|
||||
Virtual servers
|
||||
----------------
|
||||
|
||||
1. Artifical pixel values increasing by every packet, instead of every pixel.
|
||||
|
||||
2. All possible features updated.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. Frames caught in metadata
|
||||
Frames caught by the master receiver is added to master file metadata.
|
||||
Hdf5 and Binary version numbers changed to 6.3
|
||||
|
||||
2. Removed Padding option for Deactivated half modules.
|
||||
|
||||
3. Changing Receiver TCP ports
|
||||
This will only affect shared memory and will not try to change the
|
||||
current tcp port of the receiver.
|
||||
|
||||
Gui
|
||||
----
|
||||
|
||||
1. [Mythen3] counters added in settings tab
|
||||
|
||||
|
||||
2. Resolved Issues
|
||||
==================
|
||||
|
||||
Detector Servers
|
||||
----------------
|
||||
Detector Server
|
||||
---------------
|
||||
|
||||
1. [Gotthard2] Tolerance in time parameters.
|
||||
Eg. 220 ns was being set to 215 ns, instead of 222ns.
|
||||
1. [Jungfrau][Moench][Ctb] Programming Firmware Failures
|
||||
Firmware programming via software failures are fixed using a new kernel
|
||||
and corresponding changes in server software. Software works with both
|
||||
old and new kernels.
|
||||
|
||||
2. [Jungfrau] Stopping in trigger mode and then switching to auto timing mode
|
||||
blocks data streaming from detector. Workaround fix made in
|
||||
detector server to reset core until next firmware release.
|
||||
2. [Gotthard2][Mythen3]
|
||||
Verifies kernel version at server start up.
|
||||
|
||||
3. [Jungfrau][CTB][Moench][Gotthard][Gotthard2][Mythen3] Firmware Programming
|
||||
Firmware programming incorporates more validations such as checksum of
|
||||
program. Always ensure client and server are of same release before
|
||||
programming firmware.
|
||||
3. [Jungfrau]
|
||||
Verifies HW2.0 before trying to set read n rows or flip rows.
|
||||
Has no effect when not using slsReceiver.
|
||||
|
||||
4. [Eiger] Stop sends last frame
|
||||
Stop acquisition will now also send out all complete frames in fifo.
|
||||
4. [Eiger]
|
||||
Thresholdnotb command loads threshold energy without trimbits, but had
|
||||
a bug in the server that was setting nchip to 0 and further trimval or
|
||||
trim commands would no work reliably. This is fixed now.
|
||||
|
||||
5. [Eiger] Bottom not rotated in quad mode. Fixed.
|
||||
|
||||
6. [Mythen3] counter mask effect on vthreshold
|
||||
Setting counter mask changes vth daac values (ie. disabling sets to 2800),
|
||||
vthreshold only changes for enabled counters, setting vth overwrites
|
||||
dac even if counter disabled and when counters enabled, remembers set
|
||||
values.
|
||||
Client
|
||||
------
|
||||
|
||||
1. Receiver Id in the commands in config files were ignored. Fixed.
|
||||
|
||||
2. Execute command now also mentions which module failed.
|
||||
|
||||
3. [Jungfrau][Moench][Ctb]
|
||||
Programming firmware procedure did not delete temporary file created in
|
||||
6.0.0. Fixed.
|
||||
|
||||
7. [Eiger] fast quad fix for loading trimbits
|
||||
|
||||
Receiver
|
||||
--------
|
||||
|
||||
1. Disabled port or deactivated (half) modules will not create files.
|
||||
1. Setting receiver hostname to "none" threw an exception. Fixed.
|
||||
|
||||
2. [Jungfrau]
|
||||
Since the server verifies HW2.0 for number of rows before trying to set it,
|
||||
the receiver now does not show incorrect missing packets stemming from this
|
||||
issue.
|
||||
|
||||
- better control of what is built (PR)?
|
||||
- cmake package has hardcoded path to zeromq library
|
||||
|
||||
|
||||
3. Firmware Requirements
|
||||
@ -268,11 +128,11 @@ This document describes the differences between v6.0.0-rc1 and v5.1.0.
|
||||
|
||||
Mythen3
|
||||
=======
|
||||
Compatible version : 10.09.2021 (development)
|
||||
Compatible version : 10.09.2021 (v1.1)
|
||||
|
||||
Gotthard2
|
||||
=========
|
||||
Compatible version : 27.05.2021 (v1.0)
|
||||
Compatible version : 27.05.2021 (v0.1)
|
||||
|
||||
Moench
|
||||
======
|
||||
@ -284,7 +144,6 @@ This document describes the differences between v6.0.0-rc1 and v5.1.0.
|
||||
|
||||
Detector Upgrade
|
||||
================
|
||||
|
||||
The following can be upgraded remotely:
|
||||
Eiger via bit files
|
||||
Jungfrau via command <.pof>
|
||||
@ -303,25 +162,34 @@ This document describes the differences between v6.0.0-rc1 and v5.1.0.
|
||||
|
||||
|
||||
|
||||
4. Kernel Requirements
|
||||
======================
|
||||
|
||||
Blackfin
|
||||
========
|
||||
Latest version: Fri Oct 29 00:00:00 2021
|
||||
|
||||
5. Known Issues
|
||||
===============
|
||||
Older ones will work, but might have issues with programming firmware via
|
||||
the package.
|
||||
|
||||
Receiver
|
||||
--------
|
||||
1. It does not handle readnrows or partial readout. Only the summary
|
||||
is adjusted to print in red. However, it will still write complete
|
||||
images with missing data padded. Roi will be implemented in future
|
||||
that can be complimented with this feature to remove the additional
|
||||
data in files.
|
||||
Nios
|
||||
====
|
||||
Compatible version: Mon May 10 18:00:21 CEST 2021
|
||||
|
||||
2. Round robin is not implemented in receiver side, ie. one cannot configure
|
||||
more than 1 receiver at a time. This will/might be done in the future.
|
||||
Kernel Upgrade
|
||||
==============
|
||||
Eiger via bit files
|
||||
Others via command
|
||||
|
||||
Commands: udpatekernel, kernelversion
|
||||
Instructions available at
|
||||
https://slsdetectorgroup.github.io/devdoc/commandline.html
|
||||
https://slsdetectorgroup.github.io/devdoc/detector.html
|
||||
https://slsdetectorgroup.github.io/devdoc/pydetector.html
|
||||
|
||||
|
||||
|
||||
6. Download, Documentation & Support
|
||||
5. Download, Documentation & Support
|
||||
====================================
|
||||
|
||||
Download
|
||||
|
64
cmake/SlsAddFlag.cmake
Normal file
64
cmake/SlsAddFlag.cmake
Normal file
@ -0,0 +1,64 @@
|
||||
include(CheckCXXCompilerFlag)
|
||||
include(CheckCCompilerFlag)
|
||||
|
||||
|
||||
function(enable_cxx_warning flag target)
|
||||
string(REPLACE "-W" "HAS_" flag_name ${flag})
|
||||
check_cxx_compiler_flag(${flag} ${flag_name})
|
||||
if(${flag_name})
|
||||
target_compile_options(${target} INTERFACE ${flag})
|
||||
message(STATUS "Adding: ${flag} to ${target}")
|
||||
else()
|
||||
message(STATUS "Flag: ${flag} not supported")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(enable_c_warning flag target)
|
||||
string(REPLACE "-W" "HAS_" flag_name ${flag})
|
||||
check_c_compiler_flag(${flag} ${flag_name})
|
||||
if(${flag_name})
|
||||
target_compile_options(${target} INTERFACE ${flag})
|
||||
message(STATUS "Adding: ${flag} to ${target}")
|
||||
else()
|
||||
message(STATUS "Flag: ${flag} not supported")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
||||
function(disable_cxx_warning flag target)
|
||||
string(REPLACE "-W" "HAS_" flag_name ${flag})
|
||||
check_cxx_compiler_flag(${flag} ${flag_name})
|
||||
|
||||
if(${flag_name})
|
||||
string(REPLACE "-W" "-Wno-" neg_flag ${flag})
|
||||
message(STATUS "Adding: ${neg_flag} to ${target}")
|
||||
target_compile_options(${target} INTERFACE ${neg_flag})
|
||||
else()
|
||||
message(STATUS "Warning: ${flag} not supported no need to disable")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(disable_c_warning flag target)
|
||||
string(REPLACE "-W" "HAS_" flag_name ${flag})
|
||||
check_c_compiler_flag(${flag} ${flag_name})
|
||||
if(${flag_name})
|
||||
string(REPLACE "-W" "-Wno-" neg_flag ${flag})
|
||||
message(STATUS "Adding: ${neg_flag} to ${target}")
|
||||
target_compile_options(${target} INTERFACE ${neg_flag})
|
||||
else()
|
||||
message(STATUS "Warning: ${flag} not supported no need to disable")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
||||
function(sls_disable_c_warning flag)
|
||||
disable_c_warning(${flag} slsProjectCSettings)
|
||||
endfunction()
|
||||
|
||||
function(sls_enable_cxx_warning flag)
|
||||
enable_cxx_warning(${flag} slsProjectWarnings)
|
||||
endfunction()
|
||||
|
||||
function(sls_disable_cxx_warning flag)
|
||||
disable_cxx_warning(${flag} slsProjectWarnings)
|
||||
endfunction()
|
2
cmk.sh
2
cmk.sh
@ -1,4 +1,6 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
CMAKE="cmake3"
|
||||
BUILDDIR="build"
|
||||
INSTALLDIR=""
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
mkdir build
|
||||
mkdir install
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
echo "|<-------- starting python build"
|
||||
cd python
|
||||
|
@ -3,6 +3,7 @@ python:
|
||||
- 3.7
|
||||
- 3.8
|
||||
- 3.9
|
||||
- 3.10
|
||||
|
||||
numpy:
|
||||
- 1.17
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
mkdir $PREFIX/lib
|
||||
mkdir $PREFIX/bin
|
||||
mkdir $PREFIX/include
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#Copy the GUI
|
||||
mkdir -p $PREFIX/bin
|
||||
cp build/install/bin/slsDetectorGui $PREFIX/bin/.
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
mkdir -p $PREFIX/lib
|
||||
mkdir -p $PREFIX/bin
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#Copy the Moench executables
|
||||
mkdir -p $PREFIX/bin
|
||||
cp build/install/bin/moench04ZmqProcess $PREFIX/bin/.
|
||||
|
@ -1 +1,3 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
ctest -j2
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
|
||||
find_package(ROOT CONFIG REQUIRED COMPONENTS Core Gui)
|
||||
@ -59,7 +61,6 @@ set( HEADERS
|
||||
#set(ROOT_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
# ROOT dictionary generation
|
||||
include("${ROOT_DIR}/RootMacros.cmake")
|
||||
root_generate_dictionary(ctbDict ${HEADERS} LINKDEF ctbLinkDef.h)
|
||||
add_library(ctbRootLib SHARED ctbDict.cxx)
|
||||
target_include_directories(ctbRootLib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
@ -85,3 +86,4 @@ set_target_properties(ctbGui PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
|
||||
)
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
|
||||
INCS=ctbMain.h ctbDacs.h ctbPattern.h ctbSignals.h ctbAdcs.h ctbAcquisition.h ctbPowers.h ctbSlowAdcs.h
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
|
||||
INCS=ctbMain.h ctbDacs.h ctbPattern.h ctbSignals.h ctbAdcs.h ctbAcquisition.h ctbPowers.h ctbSlowAdcs.h
|
||||
|
2
ctbGui/ctbAcquisition.cpp
Executable file → Normal file
2
ctbGui/ctbAcquisition.cpp
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
//#define TESTADC
|
||||
|
||||
|
||||
|
2
ctbGui/ctbAcquisition.h
Executable file → Normal file
2
ctbGui/ctbAcquisition.h
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#ifndef CTBACQUISITION_H
|
||||
#define CTBACQUISITION_H
|
||||
#include <TGFrame.h>
|
||||
|
2
ctbGui/ctbAdcs.cpp
Executable file → Normal file
2
ctbGui/ctbAdcs.cpp
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#include <TApplication.h>
|
||||
#include <TGClient.h>
|
||||
#include <TCanvas.h>
|
||||
|
2
ctbGui/ctbAdcs.h
Executable file → Normal file
2
ctbGui/ctbAdcs.h
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
|
||||
|
||||
|
2
ctbGui/ctbDacs.cpp
Executable file → Normal file
2
ctbGui/ctbDacs.cpp
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
|
2
ctbGui/ctbDacs.h
Executable file → Normal file
2
ctbGui/ctbDacs.h
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
|
||||
#ifndef CTBDACS_H
|
||||
|
2
ctbGui/ctbDefs.h
Executable file → Normal file
2
ctbGui/ctbDefs.h
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
|
2
ctbGui/ctbGui.cpp
Executable file → Normal file
2
ctbGui/ctbGui.cpp
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#include <TApplication.h>
|
||||
#include <TColor.h>
|
||||
|
||||
|
2
ctbGui/ctbLinkDef.h
Executable file → Normal file
2
ctbGui/ctbLinkDef.h
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#pragma link C++ class ctbMain;
|
||||
#pragma link C++ class ctbDacs;
|
||||
#pragma link C++ class ctbDac;
|
||||
|
2
ctbGui/ctbMain.cpp
Executable file → Normal file
2
ctbGui/ctbMain.cpp
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#include <TApplication.h>
|
||||
#include <TGClient.h>
|
||||
#include <TCanvas.h>
|
||||
|
2
ctbGui/ctbMain.h
Executable file → Normal file
2
ctbGui/ctbMain.h
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#ifndef CTBMAIN_H
|
||||
#define CTBMAIN_H
|
||||
#include <TGFrame.h>
|
||||
|
2
ctbGui/ctbPattern.cpp
Executable file → Normal file
2
ctbGui/ctbPattern.cpp
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#include <TApplication.h>
|
||||
#include <TGClient.h>
|
||||
#include <TCanvas.h>
|
||||
|
2
ctbGui/ctbPattern.h
Executable file → Normal file
2
ctbGui/ctbPattern.h
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#ifndef CTBPATTERN_H
|
||||
#define CTBPATTERN_H
|
||||
#include <TGFrame.h>
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#include <TGFrame.h>
|
||||
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#ifndef CTBPOWERS_H
|
||||
#define CTBPOWERS_H
|
||||
|
||||
|
2
ctbGui/ctbSignals.cpp
Executable file → Normal file
2
ctbGui/ctbSignals.cpp
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#include <TApplication.h>
|
||||
#include <TGClient.h>
|
||||
#include <TCanvas.h>
|
||||
|
2
ctbGui/ctbSignals.h
Executable file → Normal file
2
ctbGui/ctbSignals.h
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#ifndef CTBSIGNALS_H
|
||||
#define CTBSIGNALS_H
|
||||
#include <TGFrame.h>
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
#include <stdio.h>
|
||||
#include <iostream>
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
|
||||
#ifndef CTBSLOWADCS_H
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
if [ "$#" -eq 0 ]; then
|
||||
echo "Wrong number of arguments: usage should be $0 patname"
|
||||
exit 1
|
||||
|
2
ctbGui/patternGenerator/generator.c
Executable file → Normal file
2
ctbGui/patternGenerator/generator.c
Executable file → Normal file
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
/****************************************************************************
|
||||
usage to generate a patter test.pat from test.p
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
find_package(Doxygen REQUIRED)
|
||||
find_package(Sphinx REQUIRED)
|
||||
|
||||
|
@ -1,8 +1,6 @@
|
||||
Firmware Upgrade
|
||||
=================
|
||||
|
||||
|
||||
|
||||
Eiger
|
||||
-------------
|
||||
|
||||
@ -18,30 +16,9 @@ Upgrade
|
||||
^^^^^^^^
|
||||
#. Tftp must be already installed on your pc to use the bcp script.
|
||||
|
||||
#. Kill the on-board servers and copy new servers to the board.
|
||||
#. Copy new servers to the board. See :ref:`how to upgrade detector servers<Detector Server Upgrade>` for more detals. A reboot should have started the new linked servers automatically. For Eiger, do not reboot yet as we need to program the firmware via bit files.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Option 1: from detector console
|
||||
# kill old server
|
||||
ssh root@bebxxx
|
||||
killall eigerDetectorServer
|
||||
|
||||
# copy new server
|
||||
cd executables
|
||||
scp user@pc:/path/eigerDetectorServerxxx .
|
||||
chmod 777 eigerDetectorServerxxx
|
||||
ln -sf eigerDetectorServerxxx eigerDetectorServer
|
||||
sync
|
||||
|
||||
# Options 2: from client console for multiple modules
|
||||
for i in bebxxx bebyyy;
|
||||
do ssh root@$i killall eigerDetectorServer;
|
||||
scp eigerDetectorServerxxx root@$i:~/executables/eigerDetectorServer;
|
||||
ssh root@$i sync; done
|
||||
|
||||
|
||||
* This is crucial when registers between firmwares change. Failure to do so will result in linux on boards to crash and boards can't be pinged anymore.
|
||||
* This step is crucial when registers between firmwares change. Failure to do so will result in linux on boards to crash and boards can't be pinged anymore.
|
||||
|
||||
#. Bring the board into programmable mode using either of the 2 ways. Both methods result in only the central LED blinking.
|
||||
|
||||
@ -50,8 +27,13 @@ Upgrade
|
||||
Do a hard reset for each half module on back panel boards, between the LEDs, closer to each of the 1G ethernet connectors. Push until all LEDs start to blink.
|
||||
|
||||
* Software:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Option 1: if the old server is still running:
|
||||
sls_detector_put execcommand "./boot_recovery"
|
||||
|
||||
# Option 2:
|
||||
ssh root@bebxxx
|
||||
cd executables
|
||||
./boot_recovery
|
||||
@ -79,11 +61,24 @@ Upgrade
|
||||
#update front right fpga
|
||||
bcp download.bit bebxxx:/febr
|
||||
|
||||
#update kernel (only if required by the SLS Detector Group)
|
||||
#update kernel (only if required by us)
|
||||
bcp download.bit bebxxx:/kernel
|
||||
|
||||
#. Reboot the detector.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# In the first terminal where we saw "Succeess"
|
||||
# reconfig febX is necessary only if you have flashed a new feb firmware
|
||||
reconfig febl
|
||||
reconfig febr
|
||||
# will reboot controller
|
||||
reconfig fw0
|
||||
|
||||
.. note ::
|
||||
|
||||
If the detector servers did not start up automatically after reboot, you need to add scripts to do that. See :ref:`Automatic start<Automatic start servers>` for more details.
|
||||
|
||||
Jungfrau
|
||||
-------------
|
||||
|
||||
@ -94,75 +89,26 @@ Download
|
||||
- `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
|
||||
|
||||
|
||||
Upgrade (from v4.x.x)
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
Upgrade
|
||||
^^^^^^^^
|
||||
|
||||
Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware.
|
||||
.. note ::
|
||||
|
||||
#. Tftp must be installed on pc.
|
||||
These instructions are for upgrades from v5.0.0. For earlier versions, contact us.
|
||||
|
||||
#. Update client package to the latest (5.x.x).
|
||||
|
||||
#. Disable server respawning or kill old server
|
||||
.. code-block:: bash
|
||||
|
||||
# Option 1: if respawning enabled
|
||||
telnet bchipxxx
|
||||
# edit /etc/inittab
|
||||
# comment out line #ttyS0::respawn:/jungfrauDetectorServervxxx
|
||||
reboot
|
||||
# ensure servers did not start up after reboot
|
||||
telnet bchipxxx
|
||||
ps
|
||||
|
||||
# Option 2: if respawning already disabled
|
||||
telnet bchipxxx
|
||||
killall jungfrauDetectorServerv*
|
||||
|
||||
#. Copy new server and start in update mode
|
||||
.. code-block:: bash
|
||||
|
||||
tftp pcxxx -r jungfrauDetectorServervxxx -g
|
||||
chmod 777 jungfrauDetectorServervxxx
|
||||
./jungfrauDetectorServervxxx -u
|
||||
|
||||
#. Program fpga from the client console
|
||||
.. code-block:: bash
|
||||
|
||||
sls_detector_get free
|
||||
# Crucial that the next command executes without any errors
|
||||
sls_detector_put hostname bchipxxx
|
||||
sls_detector_put programfpga xxx.pof
|
||||
|
||||
#. After programming, kill 'update server' using Ctrl + C in server console.
|
||||
|
||||
#. Enable server respawning if needed
|
||||
.. code-block:: bash
|
||||
|
||||
telnet bchipxxx
|
||||
# edit /etc/inittab
|
||||
# uncomment out line #ttyS0::respawn:/jungfrauDetectorServervxxx
|
||||
# ensure the line has the new server name
|
||||
reboot
|
||||
# ensure both servers are running using ps
|
||||
jungfrauDetectorServervxxx
|
||||
jungfrauDetectorServervxxx --stop-server 1953
|
||||
|
||||
|
||||
Upgrade (from v5.0.0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware.
|
||||
|
||||
Always ensure that the client and server software are of the same release.
|
||||
|
||||
|
||||
#. Program from console
|
||||
Program from console
|
||||
.. code-block:: bash
|
||||
|
||||
# copies server from tftp folder of pc, programs fpga,
|
||||
# removes old server from respawn, sets up new server to respawn
|
||||
# and reboots
|
||||
# copies server from tftp folder of pc, links new server to jungfrauDetectorServer,
|
||||
# removes old server from respawn, sets up new lnked server to respawn
|
||||
# programs fpga,
|
||||
# reboots
|
||||
sls_detector_put update jungfrauDetectorServervxxx pcxxx xx.pof
|
||||
|
||||
# Or only program firmware
|
||||
@ -170,8 +116,8 @@ Always ensure that the client and server software are of the same release.
|
||||
|
||||
|
||||
|
||||
Gotthard
|
||||
---------
|
||||
Gotthard I
|
||||
-----------
|
||||
|
||||
Download
|
||||
^^^^^^^^^^^^^
|
||||
@ -186,7 +132,7 @@ Upgrade
|
||||
^^^^^^^^
|
||||
.. warning ::
|
||||
| Gotthard firmware cannot be upgraded remotely and requires the use of USB-Blaster.
|
||||
| It is generally updated by the SLS Detector group.
|
||||
| It is generally updated by us.
|
||||
|
||||
#. Download `Altera Quartus software or Quartus programmer <https://fpgasoftware.intel.com/20.1/?edition=standard&platform=linux&product=qprogrammer#tabs-4>`__.
|
||||
|
||||
@ -197,7 +143,7 @@ Upgrade
|
||||
|
||||
#. Plug the end of your USB-Blaster with the adaptor provided to the connector 'AS config' on the Gotthard board.
|
||||
|
||||
#. Click on 'Add file'. Select programming (pof) file provided by the SLS Detector group.
|
||||
#. Click on 'Add file'. Select programming (pof) file provided by us.
|
||||
|
||||
#. Check "Program/Configure" and "Verify". Push the start button. Wait until the programming process is finished.
|
||||
|
||||
@ -206,68 +152,69 @@ Upgrade
|
||||
#. Reboot the detector.
|
||||
|
||||
|
||||
Mythen3
|
||||
-------
|
||||
Mythen III
|
||||
-----------
|
||||
|
||||
.. note ::
|
||||
|
||||
As it is still in developement, the rbf files must be picked up from the SLS Detector Group.
|
||||
As it is still in development, the rbf files must be picked up from us.
|
||||
|
||||
Download
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
- detector server corresponding to package in slsDetectorPackage/serverBin
|
||||
|
||||
- rbf files (in developement)
|
||||
- `rbf files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
|
||||
|
||||
|
||||
Upgrade (from v5.0.0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Upgrade
|
||||
^^^^^^^^
|
||||
|
||||
Always ensure that the client and server software are of the same release.
|
||||
|
||||
#. Program from console
|
||||
Program from console
|
||||
.. code-block:: bash
|
||||
|
||||
# copies server from tftp folder of pc, programs fpga,
|
||||
# and reboots (new server not respawned currently)
|
||||
# copies server from tftp folder of pc, links new server to mythen3DetectorServer,
|
||||
# programs fpga,
|
||||
# reboots
|
||||
sls_detector_put update mythen3DetectorServervxxx pcxxx xxx.rbf
|
||||
|
||||
# Or only program firmware
|
||||
sls_detector_put programfpga xxx.rbf
|
||||
|
||||
|
||||
|
||||
Gotthard2
|
||||
-------------
|
||||
|
||||
.. note ::
|
||||
|
||||
As it is still in developement, the rbf files must be picked up from the SLS Detector Group.
|
||||
If the detector servers did not start up automatically after reboot, you need to add scripts to do that. See :ref:`Automatic start<Automatic start servers>` for more details.
|
||||
|
||||
Gotthard II
|
||||
-------------
|
||||
|
||||
Download
|
||||
^^^^^^^^^^^^^
|
||||
- detector server corresponding to package in slsDetectorPackage/serverBin
|
||||
|
||||
- rbf files (in development)
|
||||
- `rbf files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
|
||||
|
||||
|
||||
Upgrade (from v5.0.0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Upgrade
|
||||
^^^^^^^^
|
||||
|
||||
Always ensure that the client and server software are of the same release.
|
||||
|
||||
#. Program from console
|
||||
Program from console
|
||||
.. code-block:: bash
|
||||
|
||||
# copies server from tftp folder of pc, programs fpga,
|
||||
# and reboots (new server not respawned currently)
|
||||
# copies server from tftp folder of pc, links new server to gotthard2DetectorServer,
|
||||
# programs fpga,
|
||||
# reboots
|
||||
sls_detector_put update gotthard2DetectorServervxxx pcxxx xxx.rbf
|
||||
|
||||
# Or only program firmware
|
||||
sls_detector_put programfpga xxx.rbf
|
||||
|
||||
.. note ::
|
||||
|
||||
If the detector servers did not start up automatically after reboot, you need to add scripts to do that. See :ref:`Automatic start<Automatic start servers>` for more details.
|
||||
|
||||
Moench
|
||||
-------
|
||||
@ -279,19 +226,21 @@ Download
|
||||
- `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
|
||||
|
||||
|
||||
Upgrade (from v5.0.0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Upgrade
|
||||
^^^^^^^^
|
||||
|
||||
Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware.
|
||||
|
||||
Always ensure that the client and server software are of the same release.
|
||||
|
||||
#. Program from console
|
||||
Program from console
|
||||
.. code-block:: bash
|
||||
|
||||
# copies server from tftp folder of pc, programs fpga,
|
||||
# removes old server from respawn, sets up new server to respawn
|
||||
# and reboots
|
||||
# copies server from tftp folder of pc, links new server to moenchDetectorServer,
|
||||
# removes old server from respawn, sets up new lnked server to respawn
|
||||
# programs fpga,
|
||||
# reboots
|
||||
sls_detector_put update moenchDetectorServervxxx pcxxx xx.pof
|
||||
|
||||
# Or only program firmware
|
||||
@ -307,19 +256,21 @@ Download
|
||||
- `pof files <https://github.com/slsdetectorgroup/slsDetectorFirmware>`__
|
||||
|
||||
|
||||
Upgrade (from v5.0.0)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Upgrade
|
||||
^^^^^^^^
|
||||
|
||||
Check :ref:`firmware troubleshooting <blackfin firmware troubleshooting>` if you run into issues while programming firmware.
|
||||
|
||||
Always ensure that the client and server software are of the same release.
|
||||
|
||||
#. Program from console
|
||||
Program from console
|
||||
.. code-block:: bash
|
||||
|
||||
# copies server from tftp folder of pc, programs fpga,
|
||||
# removes old server from respawn, sets up new server to respawn
|
||||
# and reboots
|
||||
# copies server from tftp folder of pc, links new server to ctbDetectorServer,
|
||||
# removes old server from respawn, sets up new lnked server to respawn
|
||||
# programs fpga,
|
||||
# reboots
|
||||
sls_detector_put update ctbDetectorServervxxx pcxxx xx.pof
|
||||
|
||||
# Or only program firmware
|
||||
@ -354,42 +305,52 @@ Firmware Troubleshooting with blackfin
|
||||
|
||||
5. If one can't list it, read the next section to try to get the blackfin to list it.
|
||||
|
||||
How to get back mtd3 drive remotely (copying new kernel)
|
||||
How to get back mtd3 drive remotely (udpating kernel)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
You have 2 alternatives to update the kernel.
|
||||
|
||||
.. code-block:: bash
|
||||
1. Commands via software (>= v6.0.0)
|
||||
|
||||
# step 1: get the kernel image (uImage.lzma) from slsdetectorgroup
|
||||
# and copy it to pc's tftp folder
|
||||
.. code-block:: bash
|
||||
|
||||
# step 2: connect to the board
|
||||
telnet bchipxxx
|
||||
sls_detector_put updatekernel /home/...path-to-kernel-image
|
||||
|
||||
#step 3: go to directory for space
|
||||
cd /var/tmp/
|
||||
|
||||
# step 3: copy kernel to board
|
||||
tftp pcxxx -r uImage.lzma -g
|
||||
2. or command line
|
||||
|
||||
# step 4: verify kernel copied properly
|
||||
ls -lrt
|
||||
.. code-block:: bash
|
||||
|
||||
# step 5: erase flash
|
||||
flash_eraseall /dev/mtd1
|
||||
# step 1: get the kernel image (uImage.lzma) from slsdetectorgroup
|
||||
# and copy it to pc's tftp folder
|
||||
|
||||
# step 6: copy new image to kernel drive
|
||||
cat uImage.lzma > /dev/mtd1
|
||||
# step 2: connect to the board
|
||||
telnet bchipxxx
|
||||
|
||||
# step 7:
|
||||
sync
|
||||
#step 3: go to directory for space
|
||||
cd /var/tmp/
|
||||
|
||||
# step 8:
|
||||
reboot
|
||||
# step 3: copy kernel to board
|
||||
tftp pcxxx -r uImage.lzma -g
|
||||
|
||||
# step 9: verification
|
||||
telnet bchipxxx
|
||||
uname -a # verify kernel date
|
||||
more /proc/mtd # verify mtd3 is listed
|
||||
# step 4: verify kernel copied properly
|
||||
ls -lrt
|
||||
|
||||
# step 5: erase flash
|
||||
flash_eraseall /dev/mtd1
|
||||
|
||||
# step 6: copy new image to kernel drive
|
||||
cat uImage.lzma > /dev/mtd1
|
||||
|
||||
# step 7:
|
||||
sync
|
||||
|
||||
# step 8:
|
||||
reboot
|
||||
|
||||
# step 9: verification
|
||||
telnet bchipxxx
|
||||
uname -a # verify kernel date
|
||||
more /proc/mtd # verify mtd3 is listed
|
||||
|
||||
|
||||
Last Resort using USB Blaster
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
/**
|
||||
* Utility program to generate input files for the command line
|
||||
* documentation. Uses the string returned from sls_detector_help cmd
|
||||
|
@ -72,3 +72,18 @@ exposed to Python through pybind11.
|
||||
|
||||
.. autoclass:: timingSourceType
|
||||
:undoc-members:
|
||||
|
||||
.. autoclass:: M3_GainCaps
|
||||
:undoc-members:
|
||||
|
||||
.. autoclass:: portPosition
|
||||
:undoc-members:
|
||||
|
||||
.. autoclass:: streamingInterface
|
||||
:undoc-members:
|
||||
|
||||
.. autoclass:: vetoAlgorithm
|
||||
:undoc-members:
|
||||
|
||||
.. autoclass:: gainMode
|
||||
:undoc-members:
|
@ -36,6 +36,7 @@ Detector Servers include:
|
||||
When using a blocking acquire command (sls_detector_acquire or Detector::acquire), the control server is blocked until end of acquisition. However, stop server commands could be used in parallel.
|
||||
|
||||
|
||||
.. _Automatic start servers:
|
||||
Automatic start
|
||||
------------------
|
||||
|
||||
|
@ -1,114 +1,44 @@
|
||||
.. _Detector Server Upgrade:
|
||||
Detector Server Upgrade
|
||||
=======================
|
||||
|
||||
|
||||
|
||||
Eiger
|
||||
-------------
|
||||
|
||||
|
||||
**Location:** slsDetectorPackage/serverBin/ folder for every release.
|
||||
|
||||
|
||||
#. Kill old server and copy new server
|
||||
.. code-block:: bash
|
||||
|
||||
# Option 1: from detector console
|
||||
# kill old server
|
||||
ssh root@bebxxx
|
||||
killall eigerDetectorServer
|
||||
|
||||
# copy new server
|
||||
cd executables
|
||||
scp user@pc:/path/eigerDetectorServerxxx .
|
||||
chmod 777 eigerDetectorServerxxx
|
||||
ln -sf eigerDetectorServerxxx eigerDetectorServer
|
||||
sync
|
||||
|
||||
# Options 2: from client console for multiple modules
|
||||
for i in bebxxx bebyyy;
|
||||
do ssh root@$i killall eigerDetectorServer;
|
||||
scp eigerDetectorServerxxx root@$i:~/executables/eigerDetectorServer;
|
||||
ssh root@$i sync; done
|
||||
|
||||
|
||||
#. Reboot the detector.
|
||||
|
||||
|
||||
Jungfrau
|
||||
-------------
|
||||
|
||||
**Location:** slsDetectorPackage/serverBin/ folder for every release.
|
||||
|
||||
#. Install tftp and copy detector server binary to tftp folder
|
||||
#. Program from console (only from 5.0.0-rcx)
|
||||
#. Program from console
|
||||
|
||||
.. note ::
|
||||
|
||||
These instructions are for upgrades from v5.0.0. For earlier versions, contact us.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# copies new server from pc tftp folder, respawns and reboots
|
||||
sls_detector_put copydetectorserver jungfrauDetectorServerxxx pcxxx
|
||||
# copies new server from pc tftp folder, creates a soft link to xxxDetectorServerxxx
|
||||
# [Jungfrau][CTB][Moench] also edits initttab to respawn server on reboot
|
||||
# Then, the detector controller will reboot (except Eiger)
|
||||
sls_detector_put copydetectorserver xxxDetectorServerxxx pcxxx
|
||||
|
||||
#. Copy the detector server specific config files or any others required to the detector:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sls_detector_put execcommand "tftp pcxxx -r configxxx -g"
|
||||
|
||||
|
||||
Gotthard
|
||||
---------
|
||||
.. note ::
|
||||
|
||||
**Location:** slsDetectorPackage/serverBin/ folder for every release.
|
||||
For Mythen3, Gotthard2 and Eiger, you need to add scripts to automatically start detector server upon power on. See :ref:`Automatic start<Automatic start servers>` for more details.
|
||||
|
||||
#. Install tftp and copy detector server binary to tftp folder
|
||||
#. Program from console (only from 5.0.0-rcx)
|
||||
.. code-block:: bash
|
||||
.. note ::
|
||||
|
||||
# copies new server from pc tftp folder, respawns and reboots
|
||||
sls_detector_put copydetectorserver gotthardDetectorServerxxx pcxxx
|
||||
Eiger requires a manual reboot. Or killall the servers and restart the new linked one. If you are in the process of updating firmware, then don't reboot yet.
|
||||
|
||||
|
||||
|
||||
Mythen3
|
||||
-------
|
||||
|
||||
**Location:** slsDetectorPackage/serverBin/ folder for every release.
|
||||
|
||||
#. Install tftp and copy detector server binary to tftp folder
|
||||
#. Program from console (only from 5.0.0-rcx)
|
||||
.. code-block:: bash
|
||||
|
||||
# copies new server from pc tftp folder and reboots (does not respawn)
|
||||
sls_detector_put copydetectorserver mythen3DetectorServerxxx pcxxx
|
||||
|
||||
|
||||
Gotthard2
|
||||
----------
|
||||
|
||||
**Location:** slsDetectorPackage/serverBin/ folder for every release.
|
||||
|
||||
#. Install tftp and copy detector server binary to tftp folder
|
||||
#. Program from console (only from 5.0.0-rcx)
|
||||
.. code-block:: bash
|
||||
|
||||
# copies new server from pc tftp folder and reboots (does not respawn)
|
||||
sls_detector_put copydetectorserver gotthard2DetectorServerxxx pcxxx
|
||||
|
||||
|
||||
Moench
|
||||
Errors
|
||||
------
|
||||
|
||||
**Location:** slsDetectorPackage/serverBin/ folder for every release.
|
||||
#. tftp write error: There is no space left. Please delete some old binaries and try again.
|
||||
|
||||
#. Install tftp and copy detector server binary to tftp folder
|
||||
#. Program from console (only from 5.0.0-rcx)
|
||||
.. code-block:: bash
|
||||
|
||||
# copies new server from pc tftp folder, respawns and reboots
|
||||
sls_detector_put copydetectorserver moenchDetectorServerxxx pcxxx
|
||||
|
||||
|
||||
Ctb
|
||||
---
|
||||
|
||||
**Location:** slsDetectorPackage/serverBin/ folder for every release.
|
||||
|
||||
#. Install tftp and copy detector server binary to tftp folder
|
||||
#. Program from console (only from 5.0.0-rcx)
|
||||
.. code-block:: bash
|
||||
|
||||
# copies new server from pc tftp folder, respawns and reboots
|
||||
sls_detector_put copydetectorserver ctbDetectorServerxxx pcxxx
|
||||
#. text file busy: You are trying to copy the same server.
|
@ -247,6 +247,19 @@ Possible causes could be the following:
|
||||
* For Jungfrau, refer to :ref:`Jungfrau Power Supply Troubleshooting<Jungfrau Troubleshooting Power Supply>`.
|
||||
|
||||
|
||||
Cannot ping module (Nios)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
If you executed "reboot" command on the board, you cannot ping it anymore unless you power cycle. To reboot the controller, please use the software command ("rebootcontroller"), which talks to the microcontroller.
|
||||
|
||||
Gotthard2
|
||||
---------
|
||||
|
||||
Cannot get data without a module attached
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
You cannot get data without a module attached as a specific pin is floating. Attach module to get data.
|
||||
|
||||
|
||||
Gotthard
|
||||
----------
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
GITREPO1='git remote -v'
|
||||
GITREPO2=" | grep \"fetch\" | cut -d' ' -f1"
|
||||
BRANCH1='git branch -v'
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#####! /bin/awk -f
|
||||
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
# MESSAGE( STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||
# MESSAGE( STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR} )
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#include "DetectorImpl.h"
|
||||
#include "catch.hpp"
|
||||
#include "sls/string_utils.h"
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
#include "catch.hpp"
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#include "DetectorImpl.h"
|
||||
#include "catch.hpp"
|
||||
#include "sls/string_utils.h"
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
// tests-main.cpp
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include "catch.hpp"
|
@ -1,16 +0,0 @@
|
||||
Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
This file is part of the SLS Detecotor Package.
|
||||
|
||||
SLS Detecotor Package is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
SLS Detecotor Package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with SLS Detecotor Package. If not, see <https://www.gnu.org/licenses/>.
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
pybind11_add_module(_slsdet
|
||||
src/main.cpp
|
||||
|
@ -1,63 +0,0 @@
|
||||
# sls_detector: Python interface to slsDetectorPackage
|
||||
Python interface to the Sls Detector Software.
|
||||
|
||||
### Documentation ###
|
||||
Sphinx built documentation is available here:
|
||||
[https://slsdetectorgroup.github.io/sls_detector/](https://slsdetectorgroup.github.io/sls_detector/)
|
||||
|
||||
|
||||
### Install using conda ###
|
||||
|
||||
Binaries are available using conda. This installs both the detector software and the Python
|
||||
interface.
|
||||
|
||||
```bash
|
||||
#Add conda channels
|
||||
conda config --add channels conda-forge
|
||||
conda config --add channels slsdetectorgroup
|
||||
|
||||
#Install latest version
|
||||
conda install sls_detector
|
||||
|
||||
#Install specific version
|
||||
conda install sls_detector=3.0.1
|
||||
|
||||
#Scientific Linux 6 version (GLIBC2.12)
|
||||
conda install sls_detector=SL6_3.0.1
|
||||
```
|
||||
|
||||
### Building using conda-build ###
|
||||
|
||||
Needs [sls_detector_software](https://github.com/slsdetectorgroup/sls_detector_software) installed.
|
||||
|
||||
```bash
|
||||
#Clone source code
|
||||
git clone https://github.com/slsdetectorgroup/sls_detector.git
|
||||
|
||||
#Checkout the branch needed
|
||||
git checkout 3.0.1
|
||||
|
||||
#Build and install the local version
|
||||
conda-build sls_detector
|
||||
conda install --use-local sls_detector
|
||||
|
||||
|
||||
```
|
||||
### Developer build ###
|
||||
|
||||
IF you if you are developing and are making constant changes to the code it's a bit cumbersome
|
||||
to build with conda and install. Then an easier way is to build the C/C++ parts in the package
|
||||
directory and temporary add this to the path
|
||||
|
||||
```bash
|
||||
#in path/to/sls_detector
|
||||
python setup.py build_ext --inplace
|
||||
```
|
||||
Then in your Python script
|
||||
```python
|
||||
|
||||
import sys
|
||||
sys.path.append('/path/to/sls_detector')
|
||||
from sls_detector import Detector
|
||||
```
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
"""
|
||||
Example showing how to set and get exposure times
|
||||
"""
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
|
||||
from slsdet import Detector, patternParameters
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
import time
|
||||
from multiprocessing import Process
|
||||
from slsdet import Detector, runStatus
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
import time
|
||||
from slsdet import Detector, runStatus
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
from slsdet import Detector, Eiger, dacIndex
|
||||
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
from slsdet import Detector, Eiger, dacIndex
|
||||
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
from slsdet import Eiger
|
||||
|
||||
d = Eiger()
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
from slsdet import Detector, currentSrcParameters
|
||||
|
||||
s = currentSrcParameters()
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
# Most settings are represented as enums that can be
|
||||
# explicitly imported
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
|
||||
from slsdet import Mythen3, scanParameters, dacIndex
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
import os
|
||||
import sys
|
||||
import numpy as np
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
import subprocess
|
||||
import locale
|
||||
out = subprocess.run(['g', 'list'], stdout = subprocess.PIPE, encoding=locale.getpreferredencoding())
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
import subprocess
|
||||
import os
|
||||
import sys
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
"""
|
||||
Code generator for enum bindings in the Python extension.
|
||||
Reads the sls_detector_defs.h and enums_in.cpp then outputs
|
||||
@ -14,8 +16,8 @@ from parse import remove_comments
|
||||
allow_bitwise_op = ["M3_GainCaps"]
|
||||
allow_bitwise_op = ["streamingInterface"]
|
||||
|
||||
op_key = {"operator|": "__or__",
|
||||
"operator&" : "__and__"}
|
||||
op_key = {"operator|": "|",
|
||||
"operator&" : "&"}
|
||||
|
||||
def single_line_enum(line):
|
||||
sub = line[line.find('{')+1:line.find('}')]
|
||||
@ -90,8 +92,7 @@ def generate_enum_string(enums):
|
||||
|
||||
#Here add the operators
|
||||
for op in operators:
|
||||
data.append(f"\n\t.def(\"{op_key[op]}\", py::overload_cast< const slsDetectorDefs::streamingInterface&, const slsDetectorDefs::streamingInterface&>(&{op}))")
|
||||
|
||||
data.append(f"\n\t.def(py::self {op_key[op]} slsDetectorDefs::{key}())")
|
||||
|
||||
data.append(';\n\n')
|
||||
return ''.join(data)
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
"""
|
||||
This file is used to auto generate Python bindings for the
|
||||
sls::Detector class. The tool needs the libclang bindings
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
"""
|
||||
Utility to find and list which command line functions have tests and
|
||||
where the tests are located
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
import re
|
||||
import subprocess
|
||||
from subprocess import PIPE
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
import pytest
|
||||
import subprocess
|
||||
import os
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
"""
|
||||
Setup file for slsdet
|
||||
Build upon the pybind11 example found here: https://github.com/pybind/python_example
|
||||
@ -25,6 +27,7 @@ ext_modules = [
|
||||
Pybind11Extension(
|
||||
'_slsdet',
|
||||
['src/main.cpp',
|
||||
'src/current.cpp',
|
||||
'src/enums.cpp',
|
||||
'src/detector.cpp',
|
||||
'src/network.cpp',
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
# from .detector import Detector, DetectorError, free_shared_memory
|
||||
from .eiger import Eiger
|
||||
from .ctb import Ctb
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
from functools import partial
|
||||
class Adc:
|
||||
def __init__(self, name, enum, detector):
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
from .detector import Detector
|
||||
from .utils import element_if_equal
|
||||
from .dacs import DetectorDacs
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
from .detector_property import DetectorProperty
|
||||
from functools import partial
|
||||
import numpy as np
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
from collections.abc import Iterable
|
||||
import numpy as np
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
"""
|
||||
Automatically improt all enums from slsDetectorDefs and give an
|
||||
alias with their name in the enum module. All names from the enum
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
from .detector import Detector
|
||||
|
||||
def view(name, det = Detector):
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
import _slsdet
|
||||
|
||||
from _slsdet import Pattern
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
from .utils import element_if_equal
|
||||
from .enums import dacIndex
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
class Register:
|
||||
def __init__(self, detector):
|
||||
self._detector = detector
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
from functools import partial
|
||||
from collections.abc import Iterable
|
||||
import numpy as np
|
||||
|
@ -1,3 +1,5 @@
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
# Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
"""
|
||||
Utility functions that are useful for testing and troubleshooting
|
||||
but not directly used in controlling the detector
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
#include <pybind11/chrono.h>
|
||||
#include <pybind11/numpy.h>
|
||||
#include <pybind11/operators.h>
|
||||
|
@ -1,3 +1,5 @@
|
||||
// SPDX-License-Identifier: LGPL-3.0-or-other
|
||||
// Copyright (C) 2021 Contributors to the SLS Detector Package
|
||||
/* WARINING This file is auto generated any edits might be overwritten without
|
||||
* warning */
|
||||
|
||||
@ -65,6 +67,10 @@ void init_det(py::module &m) {
|
||||
(Result<int64_t>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getDetectorServerVersion,
|
||||
py::arg() = Positions{})
|
||||
.def("getKernelVersion",
|
||||
(Result<std::string>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getKernelVersion,
|
||||
py::arg() = Positions{})
|
||||
.def("getSerialNumber",
|
||||
(Result<int64_t>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getSerialNumber,
|
||||
@ -1070,13 +1076,13 @@ void init_det(py::module &m) {
|
||||
(void (Detector::*)(const defs::gainMode, sls::Positions)) &
|
||||
Detector::setGainMode,
|
||||
py::arg(), py::arg() = Positions{})
|
||||
.def("getFilterCell",
|
||||
.def("getNumberOfFilterCells",
|
||||
(Result<int>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getFilterCell,
|
||||
Detector::getNumberOfFilterCells,
|
||||
py::arg() = Positions{})
|
||||
.def("setFilterCell",
|
||||
.def("setNumberOfFilterCells",
|
||||
(void (Detector::*)(int, sls::Positions)) &
|
||||
Detector::setFilterCell,
|
||||
Detector::setNumberOfFilterCells,
|
||||
py::arg(), py::arg() = Positions{})
|
||||
.def("getROI",
|
||||
(Result<defs::ROI>(Detector::*)(sls::Positions) const) &
|
||||
@ -1515,6 +1521,14 @@ void init_det(py::module &m) {
|
||||
sls::Positions)) &
|
||||
Detector::copyDetectorServer,
|
||||
py::arg(), py::arg(), py::arg() = Positions{})
|
||||
.def("updateDetectorServer",
|
||||
(void (Detector::*)(const std::string &, sls::Positions)) &
|
||||
Detector::updateDetectorServer,
|
||||
py::arg(), py::arg() = Positions{})
|
||||
.def("updateKernel",
|
||||
(void (Detector::*)(const std::string &, sls::Positions)) &
|
||||
Detector::updateKernel,
|
||||
py::arg(), py::arg() = Positions{})
|
||||
.def("rebootController",
|
||||
(void (Detector::*)(sls::Positions)) & Detector::rebootController,
|
||||
py::arg() = Positions{})
|
||||
@ -1523,6 +1537,19 @@ void init_det(py::module &m) {
|
||||
const std::string &, sls::Positions)) &
|
||||
Detector::updateFirmwareAndServer,
|
||||
py::arg(), py::arg(), py::arg(), py::arg() = Positions{})
|
||||
.def("updateFirmwareAndServer",
|
||||
(void (Detector::*)(const std::string &, const std::string &,
|
||||
sls::Positions)) &
|
||||
Detector::updateFirmwareAndServer,
|
||||
py::arg(), py::arg(), py::arg() = Positions{})
|
||||
.def("getUpdateMode",
|
||||
(Result<bool>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getUpdateMode,
|
||||
py::arg() = Positions{})
|
||||
.def("setUpdateMode",
|
||||
(void (Detector::*)(bool, sls::Positions)) &
|
||||
Detector::setUpdateMode,
|
||||
py::arg(), py::arg() = Positions{})
|
||||
.def("readRegister",
|
||||
(Result<uint32_t>(Detector::*)(uint32_t, sls::Positions) const) &
|
||||
Detector::readRegister,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user