Compare commits
86 Commits
split-list
...
3.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
| 6126780660 | |||
| 9b7f9b1be1 | |||
| 26c829d766 | |||
| 3fde5c5b55 | |||
| 3e5f546ebe | |||
| 9833a7d330 | |||
| 8f9155e578 | |||
| 9df1eac3c1 | |||
| 5ededf9be4 | |||
| 3e8774798a | |||
|
|
834794ad98 | ||
|
|
56c504abbb | ||
|
|
4d6346e678 | ||
|
|
dc7e448759 | ||
|
|
e658cbacda | ||
|
|
1e6c6dea71 | ||
|
|
0e5d4d1d8e | ||
|
|
a2986784d3 | ||
|
|
975cbb576e | ||
|
|
e48a92d9cd | ||
|
|
befdcf7f36 | ||
|
|
02f5c472a8 | ||
|
|
75ed2cd2e4 | ||
|
|
3be045f9b6 | ||
|
|
8fae982802 | ||
|
|
128ec88b5f | ||
|
|
d5fc158330 | ||
|
|
864e6e4c81 | ||
|
|
343d96ff16 | ||
|
|
4142328437 | ||
|
|
6c797988c7 | ||
|
|
215c262981 | ||
|
|
081b809078 | ||
|
|
9263567cd8 | ||
|
|
58e90a85be | ||
|
|
025c836e25 | ||
|
|
5d5abae3f4 | ||
|
|
e2ad46386e | ||
|
|
308d44e452 | ||
|
|
69da61b1fb | ||
|
|
460168ce04 | ||
|
|
4e429c0d77 | ||
|
|
bf4fab549d | ||
|
|
f7705eb1da | ||
|
|
a2217e2066 | ||
|
|
aaa02706fc | ||
|
|
6a80bc5b54 | ||
|
|
b9275646ad | ||
|
|
9e2f2697c7 | ||
|
|
b6b0df62b6 | ||
|
|
0ba537e479 | ||
|
|
75ddf535dc | ||
|
|
b1de501bef | ||
|
|
0f3a63f101 | ||
|
|
3b4b2d707f | ||
|
|
f405aa1733 | ||
|
|
df0fdb7ecb | ||
|
|
91b7a87557 | ||
|
|
9468b9ca1e | ||
|
|
d7982e178e | ||
|
|
9cf5714a5b | ||
|
|
0c9ac8911a | ||
|
|
4730c8c0a9 | ||
|
|
43efb8acfd | ||
|
|
6ecca8fcb0 | ||
|
|
17cb63a57f | ||
|
|
4f83fcb001 | ||
|
|
ab94af6d29 | ||
|
|
7c725cc69b | ||
|
|
f0198d2d2e | ||
|
|
5ddccbdee4 | ||
|
|
8fb39b8c7e | ||
|
|
bd5293f4b1 | ||
|
|
b91180f5b2 | ||
|
|
7c3b5065a5 | ||
|
|
9aef802bea | ||
|
|
f7d85231f2 | ||
|
|
5b3a911e8d | ||
|
|
65f5e1c1ab | ||
|
|
839896c7e6 | ||
|
|
4a7e246604 | ||
|
|
7f293115c4 | ||
|
|
f59f40a659 | ||
|
|
64fd82f92c | ||
|
|
cd232fd732 | ||
|
|
172fa66b1f |
@@ -1,6 +0,0 @@
|
||||
BasedOnStyle: LLVM
|
||||
IndentWidth: 4
|
||||
|
||||
UseTab: Never
|
||||
ColumnLimit: 100
|
||||
AlignConsecutiveAssignments: false
|
||||
@@ -1,7 +0,0 @@
|
||||
---
|
||||
Checks: '*, -google-runtime-references, -hicpp-no-array-decay, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, -cppcoreguidelines-pro-bounds-pointer-arithmetic, -fuchsia*,-readability-else-after-return,-readability-avoid-const-params-in-decls,-hicpp-signed-bitwise,-cppcoreguidelines-pro-bounds-constant-array-index,-llvm-header-guard,-readability-static-accessed-through-instance,-google-readability-todo'
|
||||
WarningsAsErrors: '*'
|
||||
HeaderFilterRegex: '.*'
|
||||
AnalyzeTemporaryDtors: false
|
||||
FormatStyle: none
|
||||
...
|
||||
6
.gitignore
vendored
@@ -6,12 +6,6 @@ bin/
|
||||
*.log
|
||||
*.out
|
||||
*.toc
|
||||
*.o
|
||||
build
|
||||
docs/
|
||||
RELEASE.txt
|
||||
|
||||
|
||||
*.pyc
|
||||
*/__pycache__/*
|
||||
|
||||
|
||||
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
||||
[submodule "python/pybind11"]
|
||||
path = python/pybind11
|
||||
url = https://github.com/pybind/pybind11.git
|
||||
48
.travis.yml
@@ -1,48 +0,0 @@
|
||||
sudo: false
|
||||
|
||||
language: cpp
|
||||
|
||||
os: linux
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- CONDA_PY=3.6
|
||||
- CONDA_PY=3.7
|
||||
|
||||
|
||||
dist: trusty
|
||||
|
||||
install:
|
||||
- sudo apt-get update
|
||||
- ldd --version
|
||||
- wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
|
||||
- bash miniconda.sh -b -p $HOME/miniconda
|
||||
- export PATH="$HOME/miniconda/bin:$PATH"
|
||||
- rm -f miniconda.sh
|
||||
- hash -r
|
||||
- conda config --set always_yes yes --set changeps1 no
|
||||
- conda config --add channels conda-forge
|
||||
- conda config --add channels slsdetectorgroup
|
||||
- conda update conda
|
||||
- conda update --all
|
||||
- conda install conda-build anaconda-client
|
||||
|
||||
# Useful for debugging any issues with conda
|
||||
- conda info -a
|
||||
|
||||
|
||||
# Replace dep1 dep2 ... with your dependencies
|
||||
- conda create -q -n test-environment python=$CONDA_PY
|
||||
- source activate test-environment
|
||||
- conda-build .
|
||||
|
||||
script:
|
||||
- echo "No test scripts to be run!"
|
||||
|
||||
|
||||
deploy:
|
||||
provider: script
|
||||
script: find $HOME/miniconda/conda-bld/${TRAVIS_OS_NAME}-64 -name "*.tar.bz2" -exec anaconda -t $CONDA_TOKEN upload --force {} \;
|
||||
on:
|
||||
all_branches: true
|
||||
|
||||
154
CMakeLists.txt
@@ -1,134 +1,50 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
# cmake_minimum_required(VERSION 3.5)
|
||||
project(slsDetectorPackage)
|
||||
include(cmake/project_version.cmake)
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||
set (CALIBRATE OFF)
|
||||
|
||||
# Include additional modules that are used unconditionally
|
||||
include(GNUInstallDirs)
|
||||
option (USE_HDF5 "HDF5 File format" OFF)
|
||||
option (USE_TEXTCLIENT "Text Client" OFF)
|
||||
option (USE_RECEIVER "Receiver" OFF)
|
||||
option (USE_GUI "GUI" OFF)
|
||||
|
||||
# If conda build, always set lib dir to 'lib'
|
||||
if($ENV{CONDA_BUILD})
|
||||
set(CMAKE_INSTALL_LIBDIR "lib")
|
||||
endif()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-misleading-indentation")
|
||||
|
||||
# Set lower / upper case project names
|
||||
string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPPER)
|
||||
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
|
||||
|
||||
# Set targets export name (used by slsDetectorPackage and dependencies)
|
||||
set(TARGETS_EXPORT_NAME "${PROJECT_NAME_LOWER}-targets")
|
||||
#set(namespace "${PROJECT_NAME}::")
|
||||
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
||||
|
||||
|
||||
# Check if project is being used directly or via add_subdirectory
|
||||
set(SLS_MASTER_PROJECT OFF)
|
||||
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
||||
set(SLS_MASTER_PROJECT ON)
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
option (SLS_USE_HDF5 "HDF5 File format" OFF)
|
||||
option (SLS_USE_TEXTCLIENT "Text Client" OFF)
|
||||
option (SLS_USE_RECEIVER "Receiver High Level API" OFF)
|
||||
option (SLS_USE_LISTENER "Receiver Low Level API" OFF)
|
||||
option (SLS_USE_GUI "GUI" OFF)
|
||||
option (SLS_USE_TESTS "TESTS" ON)
|
||||
option (SLS_USE_INTEGRATION_TESTS "Integration Tests" ON)
|
||||
option(SLS_USE_SANITIZER "Sanitizers for debugging" OFF)
|
||||
option(SLS_USE_PYTHON "Python bindings" OFF)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
#Testing for minimum version for compilers
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
# clang does not support -Wno-misleading-indentation
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.2)
|
||||
message(FATAL_ERROR "Clang version must be at least 3.2!")
|
||||
endif()
|
||||
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()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-misleading-indentation -Wno-stringop-truncation -Wno-class-memaccess")
|
||||
endif()
|
||||
|
||||
# Suppressed warnings in GCC
|
||||
# -Wno-stringop-truncation happens when we do sls::strcpy_safe truncates string instead of overwrite buffer
|
||||
# -Wno-class-memaccess - on memcpy in rapidjson should be investigated upgrade implementation?
|
||||
# -Wno-misleading-indentation - until clang format
|
||||
|
||||
#set (CMAKE_CXX_STANDARD 11)
|
||||
#set (CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=c++11 ")
|
||||
|
||||
if(SLS_USE_SANITIZER)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address,undefined")
|
||||
set (CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address,undefiend")
|
||||
endif()
|
||||
find_package(Qt4)
|
||||
find_package(Qwt 6)
|
||||
find_package(CBF)
|
||||
find_package(Doxygen)
|
||||
find_package(PNG REQUIRED)
|
||||
|
||||
if (USE_HDF5)
|
||||
find_package(HDF5 1.10 COMPONENTS CXX)
|
||||
endif (USE_HDF5)
|
||||
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
set(CMAKE_INSTALL_RPATH "$ORIGIN")
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
|
||||
|
||||
if (USE_TEXTCLIENT)
|
||||
add_subdirectory(slsDetectorSoftware)
|
||||
endif (USE_TEXTCLIENT)
|
||||
|
||||
find_package(Doxygen)
|
||||
find_package(ZeroMQ 4 REQUIRED)
|
||||
if (USE_RECEIVER)
|
||||
add_subdirectory(slsReceiverSoftware)
|
||||
endif (USE_RECEIVER)
|
||||
|
||||
if (USE_GUI)
|
||||
if (QT4_FOUND AND QWT_FOUND)
|
||||
add_subdirectory(slsDetectorGui)
|
||||
endif()
|
||||
endif (USE_GUI)
|
||||
|
||||
|
||||
# Support library containing functionallity common to
|
||||
# detector and receiver
|
||||
add_subdirectory(slsSupportLib)
|
||||
|
||||
if (SLS_USE_TEXTCLIENT)
|
||||
add_subdirectory(slsDetectorSoftware)
|
||||
endif (SLS_USE_TEXTCLIENT)
|
||||
|
||||
# This logic could be moved in slsReceiverSoftware/CMakeLists.txt
|
||||
if (SLS_USE_RECEIVER)
|
||||
set(SLS_USE_LISTENER ON)
|
||||
if (SLS_USE_HDF5)
|
||||
find_package(HDF5 1.10 COMPONENTS CXX REQUIRED)
|
||||
endif (SLS_USE_HDF5)
|
||||
add_subdirectory(slsReceiverSoftware/slsReceiver)
|
||||
add_subdirectory(manual/manual-api)
|
||||
endif (SLS_USE_RECEIVER)
|
||||
|
||||
if (SLS_USE_LISTENER)
|
||||
add_subdirectory(slsReceiverSoftware/slsListener)
|
||||
endif (SLS_USE_LISTENER)
|
||||
|
||||
if (SLS_USE_GUI)
|
||||
find_package(Qt4 REQUIRED)
|
||||
find_package(Qwt 6 REQUIRED)
|
||||
if (QT4_FOUND AND QWT_FOUND)
|
||||
add_subdirectory(slsDetectorGui)
|
||||
if (CALIBRATE)
|
||||
if (DEFINED ENV{ROOTSYS})
|
||||
find_package(ROOT)
|
||||
if (ROOT_FOUND)
|
||||
add_subdirectory(calibrationWizards)
|
||||
endif()
|
||||
endif()
|
||||
endif (SLS_USE_GUI)
|
||||
|
||||
if (SLS_USE_TESTS)
|
||||
enable_testing()
|
||||
endif(SLS_USE_TESTS)
|
||||
|
||||
if (SLS_USE_INTEGRATION_TESTS)
|
||||
add_subdirectory(integrationTests)
|
||||
endif (SLS_USE_INTEGRATION_TESTS)
|
||||
|
||||
if (SLS_USE_PYTHON)
|
||||
add_subdirectory(python)
|
||||
endif(SLS_USE_PYTHON)
|
||||
|
||||
|
||||
if(SLS_MASTER_PROJECT)
|
||||
# Set install dir CMake packages
|
||||
set(CMAKE_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/cmake/sls)
|
||||
# Set the list of exported targets
|
||||
set(PROJECT_LIBRARIES slsSupportLib slsDetectorShared slsReceiverShared)
|
||||
# Generate and install package config file and version
|
||||
include(cmake/package_config.cmake)
|
||||
endif()
|
||||
|
||||
endif(CALIBRATE)
|
||||
|
||||
232
Makefile
Executable file
@@ -0,0 +1,232 @@
|
||||
# do not change below this line#
|
||||
|
||||
# Include common definitions
|
||||
include Makefile.include
|
||||
|
||||
INSTALLROOT ?= $(PWD)
|
||||
BINDIR ?= $(INSTALLROOT)/bin
|
||||
DOCDIR ?= $(INSTALLROOT)/manual/docs
|
||||
LIBDIR ?= $(INSTALLROOT)/bin
|
||||
INCDIR ?= $(INSTALLROOT)/include
|
||||
DETAILDOC ?= $(INSTALLROOT)/docs
|
||||
|
||||
WD = $(shell pwd)
|
||||
LIBRARYDIR = $(WD)/slsDetectorSoftware
|
||||
LIBRARYRXRDIR = $(WD)/slsReceiverSoftware
|
||||
CLIENTDIR = $(LIBRARYDIR)/slsDetectorClient
|
||||
GUIDIR = $(WD)/slsDetectorGui
|
||||
RECEIVERDIR = $(LIBRARYRXRDIR)
|
||||
CALWIZDIR = $(WD)/calibrationWizards
|
||||
MANDIR = $(WD)/manual
|
||||
CALIBDIR = $(WD)/slsDetectorCalibration
|
||||
|
||||
TABSPACE := "\t"
|
||||
|
||||
|
||||
INCLUDES=-I. -I$(LIBRARYDIR)/commonFiles -I$(LIBRARYDIR)/slsDetector -I$(LIBRARYDIR)/usersFunctions -I$(LIBRARYDIR)/multiSlsDetector -I$(LIBRARYDIR)/slsDetectorUtils -I$(LIBRARYDIR)/slsDetectorCommand -I$(LIBRARYDIR)/slsDetectorAnalysis -I$(LIBRARYDIR)/slsReceiverInterface -I$(LIBRARYRXRDIR)/include -I$(LIBRARYDIR)/threadFiles -I$(ASM)
|
||||
|
||||
INCLUDESRXR += -I. -I$(LIBRARYRXRDIR)/include -I$(CALIBDIR) -I$(ASM)
|
||||
#LIBFLAGRXR +=
|
||||
|
||||
$(info )
|
||||
$(info #######################################)
|
||||
$(info # In slsDetectorsPackage Makefile #)
|
||||
$(info #######################################)
|
||||
$(info )
|
||||
|
||||
|
||||
.PHONY: all nonstatic static lib libreceiver textclient receiver gui stextclient sreceiver
|
||||
|
||||
#all: lib textclient receiver gui
|
||||
all: textclient receiver gui
|
||||
|
||||
nonstatic: lib libreceiver textclient receiver gui
|
||||
|
||||
static: lib libreceiver stextclient sreceiver gui
|
||||
|
||||
|
||||
lib:
|
||||
cd $(LIBRARYDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(LIBDIR)' LIBRARYDIR='$(LIBRARYDIR)' LIBS='$(LDFLAGDET)' INCLUDES='$(INCLUDES)' LIBDIR='$(LIBDIR)'
|
||||
|
||||
libreceiver:
|
||||
cd $(LIBRARYRXRDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(LIBDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
||||
|
||||
|
||||
stextclient: slsDetectorClient_static
|
||||
|
||||
slsDetectorClient: textclient
|
||||
|
||||
slsDetectorClient_static: #lib
|
||||
cd $(CLIENTDIR) && $(MAKE) static_clients FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBRARYDIR='$(LIBRARYDIR)' LIBS='$(LDFLAGDET)' INCLUDES='$(INCLUDES)' LIBDIR='$(LIBDIR)'
|
||||
@echo ""
|
||||
@echo "#######################################"
|
||||
@echo "# Back in slsDetectorPackage Makefile #"
|
||||
@echo "#######################################"
|
||||
@echo ""
|
||||
|
||||
textclient: #lib
|
||||
cd $(CLIENTDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBRARYDIR='$(LIBRARYDIR)' LIBS='$(LDFLAGDET)' INCLUDES='$(INCLUDES)' LIBDIR='$(LIBDIR)'
|
||||
@echo ""
|
||||
@echo "#######################################"
|
||||
@echo "# Back in slsDetectorPackage Makefile #"
|
||||
@echo "#######################################"
|
||||
@echo ""
|
||||
|
||||
slsReceiver: receiver
|
||||
|
||||
slsReceiver_static: receiver
|
||||
|
||||
receiver: #libreceiver
|
||||
# cd $(RECEIVERDIR) && $(MAKE) receiver FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
||||
cd $(RECEIVERDIR) && $(MAKE) FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
||||
@echo ""
|
||||
@echo "#######################################"
|
||||
@echo "# Back in slsDetectorPackage Makefile #"
|
||||
@echo "#######################################"
|
||||
@echo ""
|
||||
|
||||
sreceiver: #libreceiver
|
||||
cd $(RECEIVERDIR) && $(MAKE) static_receiver FLAGS='$(FLAGS)' DESTDIR='$(BINDIR)' LIBS='$(LDFLAGRXR)' INCLUDES='$(INCLUDESRXR)' LIBDIR='$(LIBDIR)'
|
||||
@echo ""
|
||||
@echo "#######################################"
|
||||
@echo "# Back in slsDetectorPackage Makefile #"
|
||||
@echo "#######################################"
|
||||
@echo ""
|
||||
|
||||
slsDetectorGUI: #lib
|
||||
cd $(GUIDIR) && $(MAKE) DESTDIR='$(BINDIR)' LIBRARYDIR='$(LIBRARYDIR)' INCLUDES='$(INCLUDES)' LDFLAGDET='$(LDFLAGDETONLY)' LIBDIR='$(LIBDIR)'
|
||||
@echo ""
|
||||
@echo "#######################################"
|
||||
@echo "# Back in slsDetectorPackage Makefile #"
|
||||
@echo "#######################################"
|
||||
@echo ""
|
||||
|
||||
calWiz:
|
||||
cd $(CALWIZDIR) && $(MAKE) DESTDIR=$(BINDIR) #FLAGS=$(FLAGS) LDFLAGDET=$(LDFLAGDET) INCLUDES=$(INCLUDES)
|
||||
|
||||
|
||||
|
||||
gui: slsDetectorGUI
|
||||
|
||||
|
||||
doc:
|
||||
$(shell test -d $(DOCDIR) || mkdir -p $(DOCDIR))
|
||||
cd manual && make all DESTDIR=$(DOCDIR)
|
||||
|
||||
htmldoc:
|
||||
make doc
|
||||
$(shell test -d $(DOCDIR) || mkdir -p $(DOCDIR))
|
||||
cd manual && make html DESTDIR=$(DOCDIR)
|
||||
|
||||
detaildoc: createdocs docspdf docshtml removedocs
|
||||
|
||||
createdocs: $(LIBRARYDIR)/doxy.config
|
||||
doxygen $(LIBRARYDIR)/doxy.config
|
||||
|
||||
docspdf:
|
||||
cd slsDetectorPackageDocs/latex && make
|
||||
$(shell test -d $(DETAILDOC) || mkdir -p $(DETAILDOC))
|
||||
$(shell test -d $(DETAILDOC)/pdf || mkdir -p $(DETAILDOC)/pdf)
|
||||
mv slsDetectorPackageDocs/latex/refman.pdf $(DETAILDOC)/pdf/slsDetectorPackageDocs.pdf
|
||||
|
||||
docshtml:
|
||||
$(shell test -d $(DETAILDOC) || mkdir -p $(DETAILDOC))
|
||||
$(shell test -d $(DETAILDOC)/html || mkdir -p $(DETAILDOC)/html)
|
||||
$(shell test -d $(DETAILDOC)/html/slsDetectorPackageDocs && rm -r $(DETAILDOC)/html/slsDetectorPackageDocs)
|
||||
mv slsDetectorPackageDocs/html $(DETAILDOC)/html/slsDetectorPackageDocs
|
||||
|
||||
removedocs:
|
||||
rm -rf slsDetectorPackageDocs;
|
||||
|
||||
|
||||
clean:
|
||||
cd $(BINDIR) && rm -rf sls_detector_* slsDetectorGui slsReceiver angularCalibrationWizard energyCalibrationWizard
|
||||
cd $(LIBDIR) && rm -rf libSlsDetector.so libSlsDetector.a libSlsReceiver.so libSlsReceiver.a
|
||||
cd $(LIBRARYDIR) && $(MAKE) clean
|
||||
cd $(LIBRARYRXRDIR) && $(MAKE) clean
|
||||
cd $(CLIENTDIR) && $(MAKE) clean
|
||||
cd $(GUIDIR) && $(MAKE) clean
|
||||
cd $(CALWIZDIR) && $(MAKE) clean
|
||||
cd manual && $(MAKE) clean
|
||||
cd $(DOCDIR) && rm -rf *
|
||||
rm -rf slsDetectorPackageDocs;
|
||||
rm -rf $(DETAILDOC)
|
||||
|
||||
|
||||
#install_lib:
|
||||
# cd $(LIBRARYDIR) && $(MAKE) install DESTDIR=$(LIBDIR) INCLUDES=$(INCLUDES)
|
||||
# cd $(LIBRARYDIR) && $(MAKE) install_inc DESTDIR=$(INCDIR)
|
||||
|
||||
mythen_virtual:
|
||||
cd $(LIBRARYDIR) && $(MAKE) mythenVirtualServer DESTDIR=$(BINDIR)
|
||||
|
||||
|
||||
gotthard_virtual:
|
||||
cd $(LIBRARYDIR) && $(MAKE) gotthardVirtualServer DESTDIR=$(BINDIR)
|
||||
|
||||
|
||||
install_client: textclient slsReceiver
|
||||
|
||||
install_gui: gui
|
||||
|
||||
confinstall:
|
||||
make conf;\
|
||||
make install
|
||||
|
||||
install_lib:
|
||||
make lib;\
|
||||
make libreceiver; \
|
||||
make textclient; \
|
||||
make slsReceiver; \
|
||||
make doc; \
|
||||
make htmldoc; \
|
||||
cd $(LIBRARYDIR) && $(MAKE) install_inc DESTDIR=$(INCDIR); \
|
||||
cd $(LIBRARYRXRDIR) && $(MAKE) install_inc DESTDIR=$(INCDIR);
|
||||
|
||||
install:
|
||||
make install_lib; \
|
||||
make gui; \
|
||||
make calWiz; \
|
||||
cd $(LIBRARYDIR) && $(MAKE) install_inc DESTDIR=$(INCDIR);\
|
||||
cd $(LIBRARYRXRDIR) && $(MAKE) install_inc DESTDIR=$(INCDIR);
|
||||
|
||||
conf:
|
||||
set -e; \
|
||||
. ./configure; \
|
||||
@echo "INSTALLROOT is $(INSTALLROOT)"
|
||||
@echo "BINDIR is $(BINDIR)"
|
||||
@echo "LIBDIR is $(LIBDIR)"
|
||||
@echo "INCDIR is $(INCDIR)"
|
||||
@echo "DOCDIR is $(DOCDIR)"
|
||||
|
||||
|
||||
help:
|
||||
@echo "Targets:"
|
||||
@echo "make all compile library, text clients, data reciever"
|
||||
@echo "make lib compile library"
|
||||
@echo "make libreceiver compile receiver library"
|
||||
@echo "make textclient compile the slsDetectorClient dynamically linking the libraries"
|
||||
@echo "make stextclient compile slsDetectorClient statically linking the libraries"
|
||||
@echo "make receiver compile the slsReciever dynamically linking the libraries"
|
||||
@echo "make sreceiver compile the slsReciever statically linking the libraries"
|
||||
@echo "make gui compile slsDetectorGUI - requires a working Qt4 and Qwt installation"
|
||||
@echo "make calWiz compile the calibration wizards - requires a working Root installation"
|
||||
@echo "make doc compile pdf documentation"
|
||||
@echo "make htmldoc compile html (and pdf) documentation"
|
||||
@echo "make install_lib installs the libraries, the text clients, the documentation and the includes for the API"
|
||||
@echo "make install installs all software, including the gui, the cal wizards and the includes for the API"
|
||||
@echo "make confinstall installs all software, including the gui, the cal wizards and the includes for the API, prompting for the install paths"
|
||||
@echo "make clean remove object files and executables"
|
||||
@echo "make help lists possible targets"
|
||||
@echo ""
|
||||
@echo ""
|
||||
@echo "Makefile variables"
|
||||
@echo "DEBUG=1,2 set debug level to 1 (VERBOSE) or 2 (VERYVERBOSE)"
|
||||
@echo ""
|
||||
@echo ""
|
||||
@echo "Variables - to change them run <source configure> :"
|
||||
@echo "INSTALLROOT=<yourdir>: installation root di r, default $PWD"
|
||||
@echo "BINDIR=<yourbin>: binary installation dir below INSTALLROOT, default bin"
|
||||
@echo "LIBDIR=<yourlib>: library installation dir below INSTALLROOT, default lib"
|
||||
@echo "INCDIR=<yourincludes>: header installation dir below INSTALLROOT, default include"
|
||||
@echo "DOCDIR=<yourdoc>: documentation installation dir below INSTALLROOT, default doc"
|
||||
58
Makefile.include
Executable file
@@ -0,0 +1,58 @@
|
||||
##############################################################
|
||||
# Generic
|
||||
##############################################################
|
||||
|
||||
CC = g++
|
||||
CXX = $(CC)
|
||||
ASM=$(shell echo "/lib/modules/`uname -r`/build/include")
|
||||
LDFLAGDETONLY = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsDetector
|
||||
LDFLAGDET = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsDetector -L/usr/lib64/ -pthread
|
||||
LDFLAGRXR = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsReceiver -L/usr/lib64/ -pthread
|
||||
FLAGS= -Wall -pthread #-DEIGER_DEBUG2
|
||||
# -DVERBOSE
|
||||
|
||||
# Setting up the verbose flags
|
||||
ifeq ($(DEBUG),1)
|
||||
FLAGS = -Wall -DVERBOSE
|
||||
endif
|
||||
ifeq ($(DEBUG),2)
|
||||
FLAGS = -Wall -DVERYVERBOSE
|
||||
endif
|
||||
|
||||
##############################################################
|
||||
# HDF5 specific. Set this to yes, if you want to compile
|
||||
# HDF5 code: in this case, you need HDF5 libraries
|
||||
##############################################################
|
||||
|
||||
HDF5 = no
|
||||
HDF5_DIR = /opt/hdf5v1.10.0
|
||||
|
||||
ifeq ($(HDF5),yes)
|
||||
LDFLAGRXR = -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsReceiver -L$(HDF5_DIR)/lib -Wl,-rpath=$(HDF5_DIR)/lib -lhdf5 -lhdf5_cpp -lsz -lz -DHDF5C -L/usr/lib64/ -pthread
|
||||
INCLUDESRXR = -I$(HDF5_DIR)/include
|
||||
endif
|
||||
|
||||
|
||||
##############################################################
|
||||
# ROOTSLS specific. Set this to yes, if you want to compile
|
||||
# ROOTSLS code: in this case, you need also root libraries
|
||||
##############################################################
|
||||
|
||||
ROOTSLS = no
|
||||
|
||||
ROOTFLAGS = $(shell root-config --cflags --glibs) -DMYROOT1 #-DALLFILE_DEBUG #-DMYROOT1
|
||||
|
||||
ifeq ($(ROOTSLS),yes)
|
||||
LDFLAGRXR = -L$(LIBDIR) -lSlsReceiver $(ROOTFLAGS) -DROOTSLS
|
||||
endif
|
||||
|
||||
|
||||
define colorecho
|
||||
@tput setaf 6
|
||||
@echo $1
|
||||
@tput sgr0
|
||||
endef
|
||||
|
||||
|
||||
|
||||
|
||||
19
README.md
@@ -1,13 +1,10 @@
|
||||
### Documentation
|
||||
Detailed documentation can be found on the [official site.](https://www.psi.ch/detectors/users-support)
|
||||
|
||||
### Binaries
|
||||
Documentation to obtain the binaries via the conda package is available for [lib](https://github.com/slsdetectorgroup/sls_detector_lib) and [gui](https://github.com/slsdetectorgroup/sls_detector_gui)
|
||||
Documentation to obtain the binaries via the conda package is available [here.](https://github.com/slsdetectorgroup/sls_detector_software)
|
||||
|
||||
### Source code
|
||||
One can also obtain the source code from this repository and compile while realizing the setup dependencies as required.
|
||||
```
|
||||
git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git
|
||||
git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git --branch 3.0.1
|
||||
|
||||
```
|
||||
#### Setup dependencies
|
||||
@@ -19,7 +16,7 @@ Requirements: Qt 4.8 and Qwt 6.0
|
||||
```
|
||||
If either of them does not exist, the GUI client will not be built.
|
||||
|
||||
* Advanced user Calibration wizards<br>
|
||||
* Calibration wizards<br>
|
||||
Requirements: ROOT
|
||||
```
|
||||
export ROOTSYS=/usr/local/root-5.34
|
||||
@@ -43,10 +40,6 @@ Usage: [-c] [-b] [-h] [-d HDF5 directory] [-j]<br>
|
||||
* -r: Build/Rebuilds only receiver<br>
|
||||
* -g: Build/Rebuilds only gui<br>
|
||||
* -j: Number of threads to compile through<br>
|
||||
* -e: Debug mode
|
||||
|
||||
Basic Option:
|
||||
./cmk.sh -b
|
||||
|
||||
For only make:
|
||||
./cmk.sh
|
||||
@@ -75,17 +68,17 @@ Use cmake to create out-of-source builds, by creating a build folder parallel to
|
||||
$ cd ..
|
||||
$ mkdir slsDetectorPackage-build
|
||||
$ cd slsDetectorPackage-build
|
||||
$ cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DSLS_USE_HDF5=OFF
|
||||
$ cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DUSE_HDF5=OFF
|
||||
$ make
|
||||
```
|
||||
|
||||
Use the following as an example to compile statically and using specific hdf5 folder
|
||||
```
|
||||
$ HDF5_ROOT=/opt/hdf5v1.10.0 cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DSLS_USE_HDF5=ON
|
||||
$ HDF5_ROOT=/opt/hdf5v1.10.0 cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DUSE_HDF5=ON
|
||||
```
|
||||
After compiling, the libraries and executables will be found at `bin` directory
|
||||
```
|
||||
$ ls bin/
|
||||
gui_client libSlsDetector.a libSlsDetector.so libSlsReceiver.a libSlsReceiver.so
|
||||
sls_detector_acquire sls_detector_get slsDetectorGui sls_detector_help sls_detector_put slsReceiver slsMultiReceiver
|
||||
sls_detector_acquire sls_detector_get slsDetectorGui sls_detector_help sls_detector_put slsReceiver
|
||||
```
|
||||
|
||||
350
RELEASE.txt
@@ -0,0 +1,350 @@
|
||||
SLS Detector Package 3.0.1 released on 2018-02-12
|
||||
=================================================
|
||||
|
||||
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
This document describes the differences between 3.0.0 and 3.0.1 release.
|
||||
|
||||
The conda package of the binaries can be downloaded from
|
||||
|
||||
https://github.com/erikfrojdh/sls_detector_software.git
|
||||
|
||||
The conda package of the python API wrap-around to the software package is at
|
||||
|
||||
https://github.com/slsdetectorgroup/sls_detector.git
|
||||
|
||||
Manual (both HTML and pdf versions) are provided in
|
||||
|
||||
manual/docs/
|
||||
|
||||
Documentation from Source Code can be found for the Command Line and C++ API in
|
||||
|
||||
html:
|
||||
manual/docs/html/slsDetectorClientDocs/index.html
|
||||
manual/docs/html/slsDetectorUsersDocs/index.html
|
||||
pdf:
|
||||
manual/docs/pdf/slsDetectorClientDocs.pdf
|
||||
manual/docs/pdf/slsDetectorUsersDocs.pdf
|
||||
|
||||
Documentation to the python API is available at
|
||||
|
||||
https://slsdetectorgroup.github.io/sls_detector/
|
||||
|
||||
Example including binaries for detector and receiver user classes can be found in
|
||||
|
||||
manual/manual-api
|
||||
|
||||
User documentation can also be accessed directly at this location:
|
||||
|
||||
https://www.psi.ch/detectors/users-support
|
||||
|
||||
If you have any software related questions or comments, please send them to:
|
||||
|
||||
dhanya.thattil@psi.ch
|
||||
anna.bergamaschi@psi.ch
|
||||
|
||||
If you have any python related questions or comments, please send them to:
|
||||
|
||||
erik.frojdh@psi.ch
|
||||
|
||||
|
||||
CONTENTS
|
||||
|
||||
- Firmware Requirements
|
||||
- Changes in User Interface
|
||||
- New Features
|
||||
- Resolved Issues
|
||||
- Known Issues
|
||||
|
||||
|
||||
|
||||
Firmware Requirements
|
||||
=====================
|
||||
|
||||
Please refer to the link below for more details on the firmware versions.
|
||||
https://www.psi.ch/detectors/firmware.
|
||||
|
||||
Gotthard
|
||||
========
|
||||
Minimum compatible version : old one
|
||||
Latest version : 08.02.2018 (50um and 25um Master)
|
||||
09.02.2018 (25 um Slave)
|
||||
|
||||
-Can not be upgraded remotely.
|
||||
|
||||
|
||||
Eiger
|
||||
=====
|
||||
Minimum compatible version : 16
|
||||
Latest version : 21
|
||||
|
||||
-Can be upgraded remotely via bit files.
|
||||
|
||||
|
||||
Jungfrau
|
||||
========
|
||||
Minimum compatible version : 13.11.2017
|
||||
Latest version : 13.11.2017
|
||||
|
||||
-Can be upgraded remotely via sls_detector_put programfpga <pof>.
|
||||
|
||||
|
||||
|
||||
Changes in User Interface
|
||||
=========================
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
1. Additional functions added for advanced users in users class:
|
||||
(setSpeed, setClockDivider, setReadOutFlags, setDac, getADC,
|
||||
setAllTrimbits, startReceiver, stopReceiver,
|
||||
startAcquisition non blocking, setReceiverSilentMode, setHighVoltage,
|
||||
enableDataStreamingToClient, enableDataStreamingFromReceiver,
|
||||
setReceiverDataStreamingOutPort, setClientDataStreamingInPort)
|
||||
|
||||
2. Zmq set up for client and receiver are separated.
|
||||
zmqport for client and rx_zmqport for receiver. By default, they are the
|
||||
same for the slsDetectorGui to work.
|
||||
|
||||
3. Users example also works without config file, where detector already
|
||||
configured in shared memory.
|
||||
|
||||
4. Use "sls_detector_get busy 0" to clear acquiring flag in shared memory
|
||||
caused due to an earlier interrupted acquisition from Ctrl+C"
|
||||
|
||||
5. Set bit, clear bit, read register and write register cannot give -1 for
|
||||
inconsistent values from multiple detectors. One has to check error from
|
||||
API or read the values individually.
|
||||
|
||||
6. multiSlsDetector::char* getSettingsFile() function signature has been
|
||||
changed to string getSettingsFile().
|
||||
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
7. Modified the help manaual/main-api/mainReceiver.cpp to make it more
|
||||
robust (handling child process exit) and flexible to determine upon
|
||||
start up the number of receivers (child processes), the start TCP port
|
||||
and whether to call back data.
|
||||
|
||||
detReceiver is now executed with [start tcp port] [number of receivers]
|
||||
[1 for call back, 0 for none] as arguments.
|
||||
By default, start tcp port is 1954, number of receivers is 1, and call
|
||||
back is initiated.
|
||||
|
||||
8. rx_datastream to enable/disable data streaming in receiver. Using the GUI
|
||||
or registering data call back in client automatically enables zmq in
|
||||
receiver and client. "externalgui" is removed from the command line. Use
|
||||
this command instead.
|
||||
|
||||
9. Rx_tcpport argument to the slsReceiver can be given using -t.
|
||||
Eg. slsReceiver -t1955
|
||||
|
||||
|
||||
New Features
|
||||
============
|
||||
|
||||
|
||||
Package
|
||||
-------
|
||||
1. In addition to the C++ API, the Python API is also now provided.
|
||||
|
||||
2. CMAKE now with debug flag and rpath, show warnings, compile only certain
|
||||
components (such as receiver or gui)
|
||||
|
||||
3. One repository for entire package and made available at github.
|
||||
|
||||
4. One can do --version or -v to all the binaries to find out the release
|
||||
version of the particular executable.
|
||||
|
||||
5. All the software version numbers have only date in format YYMMDD.
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
6. Parallelized more commands to detector. Beneficial for large detectors.
|
||||
(setTimer, setFileIndex, setOnline, setReceiverOnline, getReceiverStatus,
|
||||
resetFramesCaught, setFrameIndex, setFileName, getFramesCaughtByReceiver,
|
||||
setDynamicRange, setRateCorrection)
|
||||
|
||||
Option to also use "sls_detector_put threaded 0" to improve speed by
|
||||
eliminating progress display during acquisition. Effective only for
|
||||
large detectors.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
7. (Eiger) Virtual class to execute on pc.
|
||||
|
||||
8. One can now read temperatures during acquisition. It goes via the stop
|
||||
server.
|
||||
|
||||
9. (Jungfrau) One can start server in "debug" mode and then program the
|
||||
new firmware via software command "sls_detector_put programfpga xx.pof".
|
||||
|
||||
10. (Jungfrau) Server can exit on start up if either the firmware or the
|
||||
server is incompatible with each other.
|
||||
|
||||
11. (Jungfrau) One is able to set transmission delay (ms) of image for each
|
||||
individual detector using "txndelay_frame" command. Beneficial for
|
||||
large detectors.
|
||||
|
||||
12. (Jungfrau) One can set a threshold temperature (temp_threshold) and
|
||||
enable the temperature control feature (temp_control). When the
|
||||
temperature (temp_fpga) overshoots the threshold temperature, it will
|
||||
set the temperature event (temp_event) and power off the chip. One must
|
||||
then switch off the detector and check cooling. Switching back on starts
|
||||
with defaults.
|
||||
|
||||
13. (25um Gotthard) Added start acquisition delay to master module.
|
||||
|
||||
14. (Gotthard) New constraints include minimum exposure time is 186 ns and
|
||||
minimum period is 1278 ns + current exposure time.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
14. The detectorip and rx_udpip does not have to be in the same subnet anymore.
|
||||
Add the following commands after rx_hostname in config file to overwrite
|
||||
mac configuration:
|
||||
rx_udpmac [router mac]
|
||||
configuremac 0
|
||||
|
||||
15. Added silent mode to receiver using command r_silent [i] from client.
|
||||
It might be beneficial for max frame rate applications.
|
||||
|
||||
16. Receiver print out can handle black or white backgrounds.
|
||||
|
||||
17. zmq package included updated to v4.0.8.
|
||||
|
||||
18. Zmq streaming from receiver also sends file index in json header.
|
||||
|
||||
|
||||
Gui
|
||||
---
|
||||
18. If acquisition is done, but "stop dummy packet" to the gui was lost in
|
||||
the network, stop acquisition command will restream it so that the gui
|
||||
doesnt hang forever. This is used only for very fast detectors like
|
||||
Moench.
|
||||
|
||||
|
||||
|
||||
Resolved Issues
|
||||
===============
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
1. gethostbyname used in connecting to sockets was not thread safe for
|
||||
multiple detectors. Using getaddrinfo for stability in multi threaded
|
||||
environment.
|
||||
|
||||
2. Updated writing content of config and parameter dump into files.
|
||||
|
||||
3. More locking to handle main and processing threads using the threadpool.
|
||||
Removing unlock twice, which is undefined behavior.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
4. (Eiger) The hardware MAC of the detector is used during configuration
|
||||
and relayed back to client. Similarly, hardware IP for 1 Gbe data mode.
|
||||
|
||||
5. (Eiger) Status will return error if there was the unlikely trouble
|
||||
reading status register in the front end board. Earlier, it would only
|
||||
return idle.
|
||||
|
||||
6. (Jungfrau) patch server v3.0.0.6.3
|
||||
Able to set settings, high voltage now correctly reads 0 when
|
||||
switched off, dacs are properly set.
|
||||
|
||||
7. (Jungfrau) FPGA reset and programming FPGA firmware via software is done
|
||||
properly
|
||||
|
||||
8. (Gotthard) patch server v3.0.0.5.1
|
||||
Able to read temperature properly.
|
||||
|
||||
9. (Gotthard) butst mode if set too fast had unwanted behavior such as
|
||||
sending same image continuously. Now it is handled to display error
|
||||
and stop acquisition.
|
||||
|
||||
10. (Gotthard) completely removed the possibility to set timing modes
|
||||
other than auto and trigger as they are not implemented anyway. Also
|
||||
signal index 1, 2 and 3 are reserved and hence, cannot be configured for
|
||||
an external trigger.
|
||||
|
||||
11. Non Mythen and non Eiger detectors can also now get settings file from
|
||||
board.
|
||||
|
||||
12. (Gotthard) Did not get first few images initially after configuring MAC
|
||||
of detector. Fixed.
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
12. Made it easier to disable the standard receiver and fixing bugs related
|
||||
to the use of a custom one.
|
||||
|
||||
13. (Jungfrau) HDF5 dimensions (npixelsY) required for mapping fixed.
|
||||
|
||||
14. patch2-v3.0.0-slsReceiverSoftware.patch
|
||||
x, y and z coordinates in the call backs and the files are hardcoded
|
||||
for this release.
|
||||
|
||||
15. Rest implementation (not used by standard receiver) removed.
|
||||
|
||||
|
||||
Gui
|
||||
---
|
||||
16. patch1-v3.0.0-slsDetectorGui.patch
|
||||
(Eiger) In expert mode and in advanced tab, when trimbits
|
||||
loaded are different for every pixel, the gui complains and sets
|
||||
all trimbits to zero. This has been resolved. Now, the "Set All
|
||||
Trimbits" field is just set to -1.
|
||||
|
||||
17. Fixed segmentation fault of xputsn properly.
|
||||
|
||||
18. Upon clicking on "Start", clears acquiring flag in shared memory
|
||||
caused due to an earlier interrupted acquisition from Ctrl+C"
|
||||
|
||||
19. Fixed plotting twice caused due to unzooming the first time.
|
||||
|
||||
20. Removed option for compression in Gui as it is not available currently.
|
||||
|
||||
21. Can also show Jungfrau multi detector in x direction in gui.
|
||||
|
||||
22. Switching tabs sometimes results in delay and gates fields being incorrectly
|
||||
enabled. Fixed.
|
||||
|
||||
|
||||
|
||||
Known Issues
|
||||
============
|
||||
|
||||
|
||||
Client
|
||||
------
|
||||
1. File name prefix can only be done at multi deector level. Changing at
|
||||
individual detector level will not include scan or position variables.
|
||||
|
||||
|
||||
Detector Server
|
||||
---------------
|
||||
2. Standard header fills x-coord in 1D. y-coord and z-coord is not
|
||||
implemented (3D).
|
||||
|
||||
|
||||
Receiver
|
||||
--------
|
||||
3. HDF5 compression and filters are not implemented yet.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
14934
catch/catch.hpp
1
cleansharedmemory.sh
Normal file
@@ -0,0 +1 @@
|
||||
for i in seq `ipcs -m | cut -d ' ' -f1`; do ipcrm -M $i; done;
|
||||
@@ -1,112 +0,0 @@
|
||||
|
||||
# This file is originally from https://github.com/zeromq/azmq and distributed
|
||||
# under Boost Software Lincese 1.0
|
||||
# Boost Software License - Version 1.0 - August 17th, 2003
|
||||
|
||||
# Permission is hereby granted, free of charge, to any person or organization
|
||||
# obtaining a copy of the software and accompanying documentation covered by
|
||||
# this license (the "Software") to use, reproduce, display, distribute,
|
||||
# execute, and transmit the Software, and to prepare derivative works of the
|
||||
# Software, and to permit third-parties to whom the Software is furnished to
|
||||
# do so, all subject to the following:
|
||||
|
||||
# The copyright notices in the Software and this entire statement, including
|
||||
# the above license grant, this restriction and the following disclaimer,
|
||||
# must be included in all copies of the Software, in whole or in part, and
|
||||
# all derivative works of the Software, unless such copies or derivative
|
||||
# works are solely in the form of machine-executable object code generated by
|
||||
# a source language processor.
|
||||
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
# SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
# FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
# --------------------------------------------------------------------------------
|
||||
|
||||
# Find ZeroMQ Headers/Libs
|
||||
|
||||
# Variables
|
||||
# ZMQ_ROOT - set this to a location where ZeroMQ may be found
|
||||
#
|
||||
# ZeroMQ_FOUND - True of ZeroMQ found
|
||||
# ZeroMQ_INCLUDE_DIRS - Location of ZeroMQ includes
|
||||
# ZeroMQ_LIBRARIES - ZeroMQ libraries
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
if (NOT ZMQ_ROOT)
|
||||
set(ZMQ_ROOT "$ENV{ZMQ_ROOT}")
|
||||
endif()
|
||||
|
||||
if (NOT ZMQ_ROOT)
|
||||
find_path(_ZeroMQ_ROOT NAMES include/zmq.h)
|
||||
else()
|
||||
set(_ZeroMQ_ROOT "${ZMQ_ROOT}")
|
||||
endif()
|
||||
|
||||
find_path(ZeroMQ_INCLUDE_DIRS NAMES zmq.h HINTS ${_ZeroMQ_ROOT}/include)
|
||||
|
||||
if (ZeroMQ_INCLUDE_DIRS)
|
||||
set(_ZeroMQ_H ${ZeroMQ_INCLUDE_DIRS}/zmq.h)
|
||||
|
||||
function(_zmqver_EXTRACT _ZeroMQ_VER_COMPONENT _ZeroMQ_VER_OUTPUT)
|
||||
set(CMAKE_MATCH_1 "0")
|
||||
set(_ZeroMQ_expr "^[ \\t]*#define[ \\t]+${_ZeroMQ_VER_COMPONENT}[ \\t]+([0-9]+)$")
|
||||
file(STRINGS "${_ZeroMQ_H}" _ZeroMQ_ver REGEX "${_ZeroMQ_expr}")
|
||||
string(REGEX MATCH "${_ZeroMQ_expr}" ZeroMQ_ver "${_ZeroMQ_ver}")
|
||||
set(${_ZeroMQ_VER_OUTPUT} "${CMAKE_MATCH_1}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
_zmqver_EXTRACT("ZMQ_VERSION_MAJOR" ZeroMQ_VERSION_MAJOR)
|
||||
_zmqver_EXTRACT("ZMQ_VERSION_MINOR" ZeroMQ_VERSION_MINOR)
|
||||
_zmqver_EXTRACT("ZMQ_VERSION_PATCH" ZeroMQ_VERSION_PATCH)
|
||||
|
||||
message(STATUS "ZeroMQ version: ${ZeroMQ_VERSION_MAJOR}.${ZeroMQ_VERSION_MINOR}.${ZeroMQ_VERSION_PATCH}")
|
||||
|
||||
# We should provide version to find_package_handle_standard_args in the same format as it was requested,
|
||||
# otherwise it can't check whether version matches exactly.
|
||||
if (ZeroMQ_FIND_VERSION_COUNT GREATER 2)
|
||||
set(ZeroMQ_VERSION "${ZeroMQ_VERSION_MAJOR}.${ZeroMQ_VERSION_MINOR}.${ZeroMQ_VERSION_PATCH}")
|
||||
else()
|
||||
# User has requested ZeroMQ version without patch part => user is not interested in specific patch =>
|
||||
# any patch should be an exact match.
|
||||
set(ZeroMQ_VERSION "${ZeroMQ_VERSION_MAJOR}.${ZeroMQ_VERSION_MINOR}")
|
||||
endif()
|
||||
|
||||
if (NOT ${CMAKE_CXX_PLATFORM_ID} STREQUAL "Windows")
|
||||
find_library(ZeroMQ_LIBRARIES NAMES zmq HINTS ${_ZeroMQ_ROOT}/lib)
|
||||
else()
|
||||
find_library(
|
||||
ZeroMQ_LIBRARY_RELEASE
|
||||
NAMES
|
||||
libzmq
|
||||
"libzmq-${CMAKE_VS_PLATFORM_TOOLSET}-mt-${ZeroMQ_VERSION_MAJOR}_${ZeroMQ_VERSION_MINOR}_${ZeroMQ_VERSION_PATCH}"
|
||||
HINTS
|
||||
${_ZeroMQ_ROOT}/lib
|
||||
)
|
||||
|
||||
find_library(
|
||||
ZeroMQ_LIBRARY_DEBUG
|
||||
NAMES
|
||||
libzmq_d
|
||||
"libzmq-${CMAKE_VS_PLATFORM_TOOLSET}-mt-gd-${ZeroMQ_VERSION_MAJOR}_${ZeroMQ_VERSION_MINOR}_${ZeroMQ_VERSION_PATCH}"
|
||||
HINTS
|
||||
${_ZeroMQ_ROOT}/lib)
|
||||
|
||||
# On Windows we have to use corresponding version (i.e. Release or Debug) of ZeroMQ because of `errno` CRT global variable
|
||||
# See more at http://www.drdobbs.com/avoiding-the-visual-c-runtime-library/184416623
|
||||
set(ZeroMQ_LIBRARIES optimized "${ZeroMQ_LIBRARY_RELEASE}" debug "${ZeroMQ_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package_handle_standard_args(ZeroMQ FOUND_VAR ZeroMQ_FOUND
|
||||
REQUIRED_VARS ZeroMQ_INCLUDE_DIRS ZeroMQ_LIBRARIES
|
||||
VERSION_VAR ZeroMQ_VERSION)
|
||||
|
||||
if (ZeroMQ_FOUND)
|
||||
mark_as_advanced(ZeroMQ_INCLUDE_DIRS ZeroMQ_LIBRARIES ZeroMQ_VERSION
|
||||
ZeroMQ_VERSION_MAJOR ZeroMQ_VERSION_MINOR ZeroMQ_VERSION_PATCH)
|
||||
endif()
|
||||
@@ -1,31 +0,0 @@
|
||||
# This cmake code creates the configuration that is found and used by
|
||||
# find_package() of another cmake project
|
||||
|
||||
# get lower and upper case project name for the configuration files
|
||||
|
||||
# configure and install the configuration files
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
configure_package_config_file(
|
||||
"${CMAKE_SOURCE_DIR}/cmake/project-config.cmake.in"
|
||||
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config.cmake"
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME_LOWER}
|
||||
PATH_VARS CMAKE_INSTALL_DIR)
|
||||
|
||||
write_basic_package_version_file(
|
||||
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config-version.cmake"
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY SameMajorVersion)
|
||||
|
||||
install(FILES
|
||||
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config.cmake"
|
||||
"${PROJECT_BINARY_DIR}/${PROJECT_NAME_LOWER}-config-version.cmake"
|
||||
COMPONENT devel
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME_LOWER})
|
||||
|
||||
if (PROJECT_LIBRARIES OR PROJECT_STATIC_LIBRARIES)
|
||||
install(
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
FILE ${PROJECT_NAME_LOWER}-targets.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME_LOWER})
|
||||
endif ()
|
||||
@@ -1,24 +0,0 @@
|
||||
# Config file for @PROJECT_NAME_LOWER@
|
||||
#
|
||||
# It defines the following variables:
|
||||
#
|
||||
# @PROJECT_NAME_UPPER@_INCLUDE_DIRS - include directory
|
||||
# @PROJECT_NAME_UPPER@_LIBRARIES - all dynamic libraries
|
||||
# @PROJECT_NAME_UPPER@_STATIC_LIBRARIES - all static libraries
|
||||
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
|
||||
set(SLS_USE_HDF5 "@SLS_USE_HDF5@")
|
||||
|
||||
# Add optional dependencies here
|
||||
find_dependency(Threads)
|
||||
if (SLS_USE_HDF5)
|
||||
find_dependency(HDF5)
|
||||
endif ()
|
||||
|
||||
set_and_check(@PROJECT_NAME_UPPER@_CMAKE_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_DIR@")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
|
||||
check_required_components("@PROJECT_NAME@")
|
||||
@@ -1,14 +0,0 @@
|
||||
#include "project_version.h"
|
||||
/// project version as major.minor.patch string
|
||||
const char* @PROJECT_NAME@_runtime_project_version(){ return "@PROJECT_VERSION@"; }
|
||||
/// package version as string, possibly with git commit: v1.2.3+4+g56789abc
|
||||
const char* @PROJECT_NAME@_runtime_package_version(){ return "@PACKAGE_VERSION@"; }
|
||||
/// project version as integer: major * 10000 + minor * 100 + patch
|
||||
int @PROJECT_NAME@_runtime_version_int() { return @PROJECT_VERSION_INT@; }
|
||||
/// project version as integer: major
|
||||
int @PROJECT_NAME@_runtime_version_major(){ return @PACKAGE_VERSION_MAJOR@; }
|
||||
/// project version as integer: minor
|
||||
int @PROJECT_NAME@_runtime_version_minor(){ return @PACKAGE_VERSION_MINOR@; }
|
||||
/// project version as integer: patch
|
||||
int @PROJECT_NAME@_runtime_version_patch(){ return @PACKAGE_VERSION_PATCH@; }
|
||||
|
||||
@@ -1,154 +0,0 @@
|
||||
#
|
||||
# Sets PROJECT_VERSION and PACKAGE_VERSION
|
||||
#
|
||||
|
||||
# Don't set PROJECT_VERSION to empty string when no VERSION is given to project() command.
|
||||
#if(POLICY CMP0048)
|
||||
# cmake_policy(SET CMP0048 OLD)
|
||||
#endif()
|
||||
|
||||
# Split a version number into separate components
|
||||
# version the version number to split
|
||||
# major variable name to store the major version in
|
||||
# minor variable name to store the minor version in
|
||||
# patch variable name to store the patch version in
|
||||
# extra variable name to store a version suffix in
|
||||
function(version_split version major minor patch extra)
|
||||
string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*)?" version_valid ${version})
|
||||
if(version_valid)
|
||||
string(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*)?" "\\1;\\2;\\3;\\4" VERSION_MATCHES ${version})
|
||||
list(GET VERSION_MATCHES 0 version_major)
|
||||
set(${major} ${version_major} PARENT_SCOPE)
|
||||
list(GET VERSION_MATCHES 1 version_minor)
|
||||
set(${minor} ${version_minor} PARENT_SCOPE)
|
||||
list(GET VERSION_MATCHES 2 version_patch)
|
||||
set(${patch} ${version_patch} PARENT_SCOPE)
|
||||
list(GET VERSION_MATCHES 3 version_extra)
|
||||
set(${extra} ${version_extra} PARENT_SCOPE)
|
||||
else(version_valid)
|
||||
message(AUTHOR_WARNING "Bad version ${version}; falling back to 0 (have you made an initial release?)")
|
||||
set(${major} "0" PARENT_SCOPE)
|
||||
set(${minor} "0" PARENT_SCOPE)
|
||||
set(${patch} "0" PARENT_SCOPE)
|
||||
set(${extra} "" PARENT_SCOPE)
|
||||
endif(version_valid)
|
||||
endfunction(version_split)
|
||||
|
||||
##############################
|
||||
# get PROJECT_VERSION from git
|
||||
##############################
|
||||
find_program(GIT_CMD git)
|
||||
mark_as_advanced(GIT_CMD)
|
||||
if (GIT_CMD)
|
||||
execute_process(COMMAND ${GIT_CMD} rev-parse --show-toplevel
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE GIT_TOPLEVEL
|
||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
endif()
|
||||
if (GIT_CMD AND NOT "${GIT_TOPLEVEL}" STREQUAL "")
|
||||
execute_process(COMMAND ${GIT_CMD} rev-parse --short HEAD
|
||||
WORKING_DIRECTORY ${GIT_TOPLEVEL}
|
||||
OUTPUT_VARIABLE GIT_SHA1
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
#message(STATUS "GIT_SHA1: " ${GIT_SHA1})
|
||||
execute_process(COMMAND ${GIT_CMD} describe --match "*[0-9].[0-9]*" HEAD
|
||||
WORKING_DIRECTORY ${GIT_TOPLEVEL}
|
||||
OUTPUT_VARIABLE GIT_DESCRIBE
|
||||
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
#message(STATUS "GIT_DESCRIBE: " ${GIT_DESCRIBE})
|
||||
|
||||
if (GIT_DESCRIBE)
|
||||
string(REGEX REPLACE "v?([0-9.]+).*" "\\1" GIT_VERSION ${GIT_DESCRIBE})
|
||||
message(STATUS "GIT_VERSION: " ${GIT_VERSION})
|
||||
|
||||
# as package version we use the full version from git describe: 1.7.1+7+ge324c81
|
||||
if (GIT_DESCRIBE MATCHES ".*-g.*")
|
||||
# convert a git describe string to usable debian version, e.g. v1.7.1-7-ge324c81 to 1.7.1+7+ge324c81
|
||||
string(REGEX REPLACE "v?([0-9]*.[0-9.]*).*-([0-9]*)-([a-g0-9]*)" "\\1+\\2+\\3" GIT_FULL_VERSION ${GIT_DESCRIBE})
|
||||
else()
|
||||
# current HEAD is git tag (i.e. releaase), directly use the version
|
||||
set(GIT_FULL_VERSION ${GIT_VERSION})
|
||||
endif()
|
||||
else ()
|
||||
# no (suitable) tag found
|
||||
set(GIT_VERSION "0.0.0")
|
||||
# get number of commits in repo
|
||||
execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD
|
||||
WORKING_DIRECTORY ${GIT_TOPLEVEL}
|
||||
OUTPUT_VARIABLE GIT_COMMIT_COUNT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(GIT_FULL_VERSION 0.0.0+${GIT_COMMIT_COUNT}+g${GIT_SHA1})
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# get version from package.xml if it exists
|
||||
if (EXISTS "${PROJECT_SOURCE_DIR}/package.xml")
|
||||
file(STRINGS "${PROJECT_SOURCE_DIR}/package.xml" PACKAGE_XML_VERSION_LINE REGEX <version>[0-9.]*</version>)
|
||||
string(REGEX REPLACE .*<version>\([0-9.]*\)</version>.* \\1 PACKAGE_XML_VERSION "${PACKAGE_XML_VERSION_LINE}")
|
||||
MESSAGE(STATUS "PACKAGE_XML_VERSION: " ${PACKAGE_XML_VERSION})
|
||||
endif ()
|
||||
|
||||
# set version (if not already manually specified)
|
||||
# check versions from different sources and set actually used version
|
||||
if (NOT PROJECT_VERSION)
|
||||
# set PROJECT_VERSION to MAJOR.MINOR.PATCH
|
||||
# PACKAGE_VERSION can have extra info
|
||||
if (GIT_VERSION)
|
||||
set(PROJECT_VERSION ${GIT_VERSION})
|
||||
set(PACKAGE_VERSION ${GIT_FULL_VERSION})
|
||||
elseif (PACKAGE_XML_VERSION)
|
||||
set(PROJECT_VERSION ${PACKAGE_XML_VERSION})
|
||||
set(PACKAGE_VERSION ${PROJECT_VERSION})
|
||||
else ()
|
||||
message(WARNING "PROJECT_VERSION not set. Defaulting to 0.0.0")
|
||||
set(PROJECT_VERSION "0.0.0")
|
||||
endif ()
|
||||
endif ()
|
||||
if (NOT PACKAGE_VERSION)
|
||||
message(WARNING "PACKAGE_VERSION not set! Falling back to (${PROJECT_VERSION})")
|
||||
set(PACKAGE_VERSION ${PROJECT_VERSION})
|
||||
endif ()
|
||||
|
||||
# warn if versions don't match
|
||||
if (GIT_VERSION AND NOT GIT_VERSION MATCHES ${PROJECT_VERSION})
|
||||
message(WARNING "Version from git (${GIT_VERSION}) doesn't match PROJECT_VERSION (${PROJECT_VERSION})")
|
||||
endif()
|
||||
if (PACKAGE_XML_VERSION AND NOT PACKAGE_XML_VERSION MATCHES ${PROJECT_VERSION})
|
||||
message(WARNING "Version from package.xml (${PACKAGE_XML_VERSION}) doesn't match PROJECT_VERSION (${PROJECT_VERSION})")
|
||||
endif()
|
||||
|
||||
message(STATUS "PROJECT_VERSION: " ${PROJECT_VERSION})
|
||||
message(STATUS "PACKAGE_VERSION: " ${PACKAGE_VERSION})
|
||||
|
||||
|
||||
version_split(${PROJECT_VERSION} PACKAGE_VERSION_MAJOR PACKAGE_VERSION_MINOR PACKAGE_VERSION_PATCH extra)
|
||||
#message(STATUS "PACKAGE_VERSION_MAJOR: " ${PACKAGE_VERSION_MAJOR})
|
||||
#message(STATUS "PACKAGE_VERSION_MINOR: " ${PACKAGE_VERSION_MINOR})
|
||||
#message(STATUS "PACKAGE_VERSION_PATCH: " ${PACKAGE_VERSION_PATCH})
|
||||
|
||||
# generate an integer version number: major * 10000 + minor * 100 + patch
|
||||
math(EXPR PROJECT_VERSION_INT "${PACKAGE_VERSION_MAJOR} * 10000 + ${PACKAGE_VERSION_MINOR} * 100 + ${PACKAGE_VERSION_PATCH}")
|
||||
|
||||
# make PROJECT_VERSION available as define in the project source
|
||||
#add_definitions(-DPROJECT_VERSION="${PROJECT_VERSION}")
|
||||
#add_definitions(-DPROJECT_VERSION_INT=${PROJECT_VERSION_INT})
|
||||
#add_definitions(-DPACKAGE_VERSION="${PACKAGE_VERSION}")
|
||||
#add_definitions(-DPACKAGE_VERSION_MAJOR=${PACKAGE_VERSION_MAJOR})
|
||||
#add_definitions(-DPACKAGE_VERSION_MINOR=${PACKAGE_VERSION_MINOR})
|
||||
#add_definitions(-DPACKAGE_VERSION_PATCH=${PACKAGE_VERSION_PATCH})
|
||||
|
||||
# set ABI version to major.minor, which will be used for the SOVERSION
|
||||
set(abiversion "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}")
|
||||
|
||||
# generate a version.h file in the binary output dir, don't forget to install it...
|
||||
string(TOUPPER "${PROJECT_NAME}" PROJECT_NAME_UPPER)
|
||||
|
||||
# These files provide compile-time and runtime version information about your project.
|
||||
# To offer the version info to the users of your library, you need to
|
||||
# adapt the following lines in your respective CMakeLists.txt:
|
||||
# add_library(<yourlibraryname> SHARED <your code files> ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/project_version.cc)
|
||||
# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/project_version.h COMPONENT dev DESTINATION include/<your-include-dir>)
|
||||
# To use it within your library or tests you need to add the include directory:
|
||||
# > target_include_directories(yourtarget PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME})
|
||||
configure_file(${CMAKE_CURRENT_LIST_DIR}/project_version.h.in ${PROJECT_NAME}/project_version.h @ONLY)
|
||||
configure_file(${CMAKE_CURRENT_LIST_DIR}/project_version.cc.in ${PROJECT_NAME}/project_version.cc @ONLY)
|
||||
@@ -1,34 +0,0 @@
|
||||
#ifndef @PROJECT_NAME_UPPER@_VERSION_H_
|
||||
#define @PROJECT_NAME_UPPER@_VERSION_H_
|
||||
|
||||
/// project version as major.minor.patch string
|
||||
#define @PROJECT_NAME_UPPER@_VERSION "@PROJECT_VERSION@"
|
||||
/// project version as integer: major * 10000 + minor * 100 + patch
|
||||
#define @PROJECT_NAME_UPPER@_VERSION_INT @PROJECT_VERSION_INT@
|
||||
#define @PROJECT_NAME_UPPER@_VERSION_MAJOR @PACKAGE_VERSION_MAJOR@
|
||||
#define @PROJECT_NAME_UPPER@_VERSION_MINOR @PACKAGE_VERSION_MINOR@
|
||||
#define @PROJECT_NAME_UPPER@_VERSION_PATCH @PACKAGE_VERSION_PATCH@
|
||||
/// package version as string, possibly with git commit: v1.2.3+4+g56789abc
|
||||
#define @PROJECT_NAME_UPPER@_PACKAGE_VERSION "@PACKAGE_VERSION@"
|
||||
|
||||
///runtime versions, where the above values are linked into a lib and therefore reflect the version
|
||||
///of the library itself (not the version of the header at compile time of the user code)
|
||||
const char* @PROJECT_NAME@_runtime_project_version();
|
||||
const char* @PROJECT_NAME@_runtime_package_version();
|
||||
int @PROJECT_NAME@_runtime_version_int();
|
||||
int @PROJECT_NAME@_runtime_version_major();
|
||||
int @PROJECT_NAME@_runtime_version_minor();
|
||||
int @PROJECT_NAME@_runtime_version_patch();
|
||||
|
||||
///Check consistency of runtime vs compile-time version number. I.e. the header used
|
||||
///for compilation was from the same version as the linked library.
|
||||
inline bool @PROJECT_NAME@_check_version_consistency(bool major_minor_only)
|
||||
{
|
||||
return @PROJECT_NAME@_runtime_version_major() == @PROJECT_NAME_UPPER@_VERSION_MAJOR &&
|
||||
@PROJECT_NAME@_runtime_version_minor() == @PROJECT_NAME_UPPER@_VERSION_MINOR &&
|
||||
(major_minor_only ||
|
||||
@PROJECT_NAME@_runtime_version_patch() == @PROJECT_NAME_UPPER@_VERSION_PATCH);
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
30
cmk.sh
@@ -6,7 +6,6 @@ COMPILERTHREADS=0
|
||||
TEXTCLIENT=0
|
||||
RECEIVER=0
|
||||
GUI=0
|
||||
DEBUG=0
|
||||
|
||||
|
||||
CLEAN=0
|
||||
@@ -25,7 +24,6 @@ Usage: $0 [-c] [-b] [-h] [-d <HDF5 directory>] [-j]
|
||||
-r: Build/Rebuilds only receiver
|
||||
-g: Build/Rebuilds only gui
|
||||
-j: Number of threads to compile through
|
||||
-e: Debug mode
|
||||
|
||||
For only make:
|
||||
./cmk.sh
|
||||
@@ -55,7 +53,7 @@ For rebuilding only certain sections
|
||||
|
||||
" ; exit 1; }
|
||||
|
||||
while getopts ":bchd:j:trge" opt ; do
|
||||
while getopts ":bchd:j:trg" opt ; do
|
||||
case $opt in
|
||||
b)
|
||||
echo "Building of CMake files Required"
|
||||
@@ -92,11 +90,7 @@ while getopts ":bchd:j:trge" opt ; do
|
||||
echo "Compiling Options: GUI"
|
||||
GUI=1
|
||||
REBUILD=1
|
||||
;;
|
||||
e)
|
||||
echo "Compiling Options: Debug"
|
||||
DEBUG=1
|
||||
;;
|
||||
;;
|
||||
\?)
|
||||
echo "Invalid option: -$OPTARG"
|
||||
usage
|
||||
@@ -116,21 +110,20 @@ done
|
||||
|
||||
|
||||
if [ $TEXTCLIENT -eq 0 ] && [ $RECEIVER -eq 0 ] && [ $GUI -eq 0 ]; then
|
||||
# CMAKE_POST+=" -DSLS_USE_TEXTCLIENT=ON -DSLS_USE_RECEIVER=ON -DSLS_USE_GUI=ON "
|
||||
CMAKE_POST+=" -DSLS_USE_TEXTCLIENT=ON -DSLS_USE_RECEIVER=ON "
|
||||
CMAKE_POST+=" -DUSE_TEXTCLIENT=ON -DUSE_RECEIVER=ON -DUSE_GUI=ON "
|
||||
echo "Compile Option: TextClient, Receiver and GUI"
|
||||
else
|
||||
if [ $TEXTCLIENT -eq 1 ]; then
|
||||
CMAKE_POST+=" -DSLS_USE_TEXTCLIENT=ON "
|
||||
CMAKE_POST+=" -DUSE_TEXTCLIENT=ON "
|
||||
echo "Compile Option: TextClient"
|
||||
fi
|
||||
if [ $RECEIVER -eq 1 ]; then
|
||||
CMAKE_POST+=" -DSLS_USE_RECEIVER=ON "
|
||||
CMAKE_POST+=" -DUSE_RECEIVER=ON "
|
||||
echo "Compile Option: Receiver"
|
||||
fi
|
||||
|
||||
if [ $GUI -eq 1 ]; then
|
||||
CMAKE_POST+=" -DSLS_USE_GUI=ON "
|
||||
CMAKE_POST+=" -DUSE_GUI=ON "
|
||||
echo "Compile Option: GUI"
|
||||
fi
|
||||
fi
|
||||
@@ -152,20 +145,15 @@ else
|
||||
fi
|
||||
fi
|
||||
|
||||
#Debug
|
||||
if [ $DEBUG -eq 1 ]; then
|
||||
CMAKE_POST+=" -DCMAKE_BUILD_TYPE=Debug "
|
||||
echo "Debug Option enabled"
|
||||
fi
|
||||
|
||||
CMAKE_POST+=" -DCMAKE_BUILD_TYPE=Debug "
|
||||
|
||||
#hdf5 rebuild
|
||||
if [ $HDF5 -eq 1 ]; then
|
||||
CMAKE_PRE+="HDF5_ROOT="$HDF5DIR
|
||||
CMAKE_POST+=" -DSLS_USE_HDF5=ON "
|
||||
CMAKE_POST+=" -DUSE_HDF5=ON "
|
||||
#normal mode rebuild
|
||||
else
|
||||
CMAKE_POST+=" -DSLS_USE_HDF5=OFF "
|
||||
CMAKE_POST+=" -DUSE_HDF5=OFF "
|
||||
fi
|
||||
|
||||
|
||||
|
||||
15
commitVersions.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
sh updateSvnVersion.sh
|
||||
|
||||
cd slsDetectorGui
|
||||
git commit -a -m "updating versions"
|
||||
git push origin developer:developer
|
||||
|
||||
cd ../slsDetectorSoftware
|
||||
git commit -a -m "updating versions"
|
||||
git push origin developer:developer
|
||||
|
||||
cd ../slsReceiverSoftware
|
||||
git commit -a -m "updating versions"
|
||||
git push origin developer:developer
|
||||
|
||||
cd ..
|
||||
@@ -1,15 +0,0 @@
|
||||
mkdir build
|
||||
mkdir install
|
||||
cd build
|
||||
cmake .. \
|
||||
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX \
|
||||
-DCMAKE_INSTALL_PREFIX=install \
|
||||
-DSLS_USE_TEXTCLIENT=ON \
|
||||
-DSLS_USE_RECEIVER=ON \
|
||||
-DSLS_USE_GUI=OFF \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DSLS_USE_HDF5=OFF\
|
||||
|
||||
|
||||
cmake --build . -- -j10
|
||||
cmake --build . --target install
|
||||
@@ -1,15 +0,0 @@
|
||||
|
||||
mkdir $PREFIX/lib
|
||||
mkdir $PREFIX/bin
|
||||
mkdir $PREFIX/include
|
||||
|
||||
#No libs for gui?
|
||||
|
||||
#Binaries
|
||||
cp build/bin/gui_client $PREFIX/bin/.
|
||||
cp build/bin/slsDetectorGui $PREFIX/bin/.
|
||||
|
||||
|
||||
#Which headers do we need for development??
|
||||
|
||||
# cp include/some_lib.h $PREFIX/include/.
|
||||
@@ -1,22 +0,0 @@
|
||||
|
||||
mkdir $PREFIX/lib
|
||||
mkdir $PREFIX/bin
|
||||
mkdir $PREFIX/include
|
||||
mkdir $PREFIX/include/slsDetectorPackage
|
||||
|
||||
#Shared and static libraries
|
||||
cp build/bin/libSlsDetector.so $PREFIX/lib/.
|
||||
cp build/bin/libSlsReceiver.so $PREFIX/lib/.
|
||||
cp build/bin/libSlsSupport.so $PREFIX/lib/.
|
||||
|
||||
#Binaries
|
||||
cp build/bin/sls_detector_acquire $PREFIX/bin/.
|
||||
cp build/bin/sls_detector_get $PREFIX/bin/.
|
||||
cp build/bin/sls_detector_put $PREFIX/bin/.
|
||||
cp build/bin/sls_detector_help $PREFIX/bin/.
|
||||
cp build/bin/slsReceiver $PREFIX/bin/.
|
||||
cp build/bin/slsMultiReceiver $PREFIX/bin/.
|
||||
|
||||
#Which headers do we need for development??
|
||||
cp build/install/include/* $PREFIX/include/slsDetectorPackage/
|
||||
# cp include/some_lib.h $PREFIX/include/.
|
||||
@@ -1,98 +0,0 @@
|
||||
|
||||
package:
|
||||
name: sls_detector_software
|
||||
version: "refactor"
|
||||
|
||||
source:
|
||||
- path: ..
|
||||
|
||||
build:
|
||||
number: 0
|
||||
rpaths:
|
||||
- lib/
|
||||
|
||||
requirements:
|
||||
build:
|
||||
- {{ compiler('c') }}
|
||||
- {{compiler('cxx')}}
|
||||
- cmake
|
||||
- qwt 6.*
|
||||
- qt=4.8.7=7
|
||||
- zeromq=4.2.5=hfc679d8_5
|
||||
- pyzmq
|
||||
- xorg-libx11
|
||||
- xorg-libice
|
||||
- xorg-libxext
|
||||
- xorg-libsm
|
||||
- xorg-libxau
|
||||
- xorg-libxrender
|
||||
- xorg-libxfixes
|
||||
- {{ cdt('mesa-libgl-devel') }} # [linux]
|
||||
- {{ cdt('mesa-libegl-devel') }} # [linux]
|
||||
- {{ cdt('mesa-dri-drivers') }} # [linux]
|
||||
- {{ cdt('libselinux') }} # [linux]
|
||||
- {{ cdt('libxdamage') }} # [linux]
|
||||
- {{ cdt('libxxf86vm') }} # [linux]
|
||||
|
||||
host:
|
||||
- libstdcxx-ng
|
||||
- libgcc-ng
|
||||
- libpng >=1.6.32,<1.6.35
|
||||
- xorg-libx11
|
||||
- xorg-libice
|
||||
- xorg-libxext
|
||||
- xorg-libsm
|
||||
- xorg-libxau
|
||||
- xorg-libxrender
|
||||
- xorg-libxfixes
|
||||
|
||||
run:
|
||||
- libstdcxx-ng
|
||||
- libgcc-ng
|
||||
|
||||
outputs:
|
||||
- name: sls_detector_lib
|
||||
version: "refactor"
|
||||
script: copy_lib.sh
|
||||
requirements:
|
||||
build:
|
||||
- {{ compiler('c') }}
|
||||
- {{compiler('cxx')}}
|
||||
|
||||
# - name: sls_detector
|
||||
# version: "refactor"
|
||||
# script: copy_lib.sh
|
||||
# requirements:
|
||||
# build:
|
||||
# - {{ compiler('c') }}
|
||||
# - {{compiler('cxx')}}
|
||||
|
||||
# - name: sls_detector_gui
|
||||
# version: "refactor"
|
||||
# script: copy_gui.sh
|
||||
# requirements:
|
||||
# build:
|
||||
# - {{ compiler('c') }}
|
||||
# - {{compiler('cxx')}}
|
||||
# - cmake
|
||||
# - qwt 6.*
|
||||
# - qt=4.8.7=7
|
||||
# - zeromq=4.2.5=hfc679d8_5
|
||||
# - pyzmq
|
||||
# - xorg-libx11
|
||||
# - xorg-libice
|
||||
# - xorg-libxext
|
||||
# - xorg-libsm
|
||||
# - xorg-libxau
|
||||
# - xorg-libxrender
|
||||
# - xorg-libxfixes
|
||||
# - {{ cdt('mesa-libgl-devel') }} # [linux]
|
||||
# - {{ cdt('mesa-libegl-devel') }} # [linux]
|
||||
# - {{ cdt('mesa-dri-drivers') }} # [linux]
|
||||
# - {{ cdt('libselinux') }} # [linux]
|
||||
# - {{ cdt('libxdamage') }} # [linux]
|
||||
# - {{ cdt('libxxf86vm') }} # [linux]
|
||||
# run:
|
||||
# - sls_detector_lib=refactor
|
||||
# - qwt 6.*
|
||||
# - qt=4.8.7=7
|
||||
@@ -3,8 +3,12 @@ hostname bchip007
|
||||
#0:port 1952
|
||||
#0:stopport 1953
|
||||
#0:rx_tcpport 1956 must also have this in receiver config file
|
||||
0:settingsdir /home/l_maliakal_d/mySoft/newMythenSoftware/settingsdir/gotthard
|
||||
0:angdir 1.000000
|
||||
0:moveflag 0.000000
|
||||
0:lock 0
|
||||
0:caldir /home/l_maliakal_d/mySoft/newMythenSoftware/settingsdir/gotthard
|
||||
0:ffdir /home/l_maliakal_d
|
||||
0:extsig:0 off
|
||||
#0:detectorip 129.129.202.9
|
||||
0:detectormac 00:aa:bb:cc:dd:ee
|
||||
@@ -16,6 +20,7 @@ hostname bchip007
|
||||
master -1
|
||||
sync none
|
||||
outdir /bigRAID/datadir_gotthard/rec_test_data
|
||||
ffdir /home/l_maliakal_d
|
||||
headerbefore none
|
||||
headerafter none
|
||||
headerbeforepar none
|
||||
@@ -24,4 +29,4 @@ badchannels none
|
||||
angconv none
|
||||
globaloff 0.000000
|
||||
binsize 0.001000
|
||||
|
||||
threaded 1
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
detsizechan 2560 1
|
||||
|
||||
hostname bchip074+bchip075+
|
||||
|
||||
|
||||
0:extsig:0 trigger_in_rising_edge
|
||||
0:rx_tcpport 1954
|
||||
0:rx_udpport 50001
|
||||
0:vhighvoltage 0
|
||||
|
||||
1:extsig:0 trigger_in_rising_edge
|
||||
1:rx_tcpport 1955
|
||||
1:rx_udpport 50002
|
||||
1:vhighvoltage 0
|
||||
|
||||
##############################################################################
|
||||
#########
|
||||
######### Uncomment this part to use the gotthard25umZmq process
|
||||
#########
|
||||
##############################################################################
|
||||
|
||||
# #replace my_receiver_hostname with the hostname of IP of the machine where the receiver runs
|
||||
#0:rx_zmqip my_receiver_hostname
|
||||
#0:rx_zmqport 30003
|
||||
# #replace my_client_hostname with the hostname of IP of the machine where the client/GUI or softIOC runs
|
||||
#0:zmqip my_client_hostname
|
||||
#0:zmqport 40003
|
||||
|
||||
# #replace my_receiver_hostname with the hostname of IP of the machine where the receiver runs
|
||||
#1:rx_zmqip my_receiver_hostname
|
||||
#1:rx_zmqport 30004
|
||||
# #replace my_client_hostname with the hostname of IP of the machine where the client/GUI or softIOC runs
|
||||
#1:zmqip my_client_hostname
|
||||
#1:zmqport 40004
|
||||
|
||||
##############################################################################
|
||||
#########
|
||||
######### until here
|
||||
#########
|
||||
##############################################################################
|
||||
|
||||
|
||||
r_readfreq 1
|
||||
rx_datastream 1
|
||||
|
||||
#replace my_receiver_hostname with the hostname of 1Gb IP of the machine where the receiver runs
|
||||
rx_hostname my_receiver_hostname
|
||||
rx_datastream 1
|
||||
outdir /tmp/
|
||||
|
||||
|
||||
settings veryhighgain
|
||||
exptime 0.000005
|
||||
period 0.0001
|
||||
|
||||
vhighvoltage 90
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
Turn on the two receivers:
|
||||
slsReceiver -t1954 &
|
||||
slsReceiver -t1955 &
|
||||
|
||||
Switch on the photon conversion on the receiver machine (replace my_receiver_hostname):
|
||||
gotthard25umZmq my_receiver_hostname 30003 my_receiver_hostname 40003 &
|
||||
|
||||
Run the configuration file:
|
||||
sls_detector_put config bchip2modules.config
|
||||
|
||||
|
||||
Start your measurements using the command line, the slsDetectorGui or the EPICS driver
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
hostname bchip038+
|
||||
|
||||
settingsdir /home/mySoft/slsDetectorsPackage/settingsdir/jungfrau
|
||||
caldir /home/mySoft/slsDetectorsPackage/settingsdir/jungfrau
|
||||
lock 0
|
||||
|
||||
0:rx_udpport 50004
|
||||
0:rx_udpip 10.1.1.100
|
||||
0:detectorip 10.1.1.10
|
||||
|
||||
rx_hostname pcmoench01
|
||||
|
||||
powerchip 1
|
||||
|
||||
#extsig:0 trigger_in_rising_edge
|
||||
#timing trigger
|
||||
timing auto
|
||||
|
||||
outdir /external_pool/jungfrau_data/softwaretest
|
||||
|
||||
threaded 1
|
||||
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
detsizechan 1024 1024
|
||||
hostname bchip048+bchip052+
|
||||
|
||||
settingsdir /home/mySoft/slsDetectorsPackage/settingsdir/jungfrau
|
||||
caldir /home/mySoft/slsDetectorsPackage/settingsdir/jungfrau
|
||||
lock 0
|
||||
|
||||
|
||||
0:rx_udpport 50004
|
||||
0:rx_udpip 10.1.1.100
|
||||
0:rx_udpmac F4:52:14:2F:32:00
|
||||
@@ -17,9 +22,9 @@ hostname bchip048+bchip052+
|
||||
rx_hostname pcmoench01
|
||||
|
||||
powerchip 1
|
||||
#extsig:0 trigger_in_rising_edge
|
||||
#timing trigger
|
||||
extsig:0 trigger_in_rising_edge
|
||||
timing auto
|
||||
|
||||
outdir /external_pool/jungfrau_data/softwaretest
|
||||
|
||||
threaded 1
|
||||
|
||||
|
||||
@@ -1,491 +0,0 @@
|
||||
hostname bchip085+
|
||||
|
||||
patword 0000 0000000000000000
|
||||
patword 0001 0000000000000000
|
||||
patword 0002 0008000900080000
|
||||
patword 0003 0008000900080000
|
||||
patword 0004 0008000900080000
|
||||
patword 0005 0008000900080000
|
||||
patword 0006 0008000900080000
|
||||
patword 0007 0008000900080000
|
||||
patword 0008 0008000900080000
|
||||
patword 0009 0008000900080000
|
||||
patword 000a 0008000900080000
|
||||
patword 000b 0008000900080000
|
||||
patword 000c 0008000900080000
|
||||
patword 000d 0008000900080000
|
||||
patword 000e 0008000900080000
|
||||
patword 000f 0008000900080000
|
||||
patword 0010 0008000900080000
|
||||
patword 0011 0008000900080000
|
||||
patword 0012 0008000900080000
|
||||
patword 0013 0008000900080000
|
||||
patword 0014 0008000900080000
|
||||
patword 0015 0008000900080000
|
||||
patword 0016 0008400900080020
|
||||
patword 0017 0008400900080020
|
||||
patword 0018 0008599f0418503a
|
||||
patword 0019 0008599f0418503a
|
||||
patword 001a 0108599f0418503a
|
||||
patword 001b 0108599f0418503a
|
||||
patword 001c 0108599f0418503a
|
||||
patword 001d 0108599f0418503a
|
||||
patword 001e 0108599f0418503a
|
||||
patword 001f 0108599f0418503a
|
||||
patword 0020 0108599f0418503a
|
||||
patword 0021 0108599f0418503a
|
||||
patword 0022 0108599f0418503a
|
||||
patword 0023 0108599f0418503a
|
||||
patword 0024 0108599f0418503a
|
||||
patword 0025 0108599f0418503a
|
||||
patword 0026 0108599f0418503a
|
||||
patword 0027 0108599f0418503a
|
||||
patword 0028 0108599f0418503a
|
||||
patword 0029 0108599f0418503a
|
||||
patword 002a 0108599f0418503a
|
||||
patword 002b 0108599f0418503a
|
||||
patword 002c 0108599f0418503a
|
||||
patword 002d 0108599f0418503a
|
||||
patword 002e 0108599f0418503a
|
||||
patword 002f 0108599f0418503a
|
||||
patword 0030 0108599f0418503a
|
||||
patword 0031 0108599f0418503a
|
||||
patword 0032 0108599f0418503a
|
||||
patword 0033 0108599f0418503a
|
||||
patword 0034 0108599f0418503a
|
||||
patword 0035 0108599f0418503a
|
||||
patword 0036 0108599f0418503a
|
||||
patword 0037 0108599f0418503a
|
||||
patword 0038 0108599f0418503a
|
||||
patword 0039 0108599f0418503a
|
||||
patword 003a 0108599f0418503a
|
||||
patword 003b 0108599f0418503a
|
||||
patword 003c 0108599f0418503a
|
||||
patword 003d 0108599f0418503a
|
||||
patword 003e 0108599f0418503a
|
||||
patword 003f 0108599f0418503a
|
||||
patword 0040 0108599f0418503a
|
||||
patword 0041 0108599f0418503a
|
||||
patword 0042 0108599f0418503a
|
||||
patword 0043 0108599f0418503a
|
||||
patword 0044 0108599f0418503a
|
||||
patword 0045 0108599f0418503a
|
||||
patword 0046 0108599f0418503a
|
||||
patword 0047 0108599f0418503a
|
||||
patword 0048 0108599f0418503a
|
||||
patword 0049 0108599f0418503a
|
||||
patword 004a 0108599f0418503a
|
||||
patword 004b 0108599f0418503a
|
||||
patword 004c 0108599f0418503a
|
||||
patword 004d 0108599f0418503a
|
||||
patword 004e 0108599f0418503a
|
||||
patword 004f 0108599f0418503a
|
||||
patword 0050 0108599f0418503a
|
||||
patword 0051 0108599f0418503a
|
||||
patword 0052 0108599f0418503a
|
||||
patword 0053 0108599f0418503a
|
||||
patword 0054 0108599f0418503a
|
||||
patword 0055 0108599f0418503a
|
||||
patword 0056 0108599f0418503a
|
||||
patword 0057 0108599f0418503a
|
||||
patword 0058 0108599f0418503a
|
||||
patword 0059 0108599f0418503a
|
||||
patword 005a 0108599f0418503a
|
||||
patword 005b 0108599f0418503a
|
||||
patword 005c 0108599f0418503a
|
||||
patword 005d 0108599f0418503a
|
||||
patword 005e 0108599f0418503a
|
||||
patword 005f 0108599f0418503a
|
||||
patword 0060 0108599f0418503a
|
||||
patword 0061 0108599f0418503a
|
||||
patword 0062 0108599f0418503a
|
||||
patword 0063 0108599f0418503a
|
||||
patword 0064 0108599f0418503a
|
||||
patword 0065 0108599f0418503a
|
||||
patword 0066 0108599f0418503a
|
||||
patword 0067 0108599f0418503a
|
||||
patword 0068 0108599f0418503a
|
||||
patword 0069 0108599f0418503a
|
||||
patword 006a 0108599f0418503a
|
||||
patword 006b 0108599f0418503a
|
||||
patword 006c 0108599f0418503a
|
||||
patword 006d 0108599f0418503a
|
||||
patword 006e 0108599f0418503a
|
||||
patword 006f 0108599f0418503a
|
||||
patword 0070 0108599f0418503a
|
||||
patword 0071 0108599f0418503a
|
||||
patword 0072 0108599f0418503a
|
||||
patword 0073 0108599f0418503a
|
||||
patword 0074 0108599f0418503a
|
||||
patword 0075 0108599f0418503a
|
||||
patword 0076 0108599f0418503a
|
||||
patword 0077 0108599f0418503a
|
||||
patword 0078 0108599f0418503a
|
||||
patword 0079 0108599f0418503a
|
||||
patword 007a 0108599f0418503a
|
||||
patword 007b 0108599f0418503a
|
||||
patword 007c 0108599f0418503a
|
||||
patword 007d 0108599f0418503a
|
||||
patword 007e 010859960418503a
|
||||
patword 007f 010859960418503a
|
||||
patword 0080 010859960418503a
|
||||
patword 0081 010859960418503a
|
||||
patword 0082 010859960418503a
|
||||
patword 0083 010859960418503a
|
||||
patword 0084 010859960418503a
|
||||
patword 0085 010859960418503a
|
||||
patword 0086 010859960418503a
|
||||
patword 0087 010859960418503a
|
||||
patword 0088 010859960418503a
|
||||
patword 0089 010859960418503a
|
||||
patword 008a 010859960418503a
|
||||
patword 008b 010859960418503a
|
||||
patword 008c 010859960418503a
|
||||
patword 008d 010859960418503a
|
||||
patword 008e 010859960418503a
|
||||
patword 008f 010859960418503a
|
||||
patword 0090 010859960418503a
|
||||
patword 0091 010859960418503a
|
||||
patword 0092 010819960418501a
|
||||
patword 0093 010819960418501a
|
||||
patword 0094 010819960418501a
|
||||
patword 0095 010819960418501a
|
||||
patword 0096 030819960418501a
|
||||
patword 0097 030819960418501a
|
||||
patword 0098 030819960418501a
|
||||
patword 0099 030819960418501a
|
||||
patword 009a 030819960418501a
|
||||
patword 009b 030819960418501a
|
||||
patword 009c 030819960418501a
|
||||
patword 009d 030819960418501a
|
||||
patword 009e 030819960418501a
|
||||
patword 009f 030819960418501a
|
||||
patword 00a0 030819960418501a
|
||||
patword 00a1 030819960418501a
|
||||
patword 00a2 030819960418501a
|
||||
patword 00a3 030819960418501a
|
||||
patword 00a4 030819960418501a
|
||||
patword 00a5 030819960418501a
|
||||
patword 00a6 030819960418501a
|
||||
patword 00a7 030819960418501a
|
||||
patword 00a8 030819960418501a
|
||||
patword 00a9 030819960418501a
|
||||
patword 00aa 030819960418501a
|
||||
patword 00ab 030819960418501a
|
||||
patword 00ac 030819960008501a
|
||||
patword 00ad 030819960008501a
|
||||
patword 00ae 030819960008501a
|
||||
patword 00af 030819960008501a
|
||||
patword 00b0 030819960008501a
|
||||
patword 00b1 030819960008501a
|
||||
patword 00b2 030819960008501a
|
||||
patword 00b3 030819960008501a
|
||||
patword 00b4 030819960008501a
|
||||
patword 00b5 030819960008501a
|
||||
patword 00b6 030819960008501a
|
||||
patword 00b7 030819960008501a
|
||||
patword 00b8 030819960008501a
|
||||
patword 00b9 030819960008501a
|
||||
patword 00ba 030819960008501a
|
||||
patword 00bb 030819960008501a
|
||||
patword 00bc 030819960008501a
|
||||
patword 00bd 030819960008501a
|
||||
patword 00be 030819960008501a
|
||||
patword 00bf 030819960008501a
|
||||
patword 00c0 0308199f0008501a
|
||||
patword 00c1 0308199f0008501a
|
||||
patword 00c2 0308199f0008501a
|
||||
patword 00c3 0308199f0008501a
|
||||
patword 00c4 0308199f0008501a
|
||||
patword 00c5 0308199f0008501a
|
||||
patword 00c6 0308199f0008501a
|
||||
patword 00c7 0308199f0008501a
|
||||
patword 00c8 0308199f0008501a
|
||||
patword 00c9 0308199f0008501a
|
||||
patword 00ca 0308199f0008501a
|
||||
patword 00cb 0308199f0008501a
|
||||
patword 00cc 0308199f0008501a
|
||||
patword 00cd 0308199f0008501a
|
||||
patword 00ce 0308199f0008501a
|
||||
patword 00cf 0308199f0008501a
|
||||
patword 00d0 0308199f0008501a
|
||||
patword 00d1 0308199f0008501a
|
||||
patword 00d2 0308199f0008501a
|
||||
patword 00d3 0308199f0008501a
|
||||
patword 00d4 0308599f0008503a
|
||||
patword 00d5 0308599f0008503a
|
||||
patword 00d6 030c599f000850ba
|
||||
patword 00d7 030c599f000850ba
|
||||
patword 00d8 030c599f000850ba
|
||||
patword 00d9 030c599f000850ba
|
||||
patword 00da 030c599f000850ba
|
||||
patword 00db 030c599f000850ba
|
||||
patword 00dc 030c599f000850ba
|
||||
patword 00dd 030c599f000850ba
|
||||
patword 00de 030c599f000850ba
|
||||
patword 00df 030c599f000850ba
|
||||
patword 00e0 030c599f000850ba
|
||||
patword 00e1 030c599f000850ba
|
||||
patword 00e2 030c599f000850ba
|
||||
patword 00e3 030c599f000850ba
|
||||
patword 00e4 030c599f000850ba
|
||||
patword 00e5 030c599f000850ba
|
||||
patword 00e6 030c599f000850ba
|
||||
patword 00e7 030c599f000850ba
|
||||
patword 00e8 030c599f000850ba
|
||||
patword 00e9 030c599f000850ba
|
||||
patword 00ea 030c799f010858ba
|
||||
patword 00eb 030c799f010858ba
|
||||
patword 00ec 030c599f000850ba
|
||||
patword 00ed 030c599f000850ba
|
||||
patword 00ee 030c599f000850ba
|
||||
patword 00ef 030c599f000850ba
|
||||
patword 00f0 030c599f000850ba
|
||||
patword 00f1 030c599f000850ba
|
||||
patword 00f2 030c599f000850ba
|
||||
patword 00f3 030c599f000850ba
|
||||
patword 00f4 030c599f000850ba
|
||||
patword 00f5 030c599f000850ba
|
||||
patword 00f6 030c599f000850ba
|
||||
patword 00f7 030c599f000850ba
|
||||
patword 00f8 030c599f000850ba
|
||||
patword 00f9 030c599f000850ba
|
||||
patword 00fa 030c599f000850ba
|
||||
patword 00fb 030c599f000850ba
|
||||
patword 00fc 030c599f000850ba
|
||||
patword 00fd 030c599f000850ba
|
||||
patword 00fe 030c599f000850ba
|
||||
patword 00ff 030c599f000850ba
|
||||
patword 0100 030c599f000850ba
|
||||
patword 0101 030c599f000850ba
|
||||
patword 0102 030c599f400850ba
|
||||
patword 0103 030c599f400850ba
|
||||
patword 0104 030c599f600850ba
|
||||
patword 0105 030c599f400850ba
|
||||
patword 0106 030c599f400850ba
|
||||
patword 0107 030c599f400850ba
|
||||
patword 0108 870c599f682e50ba
|
||||
patword 0109 870c599f482850ba
|
||||
patword 010a 870c599f000e50ba
|
||||
patword 010b 870c599f000850ba
|
||||
patword 010c 870c599f000e50ba
|
||||
patword 010d 870c599f000850ba
|
||||
patword 010e 870c599f000e50ba
|
||||
patword 010f 870c599f000850ba
|
||||
patword 0110 870c599f000e50ba
|
||||
patword 0111 870c599f000850ba
|
||||
patword 0112 870c599f000e50ba
|
||||
patword 0113 870c599f000850ba
|
||||
patword 0114 870c599f000e50ba
|
||||
patword 0115 870c599f000850ba
|
||||
patword 0116 870c599f000e50ba
|
||||
patword 0117 870c599f000850ba
|
||||
patword 0118 870c599f000e50ba
|
||||
patword 0119 870c599f000850ba
|
||||
patword 011a 870c599f000e50ba
|
||||
patword 011b 870c599f000850ba
|
||||
patword 011c 870c599f000e50ba
|
||||
patword 011d 870c599f000850ba
|
||||
patword 011e 870c599f000e50ba
|
||||
patword 011f 870c599f000850ba
|
||||
patword 0120 870c599f000e50ba
|
||||
patword 0121 870c599f000850ba
|
||||
patword 0122 870c599f200e50ba
|
||||
patword 0123 870c599f000850ba
|
||||
patword 0124 870c599f000e50ba
|
||||
patword 0125 870c599f000850ba
|
||||
patword 0126 870c599f000e50ba
|
||||
patword 0127 870c599f000850ba
|
||||
patword 0128 870c599f000e50ba
|
||||
patword 0129 870c599f000850ba
|
||||
patword 012a 870c599f000e50ba
|
||||
patword 012b 870c599f000850ba
|
||||
patword 012c 870c599f000e50ba
|
||||
patword 012d 870c599f000850ba
|
||||
patword 012e 870c599f000e50ba
|
||||
patword 012f 870c599f000850ba
|
||||
patword 0130 870c599f000e50ba
|
||||
patword 0131 870c599f000850ba
|
||||
patword 0132 870c599f000e50ba
|
||||
patword 0133 870c599f000850ba
|
||||
patword 0134 870c599f000e50ba
|
||||
patword 0135 870c599f000850ba
|
||||
patword 0136 870c599f000e50ba
|
||||
patword 0137 870c599f000850ba
|
||||
patword 0138 870c599f000e50ba
|
||||
patword 0139 870c599f000850ba
|
||||
patword 013a 870c599f282e50ba
|
||||
patword 013b 870c599f082850ba
|
||||
patword 013c 870c599f000e50ba
|
||||
patword 013d 870c599f000850ba
|
||||
patword 013e 870c599f000e50ba
|
||||
patword 013f 870c599f000850ba
|
||||
patword 0140 870c599f000e50ba
|
||||
patword 0141 870c599f000850ba
|
||||
patword 0142 870c599f000e50ba
|
||||
patword 0143 870c599f000850ba
|
||||
patword 0144 870c599f000e50ba
|
||||
patword 0145 870c599f000850ba
|
||||
patword 0146 870c599f000e50ba
|
||||
patword 0147 870c599f000850ba
|
||||
patword 0148 870c599f000e50ba
|
||||
patword 0149 870c599f000850ba
|
||||
patword 014a 870c599f000e50ba
|
||||
patword 014b 870c599f000850ba
|
||||
patword 014c 870c599f000e50ba
|
||||
patword 014d 870c599f000850ba
|
||||
patword 014e 870c599f000e50ba
|
||||
patword 014f 870c599f000850ba
|
||||
patword 0150 870c599f000e50ba
|
||||
patword 0151 870c599f000850ba
|
||||
patword 0152 870c599f000e50ba
|
||||
patword 0153 870c599f000850ba
|
||||
patword 0154 870c599f200e50ba
|
||||
patword 0155 870c599f000850ba
|
||||
patword 0156 870c599f000e50ba
|
||||
patword 0157 870c599f000850ba
|
||||
patword 0158 870c599f000e50ba
|
||||
patword 0159 870c599f000850ba
|
||||
patword 015a 870c599f000e50ba
|
||||
patword 015b 870c599f000850ba
|
||||
patword 015c 870c599f000e50ba
|
||||
patword 015d 870c599f000850ba
|
||||
patword 015e 870c599f000e50ba
|
||||
patword 015f 870c599f000850ba
|
||||
patword 0160 870c599f000e50ba
|
||||
patword 0161 870c599f000850ba
|
||||
patword 0162 870c599f000e50ba
|
||||
patword 0163 870c599f000850ba
|
||||
patword 0164 870c599f000e50ba
|
||||
patword 0165 870c599f000850ba
|
||||
patword 0166 870c599f000e50ba
|
||||
patword 0167 870c599f000850ba
|
||||
patword 0168 870c599f000e50ba
|
||||
patword 0169 870c599f000850ba
|
||||
patword 016a 870c599f000e50ba
|
||||
patword 016b 870c599f000850ba
|
||||
patword 016c 070c599f000850ba
|
||||
patword 016d 070c599f000850ba
|
||||
patword 016e 000c599f000850ba
|
||||
patword 016f 000c599f000850ba
|
||||
patword 0170 0008599f200e503a
|
||||
patword 0171 0008599f0008503a
|
||||
patword 0172 0008599f200e503a
|
||||
patword 0173 0008599f0008503a
|
||||
patword 0174 0008599f0008503a
|
||||
patword 0175 0008599f0008503a
|
||||
patword 0176 0008599f0008503a
|
||||
patword 0177 0008599f0008503a
|
||||
patword 0178 0008599f0008503a
|
||||
patword 0179 0008599f0008503a
|
||||
patword 017a 0008599f0008503a
|
||||
patword 017b 0008599f0008503a
|
||||
patword 017c 0008599f0008503a
|
||||
patword 017d 0008599f0008503a
|
||||
patword 017e 0008599f0008503a
|
||||
patword 017f 0008599f0008503a
|
||||
patword 0180 0008599f0008503a
|
||||
patword 0181 0008599f0008503a
|
||||
patword 0182 0008599f0008503a
|
||||
patword 0183 0008599f0008503a
|
||||
patword 0184 0008599f0008503a
|
||||
patword 0185 0008599f0008503a
|
||||
patword 0186 0008599f0008503a
|
||||
patword 0187 0008599f0008503a
|
||||
patword 0188 0008599f0008503a
|
||||
patword 0189 0008599f0008503a
|
||||
patword 018a 0008599f0008503a
|
||||
patword 018b 0008599f0008503a
|
||||
patword 018c 0008599f0008503a
|
||||
patword 018d 0008599f0008503a
|
||||
patioctrl 8f0effff6dbffdbf
|
||||
patclkctrl 0000000000000000
|
||||
patlimits 0000 018c
|
||||
patloop0 013a 016b
|
||||
patnloop0 199
|
||||
patloop1 0400 0400
|
||||
patnloop1 0
|
||||
patloop2 0400 0400
|
||||
patnloop2 0
|
||||
patwait0 00aa
|
||||
patwaittime0 40000
|
||||
patwait1 0400
|
||||
patwaittime1 0
|
||||
patwait2 0400
|
||||
patwaittime2 0
|
||||
|
||||
|
||||
####mcp2011
|
||||
#0:rx_udpip 10.1.1.102
|
||||
#0:detectorip 10.1.1.19
|
||||
#0:rx_udpport 32410
|
||||
####gui listening to
|
||||
#zmqip 129.129.202.131
|
||||
#zmqport 30001
|
||||
####data streaming out of
|
||||
#rx_zmqip 10.1.2.103
|
||||
#rx_zmqport 30003
|
||||
#0:rx_hostname mpc2011
|
||||
|
||||
####mx-test-1
|
||||
0:rx_udpip 10.1.1.100
|
||||
0:detectorip 10.1.1.19
|
||||
0:rx_udpport 32410
|
||||
####gui listening to (on receiver pc)
|
||||
zmqip 129.129.202.92
|
||||
zmqport 30001
|
||||
####data streaming out of
|
||||
rx_zmqip 10.1.1.100
|
||||
rx_zmqport 30003
|
||||
0:rx_hostname pcmoench01
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#turn on datastream from commandline
|
||||
rx_datastream 1
|
||||
|
||||
r_readfreq 1
|
||||
|
||||
#0:configuremac -1
|
||||
rx_datastream 1
|
||||
|
||||
r_readfreq 1
|
||||
|
||||
|
||||
dac:6 800
|
||||
dac:0 1300
|
||||
dac:4 1428
|
||||
dac:1 1000
|
||||
dac:7 900
|
||||
dac:3 680
|
||||
dac:2 1400
|
||||
dac:5 1200
|
||||
adcinvert 4a342593
|
||||
samples 5000
|
||||
adcphase 90
|
||||
adcpipeline 15
|
||||
adcreg 14 40
|
||||
powerchip 1
|
||||
vhighvoltage 90
|
||||
period 0.005
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
frames 100
|
||||
period 0.1
|
||||
outdir /scratch/
|
||||
enablefwrite 0
|
||||
|
||||
|
||||
|
||||
@@ -8,11 +8,13 @@ hostname bchip007+bchip009+
|
||||
#0:port 1952
|
||||
#0:stopport 1953
|
||||
#0:rx_tcpport 1956
|
||||
0:settingsdir /home/l_msdetect/dhanya/slsDetectorsPackage/settingsdir/gotthard
|
||||
0:angdir 1.000000
|
||||
0:moveflag 0.000000
|
||||
0:lock 0
|
||||
0:caldir /home/l_msdetect/dhanya/slsDetectorsPackage/settingsdir/gotthard
|
||||
0:ffdir /home/l_msdetect
|
||||
0:extsig:0 off
|
||||
|
||||
0:detectorip 10.1.1.2
|
||||
#0:detectormac 00:aa:bb:cc:dd:ee
|
||||
#0:rx_udpport 50001
|
||||
@@ -26,11 +28,13 @@ hostname bchip007+bchip009+
|
||||
#1:port 1952
|
||||
#1:stopport 1953
|
||||
1:rx_tcpport 1957
|
||||
1:settingsdir /home/l_msdetect/dhanya/slsDetectorsPackage/settingsdir/gotthard
|
||||
1:angdir 1.000000
|
||||
1:moveflag 0.000000
|
||||
1:lock 0
|
||||
1:caldir /home/l_msdetect/dhanya/slsDetectorsPackage/settingsdir/gotthard
|
||||
1:ffdir /home/l_msdetect
|
||||
1:extsig:0 off
|
||||
|
||||
1:detectorip 10.1.2.2
|
||||
#1:detectormac 00:aa:bb:cc:dd:ee
|
||||
1:rx_udpport 50004
|
||||
@@ -52,4 +56,4 @@ badchannels none
|
||||
angconv none
|
||||
globaloff 0.000000
|
||||
binsize 0.001000
|
||||
|
||||
threaded 1
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
MESSAGE( STATUS "CMAKE_CURRENT_SOURCE_DIR: " ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||
MESSAGE( STATUS "PROJECT_SOURCE_DIR: " ${PROJECT_SOURCE_DIR} )
|
||||
|
||||
|
||||
|
||||
include_directories(
|
||||
${PROJECT_SOURCE_DIR}/catch
|
||||
)
|
||||
|
||||
if(SLS_USE_TESTS)
|
||||
set(TEST_SOURCES
|
||||
src/test-slsDetector.cpp
|
||||
src/test.cpp
|
||||
)
|
||||
add_executable(detector_test ${TEST_SOURCES})
|
||||
|
||||
target_link_libraries(detector_test
|
||||
slsDetectorShared
|
||||
slsSupportLib
|
||||
pthread
|
||||
rt
|
||||
)
|
||||
set_target_properties(detector_test PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
)
|
||||
add_executable(a src/a.cpp)
|
||||
|
||||
target_link_libraries(a
|
||||
slsDetectorShared
|
||||
slsSupportLib
|
||||
pthread
|
||||
rt
|
||||
)
|
||||
set_target_properties(a PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
|
||||
#include "catch.hpp"
|
||||
|
||||
#include "ClientSocket.h"
|
||||
#include "Timer.h"
|
||||
#include "logger.h"
|
||||
#include "slsDetector.h"
|
||||
#include "sls_detector_defs.h"
|
||||
#include "sls_detector_exceptions.h"
|
||||
#include "sls_detector_funcs.h"
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
#define VERBOSE
|
||||
|
||||
using sls::RuntimeError;
|
||||
using sls::SharedMemoryError;
|
||||
using sls::SocketError;
|
||||
using sls::DetectorError;
|
||||
|
||||
int main() {
|
||||
|
||||
|
||||
const std::string hostname = "beb083";
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setOnline(true);
|
||||
std::cout << "hostname: " << d.getHostname() << '\n';
|
||||
d.setThresholdTemperature(50);
|
||||
// try{
|
||||
// d.setThresholdTemperature(50);
|
||||
// }catch(const DetectorError &e){
|
||||
// std::cout << "Caught: " << e.what() << '\n';
|
||||
// }
|
||||
// std::cout << "hostname: " << d.getHostname() << '\n';
|
||||
// std::cout << "exptime: " << d.setDAC(-1, slsDetectorDefs::E_Vrf, 0) << '\n';
|
||||
|
||||
|
||||
|
||||
|
||||
// slsDetector d2(type);
|
||||
// std::cout << "Online: " << d2.getOnlineFlag() << '\n';
|
||||
// d2.setHostname("beb55555");
|
||||
// d2.setOnline(true);
|
||||
// std::cout << "Online: " << d2.getOnlineFlag() << '\n';
|
||||
// std::cout << "hostname: " << d2.getHostname() << '\n';
|
||||
|
||||
// std::cout << "port: " << d.getControlPort() << '\n';
|
||||
// d.setOnline(true);
|
||||
// d.setReceiverOnline(true);
|
||||
// std::cout << "reciver version: " << std::hex << d.getReceiverVersion() << '\n';
|
||||
// // std::cout << "version: " << d.getId(slsDetectorDefs::CLIENT_RECEIVER_API_VERSION) << '\n';
|
||||
// d.freeSharedMemory();
|
||||
// //Catch exception
|
||||
// try {
|
||||
// throw RuntimeError("something went wrong");
|
||||
// } catch (RuntimeError &e) {
|
||||
// std::cout << "Caught RuntimeError with message : " << e.what() << '\n';
|
||||
// }
|
||||
|
||||
// //Catch base class
|
||||
// try {
|
||||
// throw SharedMemoryError("Could not create shared memory");
|
||||
// } catch (RuntimeError &e) {
|
||||
// std::cout << "Caught: " << e.what() << '\n';
|
||||
// }
|
||||
|
||||
// //Catch base class after looking for something else
|
||||
// try {
|
||||
// throw SharedMemoryError("Could not create shared memory");
|
||||
// } catch (SocketError &e) {
|
||||
|
||||
// std::cout << "Caught Socket error: " << e.what() << '\n';
|
||||
|
||||
// } catch (RuntimeError &e) {
|
||||
// std::cout << "Caught base class: " << e.what() << '\n';
|
||||
// }
|
||||
|
||||
// //Catch any after looking for something else
|
||||
// try {
|
||||
// throw SharedMemoryError("Could not create shared memory");
|
||||
// } catch (SocketError &e) {
|
||||
|
||||
// std::cout << "Caught Socket error: " << e.what() << '\n';
|
||||
|
||||
// } catch (...) {
|
||||
// std::cout << "Caught Something else probably should have let me crash\n";
|
||||
// }
|
||||
|
||||
|
||||
// throw RuntimeError("This one we missed");
|
||||
return 0;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
// #include "catch.hpp"
|
||||
// #include "multiSlsDetector.h"
|
||||
|
||||
// #include <iostream>
|
||||
// TEST_CASE("Initialize a detector") {
|
||||
// multiSlsDetector det(0, true, true);
|
||||
// std::cout << "Size: " << det.getNumberOfDetectors() << std::endl;
|
||||
// std::cout << "Hostname: " << det.getHostname() << std::endl;
|
||||
// REQUIRE(false);
|
||||
|
||||
// }
|
||||
@@ -1,199 +0,0 @@
|
||||
|
||||
#include "catch.hpp"
|
||||
|
||||
#include "ClientSocket.h"
|
||||
#include "logger.h"
|
||||
#include "slsDetector.h"
|
||||
#include "sls_detector_defs.h"
|
||||
|
||||
#include "Timer.h"
|
||||
#include "sls_detector_funcs.h"
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#define VERBOSE
|
||||
|
||||
auto type_enum = slsDetectorDefs::detectorType::EIGER;
|
||||
const std::string hostname = "beb083";
|
||||
const std::string type_string = "Eiger";
|
||||
const std::string my_ip = "129.129.205.242";
|
||||
|
||||
TEST_CASE("single EIGER detector no receiver basic set and get") {
|
||||
//TODO! this test should take command line arguments for config
|
||||
|
||||
//Read type by connecting to the detector
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
CHECK(type == type_enum);
|
||||
|
||||
//Create slsDetector of said type and set hostname and detector online
|
||||
slsDetector d(type);
|
||||
CHECK(d.getDetectorTypeAsEnum() == type);
|
||||
CHECK(d.getDetectorTypeAsString() == type_string);
|
||||
|
||||
d.setHostname(hostname);
|
||||
CHECK(d.getHostname() == hostname);
|
||||
|
||||
d.setOnline(true);
|
||||
CHECK(d.getOnlineFlag() == true);
|
||||
|
||||
CHECK(d.getReceiverOnline() == false);
|
||||
CHECK(d.checkDetectorVersionCompatibility() == slsDetectorDefs::OK);
|
||||
|
||||
//Setting and reading exposure time
|
||||
auto t = 1000000000;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME, t);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME) == t);
|
||||
|
||||
//size of an eiger half module with and without gap pixels
|
||||
CHECK(d.getTotalNumberOfChannels() == 256 * 256 * 4);
|
||||
CHECK(d.getTotalNumberOfChannels(slsDetectorDefs::dimension::X) == 1024);
|
||||
CHECK(d.getTotalNumberOfChannels(slsDetectorDefs::dimension::Y) == 256);
|
||||
// CHECK(d.getTotalNumberOfChannels(slsDetectorDefs::dimension::Z) == 1);
|
||||
CHECK(d.getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::dimension::X) == 1024);
|
||||
CHECK(d.getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::dimension::Y) == 256);
|
||||
// CHECK(d.getTotalNumberOfChannelsInclGapPixels(slsDetectorDefs::dimension::Z) == 1);
|
||||
|
||||
CHECK(d.getNChans() == 256 * 256);
|
||||
CHECK(d.getNChans(slsDetectorDefs::dimension::X) == 256);
|
||||
CHECK(d.getNChans(slsDetectorDefs::dimension::Y) == 256);
|
||||
// CHECK(d.getNChans(slsDetectorDefs::dimension::Z) == 1);
|
||||
|
||||
CHECK(d.getNChips() == 4);
|
||||
CHECK(d.getNChips(slsDetectorDefs::dimension::X) == 4);
|
||||
CHECK(d.getNChips(slsDetectorDefs::dimension::Y) == 1);
|
||||
// CHECK(d.getNChips(slsDetectorDefs::dimension::Z) == 1);
|
||||
|
||||
d.freeSharedMemory();
|
||||
}
|
||||
|
||||
TEST_CASE("Set control port then create a new object with this control port") {
|
||||
/*
|
||||
TODO!
|
||||
Standard port but should not be hardcoded
|
||||
Is this the best way to initialize the detectors
|
||||
Using braces to make the object go out of scope
|
||||
*/
|
||||
int old_cport = DEFAULT_PORTNO;
|
||||
int old_sport = DEFAULT_PORTNO + 1;
|
||||
int new_cport = 1993;
|
||||
int new_sport = 2000;
|
||||
|
||||
{
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
CHECK(type == type_enum);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setOnline(true);
|
||||
CHECK(d.getControlPort() == old_cport);
|
||||
d.setControlPort(new_cport);
|
||||
CHECK(d.getStopPort() == old_sport);
|
||||
d.setStopPort(new_sport);
|
||||
d.freeSharedMemory();
|
||||
}
|
||||
{
|
||||
auto type = slsDetector::getTypeFromDetector(hostname, new_cport);
|
||||
CHECK(type == type_enum);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setControlPort(new_cport);
|
||||
d.setStopPort(new_sport);
|
||||
CHECK(d.getControlPort() == new_cport);
|
||||
CHECK(d.getStopPort() == new_sport);
|
||||
|
||||
d.setOnline(true);
|
||||
|
||||
//Reset standard ports
|
||||
d.setControlPort(old_cport);
|
||||
d.setStopPort(old_sport);
|
||||
d.freeSharedMemory();
|
||||
}
|
||||
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
CHECK(type == type_enum);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setOnline(true);
|
||||
CHECK(d.getStopPort() == DEFAULT_PORTNO + 1);
|
||||
}
|
||||
|
||||
TEST_CASE("Locking mechanism and last ip") {
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setOnline(true);
|
||||
|
||||
//Check that detector server is unlocked then lock
|
||||
CHECK(d.lockServer() == 0);
|
||||
d.lockServer(1);
|
||||
CHECK(d.lockServer() == 1);
|
||||
|
||||
//Can we do things while it is locked
|
||||
auto t = 1300000000;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME, t);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME) == t);
|
||||
|
||||
//unlock again
|
||||
d.lockServer(0);
|
||||
CHECK(d.lockServer() == 0);
|
||||
|
||||
CHECK(d.getLastClientIP() == my_ip);
|
||||
}
|
||||
|
||||
TEST_CASE("Excersise all possible set timer functions") {
|
||||
// FRAME_NUMBER, /**< number of real time frames: total number of acquisitions is number or frames*number of cycles */
|
||||
// ACQUISITION_TIME, /**< exposure time */
|
||||
// FRAME_PERIOD, /**< period between exposures */
|
||||
// DELAY_AFTER_TRIGGER, /**< delay between trigger and start of exposure or readout (in triggered mode) */
|
||||
// GATES_NUMBER, /**< number of gates per frame (in gated mode) */
|
||||
// CYCLES_NUMBER, /**< number of cycles: total number of acquisitions is number or frames*number of cycles */
|
||||
// ACTUAL_TIME, /**< Actual time of the detector's internal timer */
|
||||
// MEASUREMENT_TIME, /**< Time of the measurement from the detector (fifo) */
|
||||
|
||||
// PROGRESS, /**< fraction of measurement elapsed - only get! */
|
||||
// MEASUREMENTS_NUMBER,
|
||||
// FRAMES_FROM_START,
|
||||
// FRAMES_FROM_START_PG,
|
||||
// SAMPLES,
|
||||
// SUBFRAME_ACQUISITION_TIME, /**< subframe exposure time */
|
||||
// STORAGE_CELL_NUMBER, /**<number of storage cells */
|
||||
// SUBFRAME_DEADTIME, /**< subframe deadtime */
|
||||
// MEASURED_PERIOD, /**< measured period */
|
||||
// MEASURED_SUBPERIOD, /**< measured subperiod */
|
||||
// MAX_TIMERS
|
||||
|
||||
auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
slsDetector d(type);
|
||||
d.setHostname(hostname);
|
||||
d.setOnline(true);
|
||||
|
||||
//Number of frames
|
||||
auto frames = 10;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::FRAME_NUMBER, frames);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::FRAME_NUMBER) == frames);
|
||||
|
||||
auto t = 10000000;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME, t);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::ACQUISITION_TIME) == t);
|
||||
|
||||
auto period = 1000000000;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::FRAME_PERIOD, period);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::FRAME_PERIOD) == period);
|
||||
|
||||
// not implemented for EIGER
|
||||
// auto delay = 10000;
|
||||
// d.setTimer(slsDetectorDefs::timerIndex::DELAY_AFTER_TRIGGER, delay);
|
||||
// CHECK(d.setTimer(slsDetectorDefs::timerIndex::DELAY_AFTER_TRIGGER) == delay);
|
||||
|
||||
// auto gates = 1;
|
||||
// d.setTimer(slsDetectorDefs::timerIndex::GATES_NUMBER, gates);
|
||||
// CHECK(d.setTimer(slsDetectorDefs::timerIndex::GATES_NUMBER) == gates);
|
||||
|
||||
auto cycles = 2;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::CYCLES_NUMBER, cycles);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::CYCLES_NUMBER) == cycles);
|
||||
|
||||
auto subtime = 200;
|
||||
d.setTimer(slsDetectorDefs::timerIndex::SUBFRAME_ACQUISITION_TIME, subtime);
|
||||
CHECK(d.setTimer(slsDetectorDefs::timerIndex::SUBFRAME_ACQUISITION_TIME) == subtime);
|
||||
}
|
||||
|
||||
// TEST_CASE()
|
||||
@@ -1,3 +0,0 @@
|
||||
// tests-main.cpp
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include "catch.hpp"
|
||||
13
manual/docs/html/slsDetectors-FAQ/WARNINGS
Normal file
@@ -0,0 +1,13 @@
|
||||
No implementation found for style `graphicx'
|
||||
No implementation found for style `eucal'
|
||||
No implementation found for style `amsxtra'
|
||||
No implementation found for style `upref'
|
||||
No implementation found for style `layout'
|
||||
No implementation found for style `calc'
|
||||
No implementation found for style `framed'
|
||||
|
||||
? brace missing for \
|
||||
|
||||
Substitution of arg to newlabelxx delayed.
|
||||
|
||||
? brace missing for \textit
|
||||
101
manual/docs/html/slsDetectors-FAQ/footnode.html
Normal file
@@ -0,0 +1,101 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2008 (1.71)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Footnotes</TITLE>
|
||||
<META NAME="description" CONTENT="Footnotes">
|
||||
<META NAME="keywords" CONTENT="slsDetectors-FAQ">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="slsDetectors-FAQ.css">
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
|
||||
<DL>
|
||||
<DT><A NAME="foot1316">... tab </A><A
|
||||
HREF="MYTHEN.html#tex2html20"><SUP>3.1</SUP></A></DT>
|
||||
<DD>The default name of the calibrated trimfiles is <I>trimbits/beamline/</I><I>settings</I><I>/noise.snxxx</I> where <I>settings</I> is the chosen settings. You can change it in <I>src/qDetector.h</I> and then recompile the acquisition program as described in <A HREF="#sec:installation"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]"
|
||||
SRC="file:/usr/share/latex2html/icons/crossref.png"></A>.
|
||||
|
||||
<PRE>.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
</PRE>
|
||||
</DD>
|
||||
<DT><A NAME="foot1317">....snxxx </A><A
|
||||
HREF="MYTHEN.html#tex2html21"><SUP>3.2</SUP></A></DT>
|
||||
<DD>The default name of the calibration file <I>calibration/</I><I>settings</I><I>.snxxx</I> where <I>settings</I> is the chosen settings. You can change it in <I>src/qDetector.h</I> and then recompile the acquisition program.
|
||||
|
||||
<PRE>.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
.
|
||||
</PRE>
|
||||
</DD>
|
||||
</DL>
|
||||
</BODY>
|
||||
</HTML>
|
||||
1583
manual/docs/html/slsDetectors-FAQ/images.pl
Normal file
2096
manual/docs/html/slsDetectors-FAQ/images.tex
Normal file
BIN
manual/docs/html/slsDetectors-FAQ/img1.png
Normal file
|
After Width: | Height: | Size: 242 B |
BIN
manual/docs/html/slsDetectors-FAQ/img10.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img11.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img12.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img13.png
Normal file
|
After Width: | Height: | Size: 682 B |
BIN
manual/docs/html/slsDetectors-FAQ/img14.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img15.png
Normal file
|
After Width: | Height: | Size: 223 B |
BIN
manual/docs/html/slsDetectors-FAQ/img16.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img17.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img18.png
Normal file
|
After Width: | Height: | Size: 9.7 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img19.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img2.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img20.png
Normal file
|
After Width: | Height: | Size: 255 B |
BIN
manual/docs/html/slsDetectors-FAQ/img21.png
Normal file
|
After Width: | Height: | Size: 471 B |
BIN
manual/docs/html/slsDetectors-FAQ/img22.png
Normal file
|
After Width: | Height: | Size: 269 B |
BIN
manual/docs/html/slsDetectors-FAQ/img23.png
Normal file
|
After Width: | Height: | Size: 259 B |
BIN
manual/docs/html/slsDetectors-FAQ/img24.png
Normal file
|
After Width: | Height: | Size: 416 B |
BIN
manual/docs/html/slsDetectors-FAQ/img25.png
Normal file
|
After Width: | Height: | Size: 485 B |
BIN
manual/docs/html/slsDetectors-FAQ/img26.png
Normal file
|
After Width: | Height: | Size: 461 B |
BIN
manual/docs/html/slsDetectors-FAQ/img27.png
Normal file
|
After Width: | Height: | Size: 473 B |
BIN
manual/docs/html/slsDetectors-FAQ/img28.png
Normal file
|
After Width: | Height: | Size: 348 B |
BIN
manual/docs/html/slsDetectors-FAQ/img29.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img3.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img30.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img31.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img32.png
Normal file
|
After Width: | Height: | Size: 578 B |
BIN
manual/docs/html/slsDetectors-FAQ/img33.png
Normal file
|
After Width: | Height: | Size: 495 B |
BIN
manual/docs/html/slsDetectors-FAQ/img34.png
Normal file
|
After Width: | Height: | Size: 550 B |
BIN
manual/docs/html/slsDetectors-FAQ/img35.png
Normal file
|
After Width: | Height: | Size: 159 B |
BIN
manual/docs/html/slsDetectors-FAQ/img36.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img4.png
Normal file
|
After Width: | Height: | Size: 211 B |
BIN
manual/docs/html/slsDetectors-FAQ/img5.png
Normal file
|
After Width: | Height: | Size: 215 B |
BIN
manual/docs/html/slsDetectors-FAQ/img6.png
Normal file
|
After Width: | Height: | Size: 161 B |
BIN
manual/docs/html/slsDetectors-FAQ/img7.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img8.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
manual/docs/html/slsDetectors-FAQ/img9.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
41
manual/docs/html/slsDetectors-FAQ/index.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2008 (1.71)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>SLS Detectors
|
||||
Frequently Asked Questions</TITLE>
|
||||
<META NAME="description" CONTENT="SLS Detectors
|
||||
Frequently Asked Questions">
|
||||
<META NAME="keywords" CONTENT="slsDetectors-FAQ">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="slsDetectors-FAQ.css">
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
|
||||
<P>
|
||||
|
||||
<H1 ALIGN=CENTER>SLS Detectors
|
||||
<BR>
|
||||
Frequently Asked Questions</H1>
|
||||
<P ALIGN=CENTER><STRONG>Anna Bergamaschi</STRONG>
|
||||
</P>
|
||||
<BR><P ALIGN=CENTER><B>Date:</B> February 27, 2018</P>
|
||||
|
||||
<HR>
|
||||
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
134
manual/docs/html/slsDetectors-FAQ/internals.pl
Normal file
@@ -0,0 +1,134 @@
|
||||
# LaTeX2HTML 2008 (1.71)
|
||||
# Associate internals original text with physical files.
|
||||
|
||||
|
||||
$key = q/sec:usersFunc/;
|
||||
$ref_files{$key} = "$dir".q|How_can_detector_movement_p.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:merging/;
|
||||
$ref_files{$key} = "$dir".q|How_are_different_positions.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:timing/;
|
||||
$ref_files{$key} = "$dir".q|How_can_I_synchronize_my.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:gating/;
|
||||
$ref_files{$key} = "$dir".q|How_can_I_synchronize_my.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:improvetrimming/;
|
||||
$ref_files{$key} = "$dir".q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:multidet/;
|
||||
$ref_files{$key} = "$dir".q|How_can_I_control_many.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/eq:acqflow/;
|
||||
$ref_files{$key} = "$dir".q|Which_is_sequence_acquisiti.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:autotiming/;
|
||||
$ref_files{$key} = "$dir".q|How_can_I_synchronize_my.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:3/;
|
||||
$ref_files{$key} = "$dir".q|Scaling_Poisson_variates.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:samplefluo/;
|
||||
$ref_files{$key} = "$dir".q|How_do_I_chose_comparator.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:settings/;
|
||||
$ref_files{$key} = "$dir".q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:2/;
|
||||
$ref_files{$key} = "$dir".q|Advanced_binning.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:effidet/;
|
||||
$ref_files{$key} = "$dir".q|Sensors.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:11/;
|
||||
$ref_files{$key} = "$dir".q|Basic_binning.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thrscanfluo/;
|
||||
$ref_files{$key} = "$dir".q|How_do_I_chose_comparator.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:dataFormat/;
|
||||
$ref_files{$key} = "$dir".q|In_which_data_format_are.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:mythensett/;
|
||||
$ref_files{$key} = "$dir".q|Frontend_electronics.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:sync/;
|
||||
$ref_files{$key} = "$dir".q|How_can_several_controllers.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:badff/;
|
||||
$ref_files{$key} = "$dir".q|Why_isn_t_my_flat_field_fla.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:datareceiver/;
|
||||
$ref_files{$key} = "$dir".q|How_can_I_configure_data.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:effiback/;
|
||||
$ref_files{$key} = "$dir".q|Sensors.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:trig/;
|
||||
$ref_files{$key} = "$dir".q|How_can_I_synchronize_my.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:ffsetup/;
|
||||
$ref_files{$key} = "$dir".q|Dynamic_acquisition_flat_fi.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thresholdscanuntrimmed/;
|
||||
$ref_files{$key} = "$dir".q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:trimdistribution/;
|
||||
$ref_files{$key} = "$dir".q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:angcal/;
|
||||
$ref_files{$key} = "$dir".q|How_is_channel_number_cover.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:trimdir/;
|
||||
$ref_files{$key} = "$dir".q|What_are_settings_calibrati.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:trimplot/;
|
||||
$ref_files{$key} = "$dir".q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thresholdscantrimmed/;
|
||||
$ref_files{$key} = "$dir".q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:noisetrim/;
|
||||
$ref_files{$key} = "$dir".q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:encal/;
|
||||
$ref_files{$key} = "$dir".q|In_what_consists_energy_cal.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thrscan/;
|
||||
$ref_files{$key} = "$dir".q|How_do_I_chose_comparator.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
1;
|
||||
|
||||
269
manual/docs/html/slsDetectors-FAQ/labels.pl
Normal file
@@ -0,0 +1,269 @@
|
||||
# LaTeX2HTML 2008 (1.71)
|
||||
# Associate labels original text with physical files.
|
||||
|
||||
|
||||
$key = q/sec:usersFunc/;
|
||||
$external_labels{$key} = "$URL/" . q|How_can_detector_movement_p.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:merging/;
|
||||
$external_labels{$key} = "$URL/" . q|How_are_different_positions.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:timing/;
|
||||
$external_labels{$key} = "$URL/" . q|How_can_I_synchronize_my.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:gating/;
|
||||
$external_labels{$key} = "$URL/" . q|How_can_I_synchronize_my.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:improvetrimming/;
|
||||
$external_labels{$key} = "$URL/" . q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:multidet/;
|
||||
$external_labels{$key} = "$URL/" . q|How_can_I_control_many.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/eq:acqflow/;
|
||||
$external_labels{$key} = "$URL/" . q|Which_is_sequence_acquisiti.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:autotiming/;
|
||||
$external_labels{$key} = "$URL/" . q|How_can_I_synchronize_my.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:3/;
|
||||
$external_labels{$key} = "$URL/" . q|Scaling_Poisson_variates.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:samplefluo/;
|
||||
$external_labels{$key} = "$URL/" . q|How_do_I_chose_comparator.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:settings/;
|
||||
$external_labels{$key} = "$URL/" . q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:2/;
|
||||
$external_labels{$key} = "$URL/" . q|Advanced_binning.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:effidet/;
|
||||
$external_labels{$key} = "$URL/" . q|Sensors.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:11/;
|
||||
$external_labels{$key} = "$URL/" . q|Basic_binning.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thrscanfluo/;
|
||||
$external_labels{$key} = "$URL/" . q|How_do_I_chose_comparator.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:dataFormat/;
|
||||
$external_labels{$key} = "$URL/" . q|In_which_data_format_are.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:mythensett/;
|
||||
$external_labels{$key} = "$URL/" . q|Frontend_electronics.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:sync/;
|
||||
$external_labels{$key} = "$URL/" . q|How_can_several_controllers.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:badff/;
|
||||
$external_labels{$key} = "$URL/" . q|Why_isn_t_my_flat_field_fla.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:datareceiver/;
|
||||
$external_labels{$key} = "$URL/" . q|How_can_I_configure_data.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:effiback/;
|
||||
$external_labels{$key} = "$URL/" . q|Sensors.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:trig/;
|
||||
$external_labels{$key} = "$URL/" . q|How_can_I_synchronize_my.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:ffsetup/;
|
||||
$external_labels{$key} = "$URL/" . q|Dynamic_acquisition_flat_fi.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thresholdscanuntrimmed/;
|
||||
$external_labels{$key} = "$URL/" . q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:trimdistribution/;
|
||||
$external_labels{$key} = "$URL/" . q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:angcal/;
|
||||
$external_labels{$key} = "$URL/" . q|How_is_channel_number_cover.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:trimdir/;
|
||||
$external_labels{$key} = "$URL/" . q|What_are_settings_calibrati.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:trimplot/;
|
||||
$external_labels{$key} = "$URL/" . q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thresholdscantrimmed/;
|
||||
$external_labels{$key} = "$URL/" . q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:noisetrim/;
|
||||
$external_labels{$key} = "$URL/" . q|MYTHEN.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:encal/;
|
||||
$external_labels{$key} = "$URL/" . q|In_what_consists_energy_cal.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thrscan/;
|
||||
$external_labels{$key} = "$URL/" . q|How_do_I_chose_comparator.html|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
1;
|
||||
|
||||
|
||||
# LaTeX2HTML 2008 (1.71)
|
||||
# labels from external_latex_labels array.
|
||||
|
||||
|
||||
$key = q/sec:usersFunc/;
|
||||
$external_latex_labels{$key} = q|1.10|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:merging/;
|
||||
$external_latex_labels{$key} = q|5.2|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:timing/;
|
||||
$external_latex_labels{$key} = q|1.8|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:gating/;
|
||||
$external_latex_labels{$key} = q|1.4|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:improvetrimming/;
|
||||
$external_latex_labels{$key} = q|3.4.1|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:multidet/;
|
||||
$external_latex_labels{$key} = q|1.1|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/eq:acqflow/;
|
||||
$external_latex_labels{$key} = q|1.7|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:autotiming/;
|
||||
$external_latex_labels{$key} = q|1.3|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:3/;
|
||||
$external_latex_labels{$key} = q|5.2.6|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:samplefluo/;
|
||||
$external_latex_labels{$key} = q|3.4|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:settings/;
|
||||
$external_latex_labels{$key} = q|3.1|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:2/;
|
||||
$external_latex_labels{$key} = q|5.2.3|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:effidet/;
|
||||
$external_latex_labels{$key} = q|2.1|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:11/;
|
||||
$external_latex_labels{$key} = q|5.2.2|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thrscanfluo/;
|
||||
$external_latex_labels{$key} = q|3.3|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:dataFormat/;
|
||||
$external_latex_labels{$key} = q|1.11|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:mythensett/;
|
||||
$external_latex_labels{$key} = q|2.3|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:sync/;
|
||||
$external_latex_labels{$key} = q|1.9|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:badff/;
|
||||
$external_latex_labels{$key} = q|3.5|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:datareceiver/;
|
||||
$external_latex_labels{$key} = q|1.2|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:effiback/;
|
||||
$external_latex_labels{$key} = q|2.2|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:trig/;
|
||||
$external_latex_labels{$key} = q|1.6|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:ffsetup/;
|
||||
$external_latex_labels{$key} = q|3.6|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thresholdscanuntrimmed/;
|
||||
$external_latex_labels{$key} = q|3.7|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:trimdistribution/;
|
||||
$external_latex_labels{$key} = q|3.8|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:angcal/;
|
||||
$external_latex_labels{$key} = q|5.1|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:trimdir/;
|
||||
$external_latex_labels{$key} = q|1.4|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:trimplot/;
|
||||
$external_latex_labels{$key} = q|3.9|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thresholdscantrimmed/;
|
||||
$external_latex_labels{$key} = q|3.10|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:noisetrim/;
|
||||
$external_latex_labels{$key} = q|3.4.1|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/sec:encal/;
|
||||
$external_latex_labels{$key} = q|3.5|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
$key = q/fig:thrscan/;
|
||||
$external_latex_labels{$key} = q|3.2|;
|
||||
$noresave{$key} = "$nosave";
|
||||
|
||||
1;
|
||||
|
||||
30
manual/docs/html/slsDetectors-FAQ/slsDetectors-FAQ.css
Normal file
@@ -0,0 +1,30 @@
|
||||
/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
|
||||
.MATH { font-family: "Century Schoolbook", serif; }
|
||||
.MATH I { font-family: "Century Schoolbook", serif; font-style: italic }
|
||||
.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
|
||||
|
||||
/* implement both fixed-size and relative sizes */
|
||||
SMALL.XTINY { font-size : xx-small }
|
||||
SMALL.TINY { font-size : x-small }
|
||||
SMALL.SCRIPTSIZE { font-size : smaller }
|
||||
SMALL.FOOTNOTESIZE { font-size : small }
|
||||
SMALL.SMALL { }
|
||||
BIG.LARGE { }
|
||||
BIG.XLARGE { font-size : large }
|
||||
BIG.XXLARGE { font-size : x-large }
|
||||
BIG.HUGE { font-size : larger }
|
||||
BIG.XHUGE { font-size : xx-large }
|
||||
|
||||
/* heading styles */
|
||||
H1 { }
|
||||
H2 { }
|
||||
H3 { }
|
||||
H4 { }
|
||||
H5 { }
|
||||
|
||||
/* mathematics styles */
|
||||
DIV.displaymath { } /* math displays */
|
||||
TD.eqno { } /* equation-number cells */
|
||||
|
||||
|
||||
/* document-specific styles come next */
|
||||
41
manual/docs/html/slsDetectors-FAQ/slsDetectors-FAQ.html
Normal file
@@ -0,0 +1,41 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
|
||||
<!--Converted with LaTeX2HTML 2008 (1.71)
|
||||
original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
||||
* with significant contributions from:
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>SLS Detectors
|
||||
Frequently Asked Questions</TITLE>
|
||||
<META NAME="description" CONTENT="SLS Detectors
|
||||
Frequently Asked Questions">
|
||||
<META NAME="keywords" CONTENT="slsDetectors-FAQ">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
|
||||
<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
|
||||
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="slsDetectors-FAQ.css">
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
|
||||
<P>
|
||||
|
||||
<H1 ALIGN=CENTER>SLS Detectors
|
||||
<BR>
|
||||
Frequently Asked Questions</H1>
|
||||
<P ALIGN=CENTER><STRONG>Anna Bergamaschi</STRONG>
|
||||
</P>
|
||||
<BR><P ALIGN=CENTER><B>Date:</B> February 27, 2018</P>
|
||||
|
||||
<HR>
|
||||
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
BIN
manual/docs/pdf/slsDetectorInstall.pdf
Normal file
BIN
manual/docs/pdf/slsDetectors-FAQ.pdf
Normal file
@@ -1,32 +0,0 @@
|
||||
set(SOURCES
|
||||
mainReceiver.cpp
|
||||
)
|
||||
|
||||
include_directories(
|
||||
../../slsSupportLib/include
|
||||
../../slsReceiverSoftware/include
|
||||
../../build/bin
|
||||
../../slsdetectorSoftware/slsDetector
|
||||
)
|
||||
|
||||
add_executable(slsMultiReceiver
|
||||
${SOURCES}
|
||||
)
|
||||
|
||||
target_link_libraries(slsMultiReceiver
|
||||
slsReceiverShared
|
||||
pthread
|
||||
${ZeroMQ_LIBRARIES}
|
||||
rt
|
||||
)
|
||||
|
||||
if (HDF5_FOUND)
|
||||
target_link_libraries(slsMultiReceiver ${HDF5_LIBRARIES})
|
||||
endif ()
|
||||
|
||||
|
||||
set_target_properties(slsMultiReceiver PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
)
|
||||
|
||||
install(TARGETS slsMultiReceiver DESTINATION bin)
|
||||
@@ -1,26 +1,18 @@
|
||||
PKGDIR = ../..
|
||||
LIBDIR = $(PKGDIR)/bin
|
||||
INCLUDES = -I . -I$(PKGDIR)/slsSupportLib/include -I$(LIBDIR) -I$(PKGDIR)/slsDetectorSoftware/slsDetector -I$(PKGDIR)/slsReceiversoftware/include
|
||||
INCLUDES = -I .
|
||||
SRC_DET = mainClient.cpp
|
||||
SRC_REC = mainReceiver.cpp
|
||||
ZMQLIBDIR = $(PKGDIR)/slsSupportLib/include
|
||||
LDFLAG_DET = -I. -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsDetector -L/usr/lib64/ -pthread -lrt -L$(ZMQLIBDIR) -Wl,-rpath=$(ZMQLIBDIR) -lzmq
|
||||
LDFLAG_REC = -I. -L$(LIBDIR) -Wl,-rpath=$(LIBDIR) -lSlsReceiver -L/usr/lib64/ -pthread -lrt -L$(ZMQLIBDIR) -Wl,-rpath=$(ZMQLIBDIR) -lzmq
|
||||
LIBDIR = .
|
||||
LDFLAG_DET = -I. -L$(LIBDIR) -lSlsDetector -L/usr/lib64/ -pthread -lrt -L. -lzmq
|
||||
LDFLAG_REC = -I. -L$(LIBDIR) -lSlsReceiver -L/usr/lib64/ -pthread -lrt -L. -lzmq
|
||||
DESTDIR ?= ../docs
|
||||
|
||||
HDF5 ?= no
|
||||
HDF5_DIR ?= /opt/hdf5v1.10.0
|
||||
|
||||
ifeq ($(HDF5),yes)
|
||||
LDFLAG_REC += -L$(HDF5_DIR)/lib -Wl,-rpath=$(HDF5_DIR)/lib -lhdf5 -lhdf5_cpp -lsz -lz -DHDF5C
|
||||
endif
|
||||
|
||||
all: docs detUser slsMultiReceiver
|
||||
all: docs detUser detReceiver
|
||||
#all: docs
|
||||
|
||||
docs: createdocs docspdf docshtml removedocs
|
||||
|
||||
createdocs: slsDetectorUsers.doxy mainClient.cpp mainReceiver.cpp
|
||||
createdocs: slsDetectorUsers.doxy slsDetectorUsers.h detectorData.h slsReceiverUsers.h mainClient.cpp mainReceiver.cpp
|
||||
doxygen slsDetectorUsers.doxy
|
||||
|
||||
docspdf:
|
||||
@@ -43,20 +35,18 @@ detUser:$(SRC_DET)
|
||||
mkdir -p bin
|
||||
g++ -o bin/detUser $(SRC_DET) $(INCLUDES) $(LDFLAG_DET) -lm -lstdc++
|
||||
|
||||
slsMultiReceiver:$(SRC_REC)
|
||||
detReceiver:$(SRC_REC)
|
||||
echo "creating receiver"
|
||||
echo $LDFLAG_REC
|
||||
mkdir -p bin
|
||||
g++ -o bin/slsMultiReceiver $(SRC_REC) $(INCLUDES) $(LDFLAG_REC) -lm -lstdc++
|
||||
cp bin/slsMultiReceiver $(LIBDIR)
|
||||
g++ -o bin/detReceiver $(SRC_REC) $(INCLUDES) $(LDFLAG_REC) -lm -lstdc++
|
||||
|
||||
|
||||
clean:
|
||||
echo "cleaning for manual-api"
|
||||
rm -rf bin/detUser bin/slsMultiReceiver bin/detReceiver slsDetectorUsersDocs
|
||||
rm -rf bin/detUser bin/detReceiver slsDetectorUsersDocs
|
||||
rm -rf slsDetectorUsersDocs
|
||||
rm -rf $(DESTDIR)/html/slsDetectorUsersDocs
|
||||
rm -rf $(DESTDIR)/pdf/slsDetectorUsersDocs.pdf
|
||||
rm -rf $(LIBDIR)/slsMultiReceiver
|
||||
|
||||
|
||||
|
||||
|
||||
1
manual/manual-api/ansi.h
Symbolic link
@@ -0,0 +1 @@
|
||||
../../slsReceiverSoftware/include/ansi.h
|
||||
1
manual/manual-api/detectorData.h
Symbolic link
@@ -0,0 +1 @@
|
||||
../../slsDetectorSoftware/slsDetectorAnalysis/detectorData.h
|
||||
1
manual/manual-api/libSlsDetector.so
Symbolic link
@@ -0,0 +1 @@
|
||||
../../build/bin/libSlsDetector.so
|
||||
1
manual/manual-api/libSlsReceiver.so
Symbolic link
@@ -0,0 +1 @@
|
||||
../../build/bin/libSlsReceiver.so
|
||||
1
manual/manual-api/libzmq.a
Symbolic link
@@ -0,0 +1 @@
|
||||
../../slsReceiverSoftware/include/libzmq.a
|
||||
@@ -54,12 +54,7 @@ int main(int argc, char **argv) {
|
||||
|
||||
|
||||
/** - slsDetectorUsers Object is instantiated with appropriate ID */
|
||||
int ret = 1;
|
||||
slsDetectorUsers *pDetector = new slsDetectorUsers (ret, id);
|
||||
if (ret == 1) {
|
||||
std::cout << "Error: Could not instantiate slsDetectorUsers" << std::endl;
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
slsDetectorUsers *pDetector = new slsDetectorUsers (id);
|
||||
|
||||
|
||||
/** - if specified, load configuration file (necessary at least the first time it is called to properly configure advanced settings in the shared memory) */
|
||||
@@ -76,6 +71,11 @@ int main(int argc, char **argv) {
|
||||
|
||||
/** - registering data callback */
|
||||
pDetector->registerDataCallback(&dataCallback, NULL);
|
||||
/** - if receiver exists, enable data streaming from receiver to get the data */
|
||||
pDetector->enableDataStreamingFromReceiver(1);
|
||||
/** - create zmq sockets in client to enable data streaming in of data from receiver/different process */
|
||||
pDetector->enableDataStreamingToClient(1);
|
||||
|
||||
|
||||
|
||||
/** - ensuring detector status is idle before starting acquisition. exiting if not idle */
|
||||
|
||||
@@ -16,7 +16,7 @@ It is linked in manual/manual-api from slsReceiverSoftware/include ]
|
||||
|
||||
*/
|
||||
|
||||
#include "sls_detector_defs.h"
|
||||
#include "sls_receiver_defs.h"
|
||||
#include "slsReceiverUsers.h"
|
||||
|
||||
#include <iostream>
|
||||
@@ -54,7 +54,7 @@ void sigInterruptHandler(int p){
|
||||
*/
|
||||
void printHelp() {
|
||||
cprintf(RESET, "Usage:\n"
|
||||
"./slsMultiReceiver(detReceiver) [start_tcp_port] [num_receivers] [1 for call back, 0 for none]\n\n");
|
||||
"./detReceiver [start_tcp_port] [num_receivers] [1 for call back, 0 for none]\n\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ void printHelp() {
|
||||
*/
|
||||
int StartAcq(char* filepath, char* filename, uint64_t fileindex, uint32_t datasize, void*p){
|
||||
cprintf(BLUE, "#### StartAcq: filepath:%s filename:%s fileindex:%llu datasize:%u ####\n",
|
||||
filepath, filename, (long long unsigned int)fileindex, datasize);
|
||||
filepath, filename, fileindex, datasize);
|
||||
|
||||
cprintf(BLUE, "--StartAcq: returning 0\n");
|
||||
return 0;
|
||||
@@ -83,80 +83,45 @@ int StartAcq(char* filepath, char* filename, uint64_t fileindex, uint32_t datasi
|
||||
* @param p pointer to object
|
||||
*/
|
||||
void AcquisitionFinished(uint64_t frames, void*p){
|
||||
cprintf(BLUE, "#### AcquisitionFinished: frames:%llu ####\n",(long long unsigned int)frames);
|
||||
cprintf(BLUE, "#### AcquisitionFinished: frames:%llu ####\n",frames);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get Receiver Data Call back
|
||||
* Prints in different colors(for each receiver process) the different headers for each image call back.
|
||||
* @param metadata sls_receiver_header metadata
|
||||
* @param frameNumber frame number
|
||||
* @param expLength real time exposure length (in 100ns) or sub frame number (Eiger 32 bit mode only)
|
||||
* @param packetNumber number of packets caught for this frame
|
||||
* @param bunchId bunch id from beamline
|
||||
* @param timestamp time stamp in 10MHz clock (not implemented for most)
|
||||
* @param modId module id (not implemented for most)
|
||||
* @param xCoord x coordinates (detector id in 1D)
|
||||
* @param yCoord y coordinates (not implemented)
|
||||
* @param zCoord z coordinates (not implemented)
|
||||
* @param debug debug values if any
|
||||
* @param roundRNumber (not implemented)
|
||||
* @param detType detector type see :: detectorType
|
||||
* @param version version of standard header (structure format)
|
||||
* @param datapointer pointer to data
|
||||
* @param datasize data size in bytes.
|
||||
* @param datasize data size in bytes
|
||||
* @param p pointer to object
|
||||
*/
|
||||
void GetData(char* metadata, char* datapointer, uint32_t datasize, void* p){
|
||||
slsDetectorDefs::sls_receiver_header* header = (slsDetectorDefs::sls_receiver_header*)metadata;
|
||||
slsDetectorDefs::sls_detector_header detectorHeader = header->detHeader;
|
||||
void GetData(uint64_t frameNumber, uint32_t expLength, uint32_t packetNumber, uint64_t bunchId, uint64_t timestamp,
|
||||
uint16_t modId, uint16_t xCoord, uint16_t yCoord, uint16_t zCoord, uint32_t debug, uint16_t roundRNumber, uint8_t detType, uint8_t version,
|
||||
char* datapointer, uint32_t datasize, void* p){
|
||||
|
||||
PRINT_IN_COLOR (detectorHeader.modId?detectorHeader.modId:detectorHeader.row,
|
||||
PRINT_IN_COLOR (modId?modId:xCoord,
|
||||
"#### %d GetData: ####\n"
|
||||
"frameNumber: %lu\t\texpLength: %u\t\tpacketNumber: %u\t\tbunchId: %lu"
|
||||
"\t\ttimestamp: %lu\t\tmodId: %u\t\t"
|
||||
"row: %u\t\tcolumn: %u\t\treserved: %u\t\tdebug: %u"
|
||||
"\t\troundRNumber: %u\t\tdetType: %u\t\tversion: %u"
|
||||
//"\t\tpacketsMask:%s"
|
||||
"\t\tfirstbytedata: 0x%x\t\tdatsize: %u\n\n",
|
||||
detectorHeader.row, (long unsigned int)detectorHeader.frameNumber,
|
||||
detectorHeader.expLength, detectorHeader.packetNumber, (long unsigned int)detectorHeader.bunchId,
|
||||
(long unsigned int)detectorHeader.timestamp, detectorHeader.modId,
|
||||
detectorHeader.row, detectorHeader.column, detectorHeader.reserved,
|
||||
detectorHeader.debug, detectorHeader.roundRNumber,
|
||||
detectorHeader.detType, detectorHeader.version,
|
||||
//header->packetsMask.to_string().c_str(),
|
||||
((uint8_t)(*((uint8_t*)(datapointer)))), datasize);
|
||||
"frameNumber: %llu\t\texpLength: %u\t\tpacketNumber: %u\t\tbunchId: %llu\t\ttimestamp: %llu\t\tmodId: %u\t\t"
|
||||
"xCoord: %u\t\tyCoord: %u\t\tzCoord: %u\t\tdebug: %u\t\troundRNumber: %u\t\tdetType: %u\t\t"
|
||||
"version: %u\t\tfirstbytedata: 0x%x\t\tdatsize: %u\n\n",
|
||||
xCoord, frameNumber, expLength, packetNumber, bunchId, timestamp, modId,
|
||||
xCoord, yCoord, zCoord, debug, roundRNumber, detType, version,
|
||||
((uint8_t)(*((uint8_t*)(datapointer)))), datasize);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get Receiver Data Call back (modified)
|
||||
* Prints in different colors(for each receiver process) the different headers for each image call back.
|
||||
* @param metadata sls_receiver_header metadata
|
||||
* @param datapointer pointer to data
|
||||
* @param datasize data size in bytes.
|
||||
* @param revDatasize new data size in bytes after the callback.
|
||||
* This will be the size written/streamed. (only smaller value is allowed).
|
||||
* @param p pointer to object
|
||||
*/
|
||||
void GetData(char* metadata, char* datapointer, uint32_t &revDatasize, void* p){
|
||||
slsDetectorDefs::sls_receiver_header* header = (slsDetectorDefs::sls_receiver_header*)metadata;
|
||||
slsDetectorDefs::sls_detector_header detectorHeader = header->detHeader;
|
||||
|
||||
PRINT_IN_COLOR (detectorHeader.modId?detectorHeader.modId:detectorHeader.row,
|
||||
"#### %d GetData: ####\n"
|
||||
"frameNumber: %llu\t\texpLength: %u\t\tpacketNumber: %u\t\tbunchId: %llu"
|
||||
"\t\ttimestamp: %llu\t\tmodId: %u\t\t"
|
||||
"row: %u\t\tcolumn: %u\t\treserved: %u\t\tdebug: %u"
|
||||
"\t\troundRNumber: %u\t\tdetType: %u\t\tversion: %u"
|
||||
//"\t\tpacketsMask:%s"
|
||||
"\t\tfirstbytedata: 0x%x\t\tdatsize: %u\n\n",
|
||||
detectorHeader.row, (long long unsigned int)detectorHeader.frameNumber,
|
||||
detectorHeader.expLength, detectorHeader.packetNumber, (long long unsigned int)detectorHeader.bunchId,
|
||||
(long long unsigned int)detectorHeader.timestamp, detectorHeader.modId,
|
||||
detectorHeader.row, detectorHeader.column, detectorHeader.reserved,
|
||||
detectorHeader.debug, detectorHeader.roundRNumber,
|
||||
detectorHeader.detType, detectorHeader.version,
|
||||
//header->packetsMask.to_string().c_str(),
|
||||
((uint8_t)(*((uint8_t*)(datapointer)))), revDatasize);
|
||||
|
||||
// if data is modified, eg ROI and size is reduced
|
||||
revDatasize = 26000;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Example of main program using the slsReceiverUsers class
|
||||
*
|
||||
@@ -187,7 +152,7 @@ int main(int argc, char *argv[]) {
|
||||
sa.sa_flags=0; // no flags
|
||||
sa.sa_handler=sigInterruptHandler; // handler function
|
||||
sigemptyset(&sa.sa_mask); // dont block additional signals during invocation of handler
|
||||
if (sigaction(SIGINT, &sa, nullptr) == -1) {
|
||||
if (sigaction(SIGINT, &sa, NULL) == -1) {
|
||||
cprintf(RED, "Could not set handler function for SIGINT\n");
|
||||
}
|
||||
|
||||
@@ -197,7 +162,7 @@ int main(int argc, char *argv[]) {
|
||||
asa.sa_flags=0; // no flags
|
||||
asa.sa_handler=SIG_IGN; // handler function
|
||||
sigemptyset(&asa.sa_mask); // dont block additional signals during invocation of handler
|
||||
if (sigaction(SIGPIPE, &asa, nullptr) == -1) {
|
||||
if (sigaction(SIGPIPE, &asa, NULL) == -1) {
|
||||
cprintf(RED, "Could not set handler function for SIGPIPE\n");
|
||||
}
|
||||
|
||||
@@ -221,10 +186,10 @@ int main(int argc, char *argv[]) {
|
||||
char temp[10];
|
||||
sprintf(temp,"%d",startTCPPort + i);
|
||||
char* args[] = {(char*)"ignored", (char*)"--rx_tcpport", temp};
|
||||
int ret = slsDetectorDefs::OK;
|
||||
int ret = slsReceiverDefs::OK;
|
||||
/** - create slsReceiverUsers object with appropriate arguments */
|
||||
slsReceiverUsers *receiver = new slsReceiverUsers(3, args, ret);
|
||||
if(ret==slsDetectorDefs::FAIL){
|
||||
if(ret==slsReceiverDefs::FAIL){
|
||||
delete receiver;
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
@@ -236,22 +201,21 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
/** - Call back for start acquisition */
|
||||
cprintf(BLUE, "Registering StartAcq()\n");
|
||||
receiver->registerCallBackStartAcquisition(StartAcq, nullptr);
|
||||
receiver->registerCallBackStartAcquisition(StartAcq, NULL);
|
||||
|
||||
/** - Call back for acquisition finished */
|
||||
cprintf(BLUE, "Registering AcquisitionFinished()\n");
|
||||
receiver->registerCallBackAcquisitionFinished(AcquisitionFinished, nullptr);
|
||||
receiver->registerCallBackAcquisitionFinished(AcquisitionFinished, NULL);
|
||||
|
||||
/* - Call back for raw data */
|
||||
cprintf(BLUE, "Registering GetData() \n");
|
||||
if (withCallback == 1) receiver->registerCallBackRawDataReady(GetData,nullptr);
|
||||
else if (withCallback == 2) receiver->registerCallBackRawDataModifyReady(GetData,nullptr);
|
||||
receiver->registerCallBackRawDataReady(GetData,NULL);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** - start tcp server thread */
|
||||
if (receiver->start() == slsDetectorDefs::FAIL){
|
||||
if (receiver->start() == slsReceiverDefs::FAIL){
|
||||
delete receiver;
|
||||
cprintf(BLUE,"Exiting Child Process [ Tid: %ld ]\n", (long)syscall(SYS_gettid));
|
||||
exit(EXIT_FAILURE);
|
||||
@@ -272,7 +236,7 @@ int main(int argc, char *argv[]) {
|
||||
sa.sa_flags=0; // no flags
|
||||
sa.sa_handler=SIG_IGN; // handler function
|
||||
sigemptyset(&sa.sa_mask); // dont block additional signals during invocation of handler
|
||||
if (sigaction(SIGINT, &sa, nullptr) == -1) {
|
||||
if (sigaction(SIGINT, &sa, NULL) == -1) {
|
||||
cprintf(RED, "Could not set handler function for SIGINT\n");
|
||||
}
|
||||
|
||||
@@ -283,7 +247,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
/** - Parent process waits for all child processes to exit */
|
||||
for(;;) {
|
||||
pid_t childPid = waitpid (-1, nullptr, 0);
|
||||
pid_t childPid = waitpid (-1, NULL, 0);
|
||||
|
||||
// no child closed
|
||||
if (childPid == -1) {
|
||||
|
||||
@@ -81,11 +81,7 @@ LATEX_HIDE_INDICES = YES
|
||||
SOURCE_BROWSER = YES
|
||||
|
||||
PREDEFINED = __cplusplus
|
||||
|
||||
INPUT = ../../slsDetectorSoftware/slsDetector/slsDetectorUsers.h \
|
||||
../../slDetectorSoftware/slsDetectorAnalysis/detectorData.h \
|
||||
../../slsReceiverSoftware/include/slsReceiverUsers.h \
|
||||
mainClient.cpp \
|
||||
mainReceiver.cpp
|
||||
|
||||
INPUT = slsDetectorUsers.h detectorData.h slsReceiverUsers.h mainClient.cpp mainReceiver.cpp
|
||||
|
||||
OUTPUT_DIRECTORY = slsDetectorUsersDocs
|
||||
|
||||
1
manual/manual-api/slsDetectorUsers.h
Symbolic link
@@ -0,0 +1 @@
|
||||
../../slsDetectorSoftware/slsDetector/slsDetectorUsers.h
|
||||
1
manual/manual-api/slsReceiverUsers.h
Symbolic link
@@ -0,0 +1 @@
|
||||
../../slsReceiverSoftware/include/slsReceiverUsers.h
|
||||
1
manual/manual-api/sls_receiver_defs.h
Symbolic link
@@ -0,0 +1 @@
|
||||
../../slsReceiverSoftware/include/sls_receiver_defs.h
|
||||
1
manual/manual-api/sls_receiver_funcs.h
Symbolic link
@@ -0,0 +1 @@
|
||||
../../slsReceiverSoftware/include/sls_receiver_funcs.h
|
||||
1
manual/manual-api/zmq.h
Symbolic link
@@ -0,0 +1 @@
|
||||
../../slsReceiverSoftware/include/zmq.h
|
||||
|
Before Width: | Height: | Size: 432 KiB |
|
Before Width: | Height: | Size: 34 KiB |