diff --git a/.gitignore b/.gitignore index 12b0601d3..b77b35370 100644 --- a/.gitignore +++ b/.gitignore @@ -15,5 +15,3 @@ JCTBGui/ *.toc build tests -manual/slsDetectorClientDocs/latex/doxygen.sty -manual/slsDetectorClientDocs/latex/refman.tex diff --git a/Makefile b/Makefile index ffb37d723..99ffb190a 100755 --- a/Makefile +++ b/Makefile @@ -5,9 +5,10 @@ include Makefile.include INSTALLROOT ?= $(PWD) BINDIR ?= $(INSTALLROOT)/bin -DOCDIR ?= $(INSTALLROOT)/docs +DOCDIR ?= $(INSTALLROOT)/manual/docs LIBDIR ?= $(INSTALLROOT)/bin INCDIR ?= $(INSTALLROOT)/include +DETAILDOC ?= $(INSTALLROOT)/docs WD = $(shell pwd) LIBRARYDIR = $(WD)/slsDetectorSoftware @@ -116,6 +117,26 @@ htmldoc: make doc $(shell test -d $(DOCDIR) || mkdir -p $(DOCDIR)) cd manual && make html DESTDIR=$(DOCDIR) + +detaildoc: createdocs docspdf docshtml removedocs + +createdocs: doxy.config + doxygen 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: @@ -128,7 +149,8 @@ clean: cd $(CALWIZDIR) && $(MAKE) clean cd manual && $(MAKE) clean cd $(DOCDIR) && rm -rf * - + rm -rf slsDetectorPackageDocs; + rm -rf $(DETAILDOC) #install_lib: diff --git a/RELEASE.txt b/RELEASE.txt index 2ae7cbf06..b4ad9c8f5 100644 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -7,20 +7,19 @@ INTRODUCTION This document describes the differences between previous versions and 3.0.0 releases. -Manuals can be found under the 'manual' folder. +Manuals can be found under the 'manual/docs' folder. Both HTML and pdf versions are provided. -Command Line Documentation can be accessed from this location via browser: - - manual/slsDetectorClientDocs/html/index.html +Documentation from Source Code can be found for the Command Line and for the API for +both HTML and pdf versions as slsDetectorClientDocs and slsDetectorUsersDocs respectively. -User documentation and other help can be accessed directly at this location: +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 CONTENTS @@ -144,7 +143,7 @@ New Features Gui --- - 10. Set the data streaming port (individually/ a single one that calculates for the other + 10. Set the data streaming port (individually/ a single one that calculates for the other receiver streamer threads) via the command line diff --git a/doxy.config b/doxy.config new file mode 100644 index 000000000..18a5ed106 --- /dev/null +++ b/doxy.config @@ -0,0 +1,164 @@ +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + + + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = YES + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +INTERNAL_DOCS = NO + +SHOW_INCLUDE_FILES = YES + +SHOW_FILES = YES + +SHOW_NAMESPACES = NO + +COMPACT_LATEX = YES + +PAPER_TYPE = a4 + +PDF_HYPERLINKS = YES + +USE_PDFLATEX = YES + +LATEX_HIDE_INDICES = YES + +PREDEFINED = __cplusplus + +INPUT = slsDetectorSoftware/commonFiles/communication_funcs.h \ + slsDetectorSoftware/commonFiles/error_defs.h \ + slsDetectorSoftware/commonFiles/sls_detector_defs.h \ + slsDetectorSoftware/commonFiles/sls_detector_funcs.h \ + slsDetectorSoftware/f90Interface/externPostProcessing.h \ + slsDetectorSoftware/multiSlsDetector/multiSlsDetectorClient.h \ + slsDetectorSoftware/multiSlsDetector/multiSlsDetectorCommand.h \ + slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h \ + slsDetectorSoftware/slsDetector/slsDetectorActions.h \ + slsDetectorSoftware/slsDetector/slsDetectorBase.h \ + slsDetectorSoftware/slsDetector/slsDetectorCommand.h \ + slsDetectorSoftware/slsDetector/slsDetector.h \ + slsDetectorSoftware/slsDetector/slsDetectorUsers.h \ + slsDetectorSoftware/slsDetector/slsDetectorUtils.h \ + slsDetectorSoftware/slsDetectorAnalysis/angCalLogClass.h \ + slsDetectorSoftware/slsDetectorAnalysis/angleConversionConstant.h \ + slsDetectorSoftware/slsDetectorAnalysis/angularCalibration.h \ + slsDetectorSoftware/slsDetectorAnalysis/angularConversion.h \ + slsDetectorSoftware/slsDetectorAnalysis/AngularConversion_Standalone.h \ + slsDetectorSoftware/slsDetectorAnalysis/angularConversionStatic.h \ + slsDetectorSoftware/slsDetectorAnalysis/badChannelCorrections.h \ + slsDetectorSoftware/slsDetectorAnalysis/detectorData.h \ + slsDetectorSoftware/slsDetectorAnalysis/enCalLogClass.h \ + slsDetectorSoftware/slsDetectorAnalysis/energyCalibration.h \ + slsDetectorSoftware/slsDetectorAnalysis/energyConversion.h \ + slsDetectorSoftware/slsDetectorAnalysis/fileIO.h \ + slsDetectorSoftware/slsDetectorAnalysis/FileIO_Standalone.h \ + slsDetectorSoftware/slsDetectorAnalysis/fileIOStatic.h \ + slsDetectorSoftware/slsDetectorAnalysis/movingStat.h \ + slsDetectorSoftware/slsDetectorAnalysis/postProcessingFileIO_Standalone.h \ + slsDetectorSoftware/slsDetectorAnalysis/postProcessingFuncs.h \ + slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h \ + slsDetectorSoftware/slsDetectorAnalysis/postProcessing_Standalone.h \ + slsDetectorSoftware/slsDetectorAnalysis/runningStat.h \ + slsDetectorSoftware/slsDetectorAnalysis/singlePhotonFilter.h \ + slsDetectorSoftware/slsDetectorAnalysis/single_photon_hit.h \ + slsDetectorSoftware/slsDetectorAnalysis/TSlsDetectorDict.h \ + slsDetectorSoftware/slsReceiverInterface/receiverInterface.h \ + slsDetectorSoftware/threadFiles/CondVar.h \ + slsDetectorSoftware/threadFiles/Global.h \ + slsDetectorSoftware/threadFiles/Multi.h \ + slsDetectorSoftware/threadFiles/Mutex.h \ + slsDetectorSoftware/threadFiles/Single.h \ + slsDetectorSoftware/threadFiles/Task.h \ + slsDetectorSoftware/threadFiles/ThreadPool.h \ + slsDetectorSoftware/usersFunctions/angleFunction.h \ + slsDetectorSoftware/usersFunctions/usersFunctions.h \ + slsReceiverSoftware/include/ansi.h \ + slsReceiverSoftware/include/BinaryFile.h \ + slsReceiverSoftware/include/BinaryFileStatic.h \ + slsReceiverSoftware/include/circularFifo.h \ + slsReceiverSoftware/include/DataProcessor.h \ + slsReceiverSoftware/include/DataStreamer.h \ + slsReceiverSoftware/include/Fifo.h \ + slsReceiverSoftware/include/File.h \ + slsReceiverSoftware/include/GeneralData.h \ + slsReceiverSoftware/include/genericSocket.h \ + slsReceiverSoftware/include/HDF5File.h \ + slsReceiverSoftware/include/HDF5FileStatic.h \ + slsReceiverSoftware/include/Listener.h \ + slsReceiverSoftware/include/logger.h \ + slsReceiverSoftware/include/MySocketTCP.h \ + slsReceiverSoftware/include/receiver_defs.h \ + slsReceiverSoftware/include/RestHelper.h \ + slsReceiverSoftware/include/sls_receiver_defs.h \ + slsReceiverSoftware/include/sls_receiver_funcs.h \ + slsReceiverSoftware/include/slsReceiver.h \ + slsReceiverSoftware/include/slsReceiverTCPIPInterface.h \ + slsReceiverSoftware/include/slsReceiverUsers.h \ + slsReceiverSoftware/include/ThreadObject.h \ + slsReceiverSoftware/include/UDPBaseImplementation.h \ + slsReceiverSoftware/include/UDPInterface.h \ + slsReceiverSoftware/include/UDPRESTImplementation.h \ + slsReceiverSoftware/include/UDPStandardImplementation.h \ + slsReceiverSoftware/include/utilities.h \ + slsReceiverSoftware/include/ZmqSocket.h + + + + +OUTPUT_DIRECTORY = slsDetectorPackageDocs + diff --git a/manual/Makefile b/manual/Makefile index b7571a518..a341e3a5c 100644 --- a/manual/Makefile +++ b/manual/Makefile @@ -1,4 +1,4 @@ -DESTDIR?=../docs +DESTDIR?=docs #manual-api manual-calwiz manual-client manual-gui manual-main @@ -14,18 +14,18 @@ ALLDIRS=$(MAINDIRS:manual-%=all-%) all: $(ALLDIRS) - $(shell test -d $(DESTDIR)/pdf && rm -fr $(DESTDIR)/pdf) - mv pdf $(DESTDIR) - $(shell test -d $(DESTDIR)/html && rm -fr $(DESTDIR)/html) - mv html $(DESTDIR) - +# $(shell test -d $(DESTDIR)/pdf && rm -fr $(DESTDIR)/pdf) +# mv pdf $(DESTDIR) +# $(shell test -d $(DESTDIR)/html && rm -fr $(DESTDIR)/html) +# mv html $(DESTDIR) + pdf: $(PDFDIRS) - $(shell test -d $(DESTDIR)/pdf && rm -fr $(DESTDIR)/pdf) - mv pdf $(DESTDIR) +# $(shell test -d $(DESTDIR)/pdf && rm -fr $(DESTDIR)/pdf) +# mv pdf $(DESTDIR) html: $(HTMLDIRS) - $(shell test -d $(DESTDIR)/html && rm -fr $(DESTDIR)/html) - mv html $(DESTDIR) +# $(shell test -d $(DESTDIR)/html && rm -fr $(DESTDIR)/html) +# mv html $(DESTDIR) clean: $(CLEANDIRS) rm -fr $(DESTDIR)/pdf @@ -45,7 +45,7 @@ clean-%: cd $(@:clean-%=manual-%) && make clean -#¡Æ$(@D)¡Ç The directory part of the file name of the target, with the trailing slash removed. If the value of ¡Æ$@¡Ç is dir/foo.o then ¡Æ$(@D)¡Ç is dir. This value is . if ¡Æ$@¡Ç does not contain a slash. -#¡Æ$(@F)¡Ç The file-within-directory part of the file name of the target. If the value of ¡Æ$@¡Ç is dir/foo.o then ¡Æ$(@F)¡Ç is foo.o. ¡Æ$(@F)¡Ç is equivalent to ¡Æ$(notdir $@)¡Ç. +#��$(@D)�� The directory part of the file name of the target, with the trailing slash removed. If the value of ��$@�� is dir/foo.o then ��$(@D)�� is dir. This value is . if ��$@�� does not contain a slash. +#��$(@F)�� The file-within-directory part of the file name of the target. If the value of ��$@�� is dir/foo.o then ��$(@F)�� is foo.o. ��$(@F)�� is equivalent to ��$(notdir $@)��. diff --git a/manual/docs/html/angularCalibrationHowTo/WARNINGS b/manual/docs/html/angularCalibrationHowTo/WARNINGS new file mode 100644 index 000000000..486bcceff --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/WARNINGS @@ -0,0 +1 @@ +No implementation found for style `graphicx' diff --git a/manual/docs/html/angularCalibrationHowTo/angularCalibrationHowTo.css b/manual/docs/html/angularCalibrationHowTo/angularCalibrationHowTo.css new file mode 100644 index 000000000..d1824aff4 --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/angularCalibrationHowTo.css @@ -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 */ diff --git a/manual/docs/html/angularCalibrationHowTo/angularCalibrationHowTo.html b/manual/docs/html/angularCalibrationHowTo/angularCalibrationHowTo.html new file mode 100644 index 000000000..11a4a9e49 --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/angularCalibrationHowTo.html @@ -0,0 +1,84 @@ + + + + + +Angular calibration wizard manual + + + + + + + + + + + + + + + + +next +up +previous +
+ Next: Introduction +
+
+ + +

+ +

Angular calibration wizard manual

+
+ +

Anna Bergamaschi

+

August 22, 2017

+
+ +

+


+ + + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/angularCalibrationHowTo/images.pl b/manual/docs/html/angularCalibrationHowTo/images.pl new file mode 100644 index 000000000..f337e4a06 --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/images.pl @@ -0,0 +1,116 @@ +# LaTeX2HTML 2008 (1.71) +# Associate images original text with physical files. + + +$key = q/Theta_e;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$\Theta_e$|; + +$key = q/C_{center}^{i};MSF=1.6;AAT/; +$cached_env_img{$key} = q|$C_{center}^{i}$|; + +$key = q/i;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$i$|; + +$key = q/mu;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$\mu$|; + +$key = q/Theta_o^i;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$\Theta_o^i$|; + +$key = q/includegraphics[width=textwidth]{enable_angcal.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{enable_angcal.eps}|; + +$key = q/p=50~mum;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$p=50 \mu m$|; + +$key = q/_6;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$_6$|; + +$key = q/C_{peak};MSF=1.6;AAT/; +$cached_env_img{$key} = q|$C_{peak}$|; + +$key = q/includegraphics[width=textwidth]{peakFit.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{peakFit.eps}|; + +$key = q/pslashR^i;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$p/R^i$|; + +$key = q/includegraphics[width=textwidth]{setupAngcal.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{setupAngcal.eps}|; + +$key = q/pm;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$\pm$|; + +$key = q/includegraphics[width=textwidth]{angleFit.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{angleFit.eps}|; + +$key = q/{displaymath}Theta_e=Theta_o^i-arctanBig(frac{pcdot(C_{peak}-C_{center}^i)}{R^i}Big),{displaymath};MSF=1.6;AAT/; +$cached_env_img{$key} = q|\begin{displaymath}
+\Theta_e=\Theta_o^i-\arctan\Big(\frac{p \cdot (C_{peak}-C_{center}^i)}{R^i}\Big),
+\end{displaymath}|; + +$key = q/theta;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$\theta$|; + +$key = q/R^i;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$R^i$|; + +$key = q/includegraphics[width=textwidth]{position_scan.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{position_scan.eps}|; + +1; + diff --git a/manual/docs/html/angularCalibrationHowTo/images.tex b/manual/docs/html/angularCalibrationHowTo/images.tex new file mode 100644 index 000000000..62d88efa8 --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/images.tex @@ -0,0 +1,255 @@ +\batchmode +\documentclass{article} +\RequirePackage{ifthen} + + +\usepackage{amssymb} +\usepackage[dvips]{graphicx} +\usepackage{verbatim} + + +\usepackage[dvips]{color} + + +\pagecolor[gray]{.7} + +\usepackage[]{inputenc} + + + +\makeatletter + +\makeatletter +\count@=\the\catcode`\_ \catcode`\_=8 +\newenvironment{tex2html_wrap}{}{}% +\catcode`\<=12\catcode`\_=\count@ +\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}% +\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}% + \expandafter\renewcommand\csname #1\endcsname}% +\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}% +\let\newedcommand\renewedcommand +\let\renewedenvironment\newedenvironment +\makeatother +\let\mathon=$ +\let\mathoff=$ +\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi +\newbox\sizebox +\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt} +\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt} +\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt} +\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt} +\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt} +\setlength{\textwidth}{349pt} +\newwrite\lthtmlwrite +\makeatletter +\let\realnormalsize=\normalsize +\global\topskip=2sp +\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float +\def\@float{\let\@savefreelist\@freelist\real@float} +\def\liih@math{\ifmmode$\else\bad@math\fi} +\def\end@float{\realend@float\global\let\@freelist\@savefreelist} +\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float +\let\@largefloatcheck=\relax +\let\if@boxedmulticols=\iftrue +\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt} +\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize + \parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}% + \def\phantompar{\csname par\endcsname}\normalsize}% +\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}% +\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }% +\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }% +\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup % + \let\ifinner=\iffalse \let\)\liih@math }% +\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}% + \expandafter\box\next\egroup}% +\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}% +\newcommand\lthtmllogmath{\dimen0\ht\sizebox \advance\dimen0\dp\sizebox + \ifdim\dimen0>.95\vsize + \lthtmltypeout{% +*** image for \lthtmlmathenv\space is too tall at \the\dimen0, reducing to .95 vsize ***}% + \ht\sizebox.95\vsize \dp\sizebox\z@ \fi + \lthtmltypeout{l2hSize % +:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}% +\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist + \lthtmlmathtype{#1}\lthtmlvboxmathA}% +\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}% +\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup + \let\@savefreelist\@freelist \lthtmlhboxmathB}% +\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}% +\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox + \global\let\@freelist\@savefreelist}% +\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}% +\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}% +\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}% + \lthtmldisplayA{#1}\let\@eqnnum\relax}% +\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}% +\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB} +\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA + \vrule height1.5ex width0pt }% +\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}% +\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}% +\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % + \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline} +\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % + \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath} +\newcommand\lthtmlindisplaymathZ{\egroup % + \centerinlinemath\lthtmllogmath\lthtmlsetmath} +\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{% + \kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi + \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} +\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{% + \kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt% + \ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt% + \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} +\def\centerinlinemath{% + \dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi + \advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1 + \dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax} + +\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize + \ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill + \else\expandafter\vss\fi}% +\providecommand{\selectlanguage}[1]{}% +\makeatletter \tracingstats = 1 + + +\begin{document} +\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}% +\makeatletter +\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}% +\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi% +\lthtmltypeout{}% +\makeatother +\setcounter{page}{1} +\onecolumn + +% !!! IMAGES START HERE !!! + +\stepcounter{section} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline84}% +$\theta$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline86}% +$C_{peak}$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline88}% +$i$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline90}% +$\Theta_e$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmldisplayA{displaymath18}% +\begin{displaymath} +\Theta_e=\Theta_o^i-\arctan\Big(\frac{p \cdot (C_{peak}-C_{center}^i)}{R^i}\Big), +\end{displaymath}% +\lthtmldisplayZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline94}% +$\Theta_o^i$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline96}% +$C_{center}^{i}$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline98}% +$R^i$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline102}% +$p=50~\mu m$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline106}% +$_6$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline108}% +$\mu$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline110}% +$\pm$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline120}% +$p/R^i$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap330}% +\includegraphics[width=\textwidth]{enable_angcal.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap334}% +\includegraphics[width=\textwidth]{position_scan.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap340}% +\includegraphics[width=\textwidth]{setupAngcal.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap344}% +\includegraphics[width=\textwidth]{peakFit.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap348}% +\includegraphics[width=\textwidth]{angleFit.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} + +\end{document} diff --git a/manual/docs/html/angularCalibrationHowTo/img1.png b/manual/docs/html/angularCalibrationHowTo/img1.png new file mode 100644 index 000000000..4ccf28ca5 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img1.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img10.png b/manual/docs/html/angularCalibrationHowTo/img10.png new file mode 100644 index 000000000..79b639b9e Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img10.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img11.png b/manual/docs/html/angularCalibrationHowTo/img11.png new file mode 100644 index 000000000..dd9d71687 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img11.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img12.png b/manual/docs/html/angularCalibrationHowTo/img12.png new file mode 100644 index 000000000..fb6eb7f09 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img12.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img13.png b/manual/docs/html/angularCalibrationHowTo/img13.png new file mode 100644 index 000000000..b9ecf0ec5 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img13.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img14.png b/manual/docs/html/angularCalibrationHowTo/img14.png new file mode 100644 index 000000000..a820113a5 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img14.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img15.png b/manual/docs/html/angularCalibrationHowTo/img15.png new file mode 100644 index 000000000..eef7f12ea Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img15.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img16.png b/manual/docs/html/angularCalibrationHowTo/img16.png new file mode 100644 index 000000000..6ff8f79a4 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img16.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img17.png b/manual/docs/html/angularCalibrationHowTo/img17.png new file mode 100644 index 000000000..d0434dfc1 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img17.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img18.png b/manual/docs/html/angularCalibrationHowTo/img18.png new file mode 100644 index 000000000..cea311186 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img18.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img2.png b/manual/docs/html/angularCalibrationHowTo/img2.png new file mode 100644 index 000000000..34082b5c4 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img2.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img3.png b/manual/docs/html/angularCalibrationHowTo/img3.png new file mode 100644 index 000000000..2655ea28d Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img3.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img4.png b/manual/docs/html/angularCalibrationHowTo/img4.png new file mode 100644 index 000000000..f352448ff Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img4.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img5.png b/manual/docs/html/angularCalibrationHowTo/img5.png new file mode 100644 index 000000000..1f0978e7b Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img5.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img6.png b/manual/docs/html/angularCalibrationHowTo/img6.png new file mode 100644 index 000000000..ec004bf98 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img6.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img7.png b/manual/docs/html/angularCalibrationHowTo/img7.png new file mode 100644 index 000000000..6bdaf8f55 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img7.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img8.png b/manual/docs/html/angularCalibrationHowTo/img8.png new file mode 100644 index 000000000..0a347d88f Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img8.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/img9.png b/manual/docs/html/angularCalibrationHowTo/img9.png new file mode 100644 index 000000000..5fcdf72a4 Binary files /dev/null and b/manual/docs/html/angularCalibrationHowTo/img9.png differ diff --git a/manual/docs/html/angularCalibrationHowTo/index.html b/manual/docs/html/angularCalibrationHowTo/index.html new file mode 100644 index 000000000..11a4a9e49 --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/index.html @@ -0,0 +1,84 @@ + + + + + +Angular calibration wizard manual + + + + + + + + + + + + + + + + +next +up +previous +
+ Next: Introduction +
+
+ + +

+ +

Angular calibration wizard manual

+
+ +

Anna Bergamaschi

+

August 22, 2017

+
+ +

+


+ + + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/angularCalibrationHowTo/internals.pl b/manual/docs/html/angularCalibrationHowTo/internals.pl new file mode 100644 index 000000000..89270cacc --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/internals.pl @@ -0,0 +1,30 @@ +# LaTeX2HTML 2008 (1.71) +# Associate internals original text with physical files. + + +$key = q/fig:guiangcallog/; +$ref_files{$key} = "$dir".q|node2.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:guiposscan/; +$ref_files{$key} = "$dir".q|node2.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:peakfit/; +$ref_files{$key} = "$dir".q|node3.html|; +$noresave{$key} = "$nosave"; + +$key = q/eq:angcal/; +$ref_files{$key} = "$dir".q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:setangcal/; +$ref_files{$key} = "$dir".q|node3.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:anglefit/; +$ref_files{$key} = "$dir".q|node3.html|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/manual/docs/html/angularCalibrationHowTo/labels.pl b/manual/docs/html/angularCalibrationHowTo/labels.pl new file mode 100644 index 000000000..6f62b378a --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/labels.pl @@ -0,0 +1,61 @@ +# LaTeX2HTML 2008 (1.71) +# Associate labels original text with physical files. + + +$key = q/fig:guiangcallog/; +$external_labels{$key} = "$URL/" . q|node2.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:guiposscan/; +$external_labels{$key} = "$URL/" . q|node2.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:peakfit/; +$external_labels{$key} = "$URL/" . q|node3.html|; +$noresave{$key} = "$nosave"; + +$key = q/eq:angcal/; +$external_labels{$key} = "$URL/" . q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:setangcal/; +$external_labels{$key} = "$URL/" . q|node3.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:anglefit/; +$external_labels{$key} = "$URL/" . q|node3.html|; +$noresave{$key} = "$nosave"; + +1; + + +# LaTeX2HTML 2008 (1.71) +# labels from external_latex_labels array. + + +$key = q/fig:guiangcallog/; +$external_latex_labels{$key} = q|1|; +$noresave{$key} = "$nosave"; + +$key = q/fig:guiposscan/; +$external_latex_labels{$key} = q|2|; +$noresave{$key} = "$nosave"; + +$key = q/fig:peakfit/; +$external_latex_labels{$key} = q|4|; +$noresave{$key} = "$nosave"; + +$key = q/eq:angcal/; +$external_latex_labels{$key} = q|1|; +$noresave{$key} = "$nosave"; + +$key = q/fig:setangcal/; +$external_latex_labels{$key} = q|3|; +$noresave{$key} = "$nosave"; + +$key = q/fig:anglefit/; +$external_latex_labels{$key} = q|5|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/manual/docs/html/angularCalibrationHowTo/node1.html b/manual/docs/html/angularCalibrationHowTo/node1.html new file mode 100644 index 000000000..28865e6f3 --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/node1.html @@ -0,0 +1,186 @@ + + + + + +Introduction + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Data acquisition + Up: Angular calibration wizard manual + Previous: Angular calibration wizard manual +
+
+ + +

+Introduction +

+ +

+In order to convert from strip number to 2$\theta$-angle, an accurate angular calibration of the detector must be performed (for details see the paper Bergamaschi, A. et al. (2010). J. Synchrotron Rad. 17, 653-668). +
+

+For this purpose, a series of patterns of a powder standard with symmetric peaks (e.g. silicon) must acquired while shifting the detector by an angular step of the order of about 2% of the module size. During the measurement, a strong intensity peak (e.g. Si(111)) should pass through the field of view of every module such that it can be used as a reference angular position to perform the calibration of the modules position. +
+

+In a first step, the peak is fitted with a Gaussian in order to determine its position $C_{peak}$ in channel number for each of the acquired patterns. +
+In a second step, for each module $i$, the encoder position $\Theta_e$ is fitted as a function of the peak position $C_{peak}$ according to: +
+

+ + + + + +
\begin{displaymath}
+\Theta_e=\Theta_o^i-\arctan\Big(\frac{p \cdot (C_{peak}-C_{center}^i)}{R^i}\Big),
+\end{displaymath} +(1)
+

+where the parameters $\Theta_o^i$ is the angular offset with respect to the diffractometer zero position, +$C_{center}^{i}$ is the central channel and $R^i$ is the distance of the module $i$ from the diffractometer center while $p=50~\mu m$ is the strip pitch of the detector. +
+Finally, the global offset of the detector system is precisely determined by refining a silicon pattern at a well-defined energy (i.e., knowing the position of the peak). + +

+The same function of equation 1, with the parameters obtained from the calibration, is used in order to convert from channel number to 2$\theta$-angle. + +

+The parallax at the borders of the modules due to the thickness of the silicon sensor is a function of the X-ray energy (higher energy X-rays are absorbed deeper inside the sensor) and is of the order of 0.2 mdeg at 12 keV and 0.5 mdeg at 30 keV. +
+The differences in pixel size due to the different portion of solid angle covered by the strips on the border of the modules and the higher efficiency due to the longer path of the X-rays in the sensor are removed by the flat field correction. This also normalizes additional differences in pixel size between channels which are also present because of mismatches in the strip sensor fabrication and in fluctuations of the channels threshold level. + +

+Patterns acquired at different detector positions are generally merged together in order to fill the gaps between the modules and correct possibly bad functioning channels. In this procedure the data from different positions which are closer than 4 mdeg (the average pixel size) are averaged and the new position is set to the mean of the positions of the original points. + +

+The position and width of the peaks results from a fit over several detector channels. Geometrical distortions might disturb this determination mainly because of errors in the angular calibration, fluctuations in the encoder position, variations between channels and parallax effects. +
+The resolution in locating the peak center and determining its width and integrated intensity has been estimated by acquiring several patterns of a LaB$_6$ sample in a 300 $\mu$m capillary with the detector shifted in 5 mdeg steps between 30.4 and 36.5 degrees. The 16 peaks acquired have been fitted with a Gaussian function plus background and the fluctuations on the fitted parameters have been calculated. The resulting average resolutions are 0.63$\pm$0.06 mdeg for the peak center and 0.22$\pm$0.05 mdeg for the peak Full-Width at Half-Maximum (FWHM) for an average peak FWHM of 27.0$\pm$2.5 mdeg. +
+These results show that the angular calibration allows a resolution in determining the peaks position and width which is appropriate for structural determination. + +

+


+ + +next + +up + +previous +
+ Next: Data acquisition + Up: Angular calibration wizard manual + Previous: Angular calibration wizard manual + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/angularCalibrationHowTo/node2.html b/manual/docs/html/angularCalibrationHowTo/node2.html new file mode 100644 index 000000000..7229c62c9 --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/node2.html @@ -0,0 +1,217 @@ + + + + + +Data acquisition + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Data analysis + Up: Angular calibration wizard manual + Previous: Introduction +
+
+ + +Subsections + + + +
+ +

+Data acquisition +

+ +

+The angular calibration consists in acquiring a set of diffraction patterns of a well known powder standard (e.g. Silicon) at different encoder positions. In order to facilitate the procedure, the sample should not emit fluorescent light and should present relatively symmetric peaks. +
+During the measurement, a strong intensity peak (e.g. Si(111)) should pass through the field of view of every module such that it can be used as a reference angular position to perform the calibration of the modules position. In general the highest peak will be used for the calibration, but this is not necessary in case there would be e.g. geometrical limitations for shifting the detector. +
Do not forget to properly position the beam stopper if the detector is scanned in front of the direct beam. +
+The detector should be shifted of an angular step of the order of about 2% of the module size, such that about 50 patterns can contribute to the fitting of the 3 parameters necessary for the angular calibration. +
+

+All the angular calibration procedure should be acquired using a trimmed detector with the threshold set at half of the X-ray energy (Assuming no fluorescent element in the standard). A flat field should also be acquired in order to precisely correct the data, while the X-ray intensity should be kept lower than about 100 kHz per strip in order to avoid the need for rate corrections. + +

+A rough angular conversion file starting from a previous calibration or from the geometric characteristics of the mechanics is an advantage. The angular conversion file should contain a line for each module of the detector with its module number $i$, center +$C_{center}^{i}$ and error, conversion radius $p/R^i$ and error, offset $\Theta_o^i$ and error: +

+module 0 center 639.5 +- 0 conversion 6.56E-05 +- 0 offset 0 +- 0
+
+Also the global offset value of the beamline should be approximately known i.e. the angular position of channel 0 of module 0 when the motor is set at 0. +
+All the documentation assumes that the detector is oriented in the same direction as the encoder position i.e. large channel number at higher angles (both per module and absolute). If this is not the case, the angular direction should be set to -1. + +

+ +

+Software +

+ +

+For the acquisition ot the data you need to install the slsDetector software package (please refere to separate documentation). The use of the GUI is optional and all operations can be performed also using the text client. +
+

+Please make sure that you have edited the +
slsDetectorSoftware/usersFunctions/angleFunction.h +
+in order to match the angular conversion for your geometry and +
slsDetectorSoftware/usersFunctions/usersFunctions.cpp +
+in order to be able to move the detector and read out its position by using the slsDetector software. + +

+In the following the command to acquire a dataset for the angular calibration with an exposure time of 1 s, and position shift +

+#setup angular calibration log mode
+> sls_detector_put angcallog 1 
+#set exposure time to 1s
+> sls_detector_put exptime 1. 
+#setup threshold scan
+> sls_detector_put scan0script position 
+#setup the precision for the scan variable in the file name
+> sls_detector_put scan0prec 2 
+#set scan range between 20deg and -60deg, step of -0.1deg
+# (at 12.4 keV the Si(111) peak is at approx 19deg
+> sls_detector_put scan0range 20 -60 -0.1 
+#acquire the data
+> sls_detector_acquire
+#unset angular calibration log mode
+> sls_detector_put angcallog 0
+
+ +

+With the GUI you can obtain the same results by clicking on the Angular calibration log button in the advanced tab (see figure 1) and setting up the motor position scan in the Actions tab (see figure 2). The exposure time should also be set in the measurement tab. + +

+Additional to the data files, the acquisition will produce a .angcal file containing an header and, for each step of the acquisition, the exect value of the motor position and the file name. +
+In case you forgot to enable the angcallog flag in the software, you can produce the file with the syntax as follows, assuming that you know the exact values of your encoder for each frame: +

+type Mythen
+maxmod 32
+nmod 32
+angconv /scratch/angcal20120422/ang.off
+globaloff 5.088
+fineoff 0.0
+angdir 1
+ffdir /scratch/angcal20120422/
+flatfield flatfield_E12keV_T6keV_0.raw
+badchannels /scratch/cal/bad.chans
+19.99998 angcal_S20.00_0
+19.90001 angcal_S19.90_0
+19.79999 angcal_S19.80_0
+19.70002 angcal_S19.70_0
+......
+
+ +

+ +

+ + + +
Figure 1: +Acquisition GUI window to enable the angular calibration log.
\includegraphics[width=\textwidth]{enable_angcal.eps}
+
+ +

+ +

+ + + +
Figure 2: +Acquisition GUI window to setup the motor position scan.
\includegraphics[width=\textwidth]{position_scan.eps}
+
+ +

+


+ + +next + +up + +previous +
+ Next: Data analysis + Up: Angular calibration wizard manual + Previous: Introduction + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/angularCalibrationHowTo/node3.html b/manual/docs/html/angularCalibrationHowTo/node3.html new file mode 100644 index 000000000..ac58a2b9f --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/node3.html @@ -0,0 +1,186 @@ + + + + + +Data analysis + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Setup calibration files + Up: Angular calibration wizard manual + Previous: Data acquisition +
+
+ + +Subsections + + + +
+ +

+Data analysis +

+ +

+The data analysis consists in fitting with a gaussian the selected peak of the powder pattern for each position in order to determine its position is channel number as a function of the encoder position. +
+In a second step, for each module, the channel vs. encoder curve is fitted in order to extrapolate the three parameters necessary for the angular conversion and the result is written to file + +

+ +

+Software +

+ +

+The software used for the angular calibration data analysis is based on root (see http://root.cern.ch). +
+This can be downloaded as binary or installed from sources. The version of the software should not play an important role, but up to now everything has been implemented and tested using version 5.20. + +

+To start the data analysis simply launch: +

+> ./angularCalibrationWizard
+
+ +

+ +

+ + + +
Figure 3: +Overview of the nagular calibration dataset.
\includegraphics[width=\textwidth]{setupAngcal.eps}
+
+ +

+To setup the angular calibration dataset, the .angcal file should be selected (or digited) and the load button should be pressed to confirm. The parameters of the angular calibration are then read to the file and the data loaded for a quick overview (see figure 3). +
+The software assumes that the data files (.raw) and the .encal file are in the same directory. +
+A 2D color plot will show a rebinned overview of the dataset. The peak to be fitted should be visible as a high intensity diagonal line passing through all the channels. + +

+ +

+ + + +
Figure 4: +Preview of the fitting of the Si(111) peak for one of the detector positions.
\includegraphics[width=\textwidth]{peakFit.eps}
+
+ +

+For a more detailed view of the data, one can select an angular calibration step from the combo box, select the plot mode (raw data or processed data as a function of channel number, processed angular converted data, flat field data, or again an overview of the whole dataset). +
+By (right) clicking close to the axis you are able to zoom in/out, set the scale to logarithmic etc. +
+

+If the bad channel list, angular conversion file or flat field file are changed compared to the acquisition, they can be reloaded by editing the correspondent text entries and pressing enter. + +

+In particular, the angular converted data should be checked in order to view the position of the selected peak. In this case, the plot will be zoomed to the angular region slected in the minimum and maximum angle entries. By pressing fit, the fit of the peak in the selected angular range will be shown (see figure 4). It is useful to check that it works properly in several positions such that then the sequential fitting on all steps can give good results. + +

+To automatically fit all positions simply press Proceed to Modules Calibration and wait until all steps are fitted. This can take sometime, depending on the number of steps. + +

+ +

+ + + +
Figure 5: +Window for fitting the angular calibration parameters of a module.
\includegraphics[width=\textwidth]{angleFit.eps}
+
+ +

+In the module calibration window (see figure 5), you will be able to fit the channel number to encoder position curve to estimate the three angular calibration parameters for each module. +
+The entries show the angular calibration parameters used for approximate angular conversion in the previous step of the calibration. These can be edited and will be used as start parameters for the fit. +By clicking on the check box next to the parameters, the selected parameter will be set and fixed during the fit. Often the center is used as a fix parameter. +
+It is possible to navigate between modules by using the Previous and Next module buttons. To refit the current module (e.g. after changing one of the parameters) simply re-click on the module number. + +

+After fitting all modules you can click on the Write Angular Calibration button, select the file name to write to and save the calibration angulat calibration data. Please note that the offset of module 0 will always be 0 and the other values will be rescaled to its value. Therefore the global offset of the steup will always need to be specified for a proper angular conversion unless the home of the encoder will not be redifined. + +

+


+ + +next + +up + +previous +
+ Next: Setup calibration files + Up: Angular calibration wizard manual + Previous: Data acquisition + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/angularCalibrationHowTo/node4.html b/manual/docs/html/angularCalibrationHowTo/node4.html new file mode 100644 index 000000000..374edc53d --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/node4.html @@ -0,0 +1,68 @@ + + + + + +Setup calibration files + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: About this document ... + Up: Angular calibration wizard manual + Previous: Data analysis +
+
+ + +

+Setup calibration files +

+ +

+To use the generated angular calibration files, using the text client: +

+sls_detector_put angconv /scratch/ang_new.off
+
+while for the GUI the file name should be specified in the configuration file (works also for the text client). +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/angularCalibrationHowTo/node5.html b/manual/docs/html/angularCalibrationHowTo/node5.html new file mode 100644 index 000000000..cb21fd97c --- /dev/null +++ b/manual/docs/html/angularCalibrationHowTo/node5.html @@ -0,0 +1,71 @@ + + + + + +About this document ... + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Up: Angular calibration wizard manual + Previous: Setup calibration files +
+
+ + +

+About this document ... +

+ Angular calibration wizard manual

+This document was generated using the +LaTeX2HTML translator Version 2008 (1.71) +

+Copyright © 1993, 1994, 1995, 1996, +Nikos Drakos, +Computer Based Learning Unit, University of Leeds. +
+Copyright © 1997, 1998, 1999, +Ross Moore, +Mathematics Department, Macquarie University, Sydney. +

+The command line arguments were:
+ latex2html -split 4 angularCalibrationHowTo.tex +

+The translation was initiated by Thattil Dhanya on 2017-08-22 +


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/energyCalibrationHowTo/WARNINGS b/manual/docs/html/energyCalibrationHowTo/WARNINGS new file mode 100644 index 000000000..486bcceff --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/WARNINGS @@ -0,0 +1 @@ +No implementation found for style `graphicx' diff --git a/manual/docs/html/energyCalibrationHowTo/energyCalibrationHowTo.css b/manual/docs/html/energyCalibrationHowTo/energyCalibrationHowTo.css new file mode 100644 index 000000000..d1824aff4 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/energyCalibrationHowTo.css @@ -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 */ diff --git a/manual/docs/html/energyCalibrationHowTo/energyCalibrationHowTo.html b/manual/docs/html/energyCalibrationHowTo/energyCalibrationHowTo.html new file mode 100644 index 000000000..9b4b60f36 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/energyCalibrationHowTo.html @@ -0,0 +1,84 @@ + + + + + +Energy calibration wizard manual + + + + + + + + + + + + + + + + +next +up +previous +
+ Next: Introduction +
+
+ + +

+ +

Energy calibration wizard manual

+
+ +

Anna Bergamaschi

+

August 22, 2017

+
+ +

+


+ + + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/energyCalibrationHowTo/images.pl b/manual/docs/html/energyCalibrationHowTo/images.pl new file mode 100644 index 000000000..4bdbaf914 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/images.pl @@ -0,0 +1,252 @@ +# LaTeX2HTML 2008 (1.71) +# Associate images original text with physical files. + + +$key = q/CS=frac{N_S}{N_0};MSF=1.6;AAT/; +$cached_env_img{$key} = q|$CS=\frac{N_S}{N_0}$|; + +$key = q/O;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$O$|; + +$key = q/N_gamma;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$N_\gamma$|; + +$key = q/E_t;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$E_t$|; + +$key = q/includegraphics[width=textwidth]{calibrateModule.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{calibrateModule.eps}|; + +$key = q/{displaymath}N_n(E_t)simfrac{T}{tau_s}DBig(frac{-E_t}{ENC}Big).{displaymath};MSF=1.6;AAT/; +$cached_env_img{$key} = q|\begin{displaymath}
+N_n(E_t) \sim \frac{T}{\tau_s} D \Big(\frac{-E_t}{ENC} \Big).
+\end{displaymath}|; + +$key = q/tau_s;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$\tau_s$|; + +$key = q/V_t;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$V_t$|; + +$key = q/ENC;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ENC$|; + +$key = q/includegraphics[width=textwidth]{fig8.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{fig8.eps}|; + +$key = q/N_n;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$N_n$|; + +$key = q/T;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$T$|; + +$key = q/E_0;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$E_0$|; + +$key = q/G;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$G$|; + +$key = q/{displaymath}N_gamma(E_t)=frac{N_0}{2}cdotBig(1+C_sfrac{E_0-2E_t}{E_0}Big)DBig(frac{E_0-E_t}{ENC}Big),{displaymath};MSF=1.6;AAT/; +$cached_env_img{$key} = q|\begin{displaymath}
+N_\gamma(E_t)=\frac{N_0}{2}\cdot\Big(1+C_s \frac{E_0-2E_t}{E_0}\Big)D \Big(\frac{E_0-E_t}{ENC} \Big),
+\end{displaymath}|; + +$key = q/includegraphics[width=textwidth]{GUI_ThresholdScan.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{GUI_ThresholdScan.eps}|; + +$key = q/N_0;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$N_0$|; + +$key = q/N_S;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$N_S$|; + +$key = q/O_i;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$O_i$|; + +$key = q/E_f;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$E_f$|; + +$key = q/i;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$i$|; + +$key = q/G_i;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$G_i$|; + +$key = q/includegraphics[width=textwidth]{fig7.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{fig7.eps}|; + +$key = q/D;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$D$|; + +$key = q/N_s=C_sN_0;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$N_s=C_s N_0$|; + +$key = q/E_0slash2;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$E_0/2$|; + +$key = q/E_t=E_0slash2;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$E_t=E_0/2$|; + +$key = q/includegraphics[width=textwidth]{fig4.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{fig4.eps}|; + +$key = q/includegraphics[width=textwidth]{GUI_Advanced.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{GUI_Advanced.eps}|; + +$key = q/includegraphics[width=textwidth]{addEnergy.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{addEnergy.eps}|; + +$key = q/C_s;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$C_s$|; + +$key = q/CS={begingroup{N_Sbegingroup{overN_0};MSF=1.6;AAT/; +$cached_env_img{$key} = q|$CS={\begingroupN_S\endgroup\over N_0}$|; + +$key = q/CS=;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$CS=$|; + +$key = q/e^-;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$e^-$|; + +$key = q/includegraphics[width=textwidth]{fig5.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{fig5.eps}|; + +$key = q/{displaymath}V_{t}=O+GcdotE_t.{displaymath};MSF=1.6;AAT/; +$cached_env_img{$key} = q|\begin{displaymath}
+V_{t}=O+G \cdot E_t.
+\end{displaymath}|; + +$key = q/Sigma>3ENC;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$\Sigma >3ENC$|; + +$key = q/N;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$N$|; + +$key = q/Sigma>3,ENC;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$\Sigma>3 ENC$|; + +$key = q/Deltasim;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$\Delta \sim $|; + +1; + diff --git a/manual/docs/html/energyCalibrationHowTo/images.tex b/manual/docs/html/energyCalibrationHowTo/images.tex new file mode 100644 index 000000000..656b22780 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/images.tex @@ -0,0 +1,391 @@ +\batchmode +\documentclass{article} +\RequirePackage{ifthen} + + +\usepackage{amssymb} +\usepackage[dvips]{graphicx} +\usepackage{verbatim} + + +\usepackage[dvips]{color} + + +\pagecolor[gray]{.7} + +\usepackage[]{inputenc} + + + +\makeatletter + +\makeatletter +\count@=\the\catcode`\_ \catcode`\_=8 +\newenvironment{tex2html_wrap}{}{}% +\catcode`\<=12\catcode`\_=\count@ +\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}% +\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}% + \expandafter\renewcommand\csname #1\endcsname}% +\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}% +\let\newedcommand\renewedcommand +\let\renewedenvironment\newedenvironment +\makeatother +\let\mathon=$ +\let\mathoff=$ +\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi +\newbox\sizebox +\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt} +\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt} +\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt} +\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt} +\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt} +\setlength{\textwidth}{349pt} +\newwrite\lthtmlwrite +\makeatletter +\let\realnormalsize=\normalsize +\global\topskip=2sp +\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float +\def\@float{\let\@savefreelist\@freelist\real@float} +\def\liih@math{\ifmmode$\else\bad@math\fi} +\def\end@float{\realend@float\global\let\@freelist\@savefreelist} +\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float +\let\@largefloatcheck=\relax +\let\if@boxedmulticols=\iftrue +\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt} +\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize + \parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}% + \def\phantompar{\csname par\endcsname}\normalsize}% +\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}% +\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }% +\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }% +\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup % + \let\ifinner=\iffalse \let\)\liih@math }% +\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}% + \expandafter\box\next\egroup}% +\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}% +\newcommand\lthtmllogmath{\dimen0\ht\sizebox \advance\dimen0\dp\sizebox + \ifdim\dimen0>.95\vsize + \lthtmltypeout{% +*** image for \lthtmlmathenv\space is too tall at \the\dimen0, reducing to .95 vsize ***}% + \ht\sizebox.95\vsize \dp\sizebox\z@ \fi + \lthtmltypeout{l2hSize % +:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}% +\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist + \lthtmlmathtype{#1}\lthtmlvboxmathA}% +\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}% +\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup + \let\@savefreelist\@freelist \lthtmlhboxmathB}% +\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}% +\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox + \global\let\@freelist\@savefreelist}% +\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}% +\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}% +\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}% + \lthtmldisplayA{#1}\let\@eqnnum\relax}% +\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}% +\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB} +\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA + \vrule height1.5ex width0pt }% +\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}% +\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}% +\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % + \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline} +\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % + \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath} +\newcommand\lthtmlindisplaymathZ{\egroup % + \centerinlinemath\lthtmllogmath\lthtmlsetmath} +\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{% + \kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi + \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} +\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{% + \kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt% + \ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt% + \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} +\def\centerinlinemath{% + \dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi + \advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1 + \dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax} + +\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize + \ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill + \else\expandafter\vss\fi}% +\providecommand{\selectlanguage}[1]{}% +\makeatletter \tracingstats = 1 + + +\begin{document} +\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}% +\makeatletter +\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}% +\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi% +\lthtmltypeout{}% +\makeatother +\setcounter{page}{1} +\onecolumn + +% !!! IMAGES START HERE !!! + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline464}% +$E_0$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline466}% +$N_0$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline468}% +$ENC$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline470}% +$CS=$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline472}% +$N_S$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline474}% +$CS={\begingroupN_S\endgroup\over N_0}$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline482}% +$E_f$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline486}% +$E_0/2$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline490}% +$\Delta \sim $% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline492}% +$E_t$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline494}% +$\Sigma >3ENC$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline131}% +$e^-$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline137}% +$D$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline141}% +$E_t=E_0/2$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline143}% +$N$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline147}% +$N_n$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline149}% +$N_\gamma$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmldisplayA{displaymath17}% +\begin{displaymath} +N_\gamma(E_t)=\frac{N_0}{2}\cdot\Big(1+C_s \frac{E_0-2E_t}{E_0}\Big)D \Big(\frac{E_0-E_t}{ENC} \Big), +\end{displaymath}% +\lthtmldisplayZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline151}% +$C_s$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline153}% +$N_s=C_s N_0$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline155}% +$\tau_s$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline157}% +$T$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmldisplayA{displaymath26}% +\begin{displaymath} +N_n(E_t) \sim \frac{T}{\tau_s} D \Big(\frac{-E_t}{ENC} \Big). +\end{displaymath}% +\lthtmldisplayZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline165}% +$\Sigma>3\,ENC$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline167}% +$O$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline169}% +$G$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline171}% +$V_t$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmldisplayA{displaymath34}% +\begin{displaymath} +V_{t}=O+G \cdot E_t. +\end{displaymath}% +\lthtmldisplayZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline175}% +$i$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline177}% +$O_i$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline179}% +$G_i$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline191}% +$CS=\frac{N_S}{N_0}$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap559}% +\includegraphics[width=\textwidth]{fig4.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap563}% +\includegraphics[width=\textwidth]{fig5.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap585}% +\includegraphics[width=\textwidth]{fig7.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap589}% +\includegraphics[width=\textwidth]{fig8.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap595}% +\includegraphics[width=\textwidth]{GUI_Advanced.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap599}% +\includegraphics[width=\textwidth]{GUI_ThresholdScan.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap605}% +\includegraphics[width=\textwidth]{addEnergy.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap609}% +\includegraphics[width=\textwidth]{calibrateModule.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} + +\end{document} diff --git a/manual/docs/html/energyCalibrationHowTo/img1.png b/manual/docs/html/energyCalibrationHowTo/img1.png new file mode 100644 index 000000000..f3596cb7e Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img1.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img10.png b/manual/docs/html/energyCalibrationHowTo/img10.png new file mode 100644 index 000000000..04166b530 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img10.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img11.png b/manual/docs/html/energyCalibrationHowTo/img11.png new file mode 100644 index 000000000..99d40d8b8 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img11.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img12.png b/manual/docs/html/energyCalibrationHowTo/img12.png new file mode 100644 index 000000000..a54947615 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img12.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img13.png b/manual/docs/html/energyCalibrationHowTo/img13.png new file mode 100644 index 000000000..c07ee1e31 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img13.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img14.png b/manual/docs/html/energyCalibrationHowTo/img14.png new file mode 100644 index 000000000..64d3a5e2d Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img14.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img15.png b/manual/docs/html/energyCalibrationHowTo/img15.png new file mode 100644 index 000000000..49f44d375 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img15.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img16.png b/manual/docs/html/energyCalibrationHowTo/img16.png new file mode 100644 index 000000000..58cc68eb9 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img16.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img17.png b/manual/docs/html/energyCalibrationHowTo/img17.png new file mode 100644 index 000000000..d3f5bd945 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img17.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img18.png b/manual/docs/html/energyCalibrationHowTo/img18.png new file mode 100644 index 000000000..39b62b7e5 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img18.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img19.png b/manual/docs/html/energyCalibrationHowTo/img19.png new file mode 100644 index 000000000..4e12c98b4 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img19.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img2.png b/manual/docs/html/energyCalibrationHowTo/img2.png new file mode 100644 index 000000000..d94c69f85 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img2.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img20.png b/manual/docs/html/energyCalibrationHowTo/img20.png new file mode 100644 index 000000000..0df682af3 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img20.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img21.png b/manual/docs/html/energyCalibrationHowTo/img21.png new file mode 100644 index 000000000..08b960743 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img21.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img22.png b/manual/docs/html/energyCalibrationHowTo/img22.png new file mode 100644 index 000000000..46d4e4fe1 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img22.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img23.png b/manual/docs/html/energyCalibrationHowTo/img23.png new file mode 100644 index 000000000..e95ee356f Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img23.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img24.png b/manual/docs/html/energyCalibrationHowTo/img24.png new file mode 100644 index 000000000..987b7d08f Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img24.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img25.png b/manual/docs/html/energyCalibrationHowTo/img25.png new file mode 100644 index 000000000..663687d2d Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img25.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img26.png b/manual/docs/html/energyCalibrationHowTo/img26.png new file mode 100644 index 000000000..21acda2c2 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img26.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img27.png b/manual/docs/html/energyCalibrationHowTo/img27.png new file mode 100644 index 000000000..e775d93dd Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img27.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img28.png b/manual/docs/html/energyCalibrationHowTo/img28.png new file mode 100644 index 000000000..586624d67 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img28.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img29.png b/manual/docs/html/energyCalibrationHowTo/img29.png new file mode 100644 index 000000000..2655ea28d Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img29.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img3.png b/manual/docs/html/energyCalibrationHowTo/img3.png new file mode 100644 index 000000000..1caa75bbf Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img3.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img30.png b/manual/docs/html/energyCalibrationHowTo/img30.png new file mode 100644 index 000000000..6c221752f Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img30.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img31.png b/manual/docs/html/energyCalibrationHowTo/img31.png new file mode 100644 index 000000000..cc3c29c75 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img31.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img32.png b/manual/docs/html/energyCalibrationHowTo/img32.png new file mode 100644 index 000000000..72a519c00 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img32.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img33.png b/manual/docs/html/energyCalibrationHowTo/img33.png new file mode 100644 index 000000000..5caa6ce34 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img33.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img34.png b/manual/docs/html/energyCalibrationHowTo/img34.png new file mode 100644 index 000000000..5c4438a0c Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img34.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img35.png b/manual/docs/html/energyCalibrationHowTo/img35.png new file mode 100644 index 000000000..11a04236a Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img35.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img36.png b/manual/docs/html/energyCalibrationHowTo/img36.png new file mode 100644 index 000000000..13cca8385 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img36.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img37.png b/manual/docs/html/energyCalibrationHowTo/img37.png new file mode 100644 index 000000000..9c5dba126 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img37.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img38.png b/manual/docs/html/energyCalibrationHowTo/img38.png new file mode 100644 index 000000000..2272a34ca Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img38.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img39.png b/manual/docs/html/energyCalibrationHowTo/img39.png new file mode 100644 index 000000000..0961a1567 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img39.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img4.png b/manual/docs/html/energyCalibrationHowTo/img4.png new file mode 100644 index 000000000..1241072a2 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img4.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img40.png b/manual/docs/html/energyCalibrationHowTo/img40.png new file mode 100644 index 000000000..81351bd7c Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img40.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img5.png b/manual/docs/html/energyCalibrationHowTo/img5.png new file mode 100644 index 000000000..25a48547c Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img5.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img6.png b/manual/docs/html/energyCalibrationHowTo/img6.png new file mode 100644 index 000000000..159625a39 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img6.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img7.png b/manual/docs/html/energyCalibrationHowTo/img7.png new file mode 100644 index 000000000..3d6c03b5b Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img7.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img8.png b/manual/docs/html/energyCalibrationHowTo/img8.png new file mode 100644 index 000000000..009186a58 Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img8.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/img9.png b/manual/docs/html/energyCalibrationHowTo/img9.png new file mode 100644 index 000000000..864310c3c Binary files /dev/null and b/manual/docs/html/energyCalibrationHowTo/img9.png differ diff --git a/manual/docs/html/energyCalibrationHowTo/index.html b/manual/docs/html/energyCalibrationHowTo/index.html new file mode 100644 index 000000000..9b4b60f36 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/index.html @@ -0,0 +1,84 @@ + + + + + +Energy calibration wizard manual + + + + + + + + + + + + + + + + +next +up +previous +
+ Next: Introduction +
+
+ + +

+ +

Energy calibration wizard manual

+
+ +

Anna Bergamaschi

+

August 22, 2017

+
+ +

+


+ + + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/energyCalibrationHowTo/internals.pl b/manual/docs/html/energyCalibrationHowTo/internals.pl new file mode 100644 index 000000000..ce56c1a49 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/internals.pl @@ -0,0 +1,50 @@ +# LaTeX2HTML 2008 (1.71) +# Associate internals original text with physical files. + + +$key = q/fig:modulecalibration/; +$ref_files{$key} = "$dir".q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/eq:encal/; +$ref_files{$key} = "$dir".q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:guithrscan/; +$ref_files{$key} = "$dir".q|node2.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscanfluo/; +$ref_files{$key} = "$dir".q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/eq:noisescan/; +$ref_files{$key} = "$dir".q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/eq:thrscan/; +$ref_files{$key} = "$dir".q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:calibratemodule/; +$ref_files{$key} = "$dir".q|node3.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:guiencallog/; +$ref_files{$key} = "$dir".q|node2.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:addenergy/; +$ref_files{$key} = "$dir".q|node3.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscanexpl/; +$ref_files{$key} = "$dir".q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:expthrscan/; +$ref_files{$key} = "$dir".q|node1.html|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/manual/docs/html/energyCalibrationHowTo/labels.pl b/manual/docs/html/energyCalibrationHowTo/labels.pl new file mode 100644 index 000000000..16e860747 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/labels.pl @@ -0,0 +1,101 @@ +# LaTeX2HTML 2008 (1.71) +# Associate labels original text with physical files. + + +$key = q/fig:modulecalibration/; +$external_labels{$key} = "$URL/" . q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/eq:encal/; +$external_labels{$key} = "$URL/" . q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:guithrscan/; +$external_labels{$key} = "$URL/" . q|node2.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscanfluo/; +$external_labels{$key} = "$URL/" . q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/eq:noisescan/; +$external_labels{$key} = "$URL/" . q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/eq:thrscan/; +$external_labels{$key} = "$URL/" . q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:calibratemodule/; +$external_labels{$key} = "$URL/" . q|node3.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:guiencallog/; +$external_labels{$key} = "$URL/" . q|node2.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:addenergy/; +$external_labels{$key} = "$URL/" . q|node3.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscanexpl/; +$external_labels{$key} = "$URL/" . q|node1.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:expthrscan/; +$external_labels{$key} = "$URL/" . q|node1.html|; +$noresave{$key} = "$nosave"; + +1; + + +# LaTeX2HTML 2008 (1.71) +# labels from external_latex_labels array. + + +$key = q/fig:modulecalibration/; +$external_latex_labels{$key} = q|4|; +$noresave{$key} = "$nosave"; + +$key = q/eq:encal/; +$external_latex_labels{$key} = q|3|; +$noresave{$key} = "$nosave"; + +$key = q/fig:guithrscan/; +$external_latex_labels{$key} = q|6|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscanfluo/; +$external_latex_labels{$key} = q|3|; +$noresave{$key} = "$nosave"; + +$key = q/eq:noisescan/; +$external_latex_labels{$key} = q|2|; +$noresave{$key} = "$nosave"; + +$key = q/eq:thrscan/; +$external_latex_labels{$key} = q|1|; +$noresave{$key} = "$nosave"; + +$key = q/fig:calibratemodule/; +$external_latex_labels{$key} = q|8|; +$noresave{$key} = "$nosave"; + +$key = q/fig:guiencallog/; +$external_latex_labels{$key} = q|5|; +$noresave{$key} = "$nosave"; + +$key = q/fig:addenergy/; +$external_latex_labels{$key} = q|7|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscanexpl/; +$external_latex_labels{$key} = q|1|; +$noresave{$key} = "$nosave"; + +$key = q/fig:expthrscan/; +$external_latex_labels{$key} = q|2|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/manual/docs/html/energyCalibrationHowTo/node1.html b/manual/docs/html/energyCalibrationHowTo/node1.html new file mode 100644 index 000000000..8a6aee3f5 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/node1.html @@ -0,0 +1,383 @@ + + + + + +Introduction + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Data acquisition + Up: Energy calibration wizard manual + Previous: Energy calibration wizard manual +
+
+ + +

+Introduction +

+ +

+The choice of the level of the comparator threshold plays a very important role in counting systems since it influences the efficiency of the detector as well as its spatial resolution (for details see the paper Bergamaschi, A. et al. (2010). J. Synchrotron Rad. 17, 653-668). + +

+Single-photon-counting detectors are sensitive to single photons and the only limitation on the fluctuations of the number of counts is given by the Poisson-like statistics of the X-ray quanta. +The digitized signal does not carry any information concerning the energy of the X-rays and all photons with an energy larger than the threshold are counted as one bit. This means that the choice of the correct comparator threshold level is critical in order to obtain good-quality data. +
+Figure 1 shows the expected number of counts as a function of the threshold energy for $N_0$ monochromatic X-rays of energy $E_0$. This is often denominated S-curve and can be interpreted as the integral of the signal spectrum between the threshold level and infinity. +The dashed curve represents the behavior of an ideal counting system: nothing is counted for thresholds larger than the photon energy and all the $N_0$ X-rays are counted for thresholds lower than $E_0$. +The thick solid line represents the physical curve which also takes into account the electronic noise and the charge sharing between channels. + +

+The intrinsic noise on the electronic signal is defined by the Equivalent Noise Charge ($ENC$). The $ENC$ describes noise in terms of the charge at the detector input needed to create the same output at the end of the analog chain and is normally expressed in electrons. For silicon sensors, it can be converted into energy units by considering 1 $e^-$=3.6 eV. +The value of the $ENC$ normally depends on the shaping settings of the analog chain and increases with shorter shaping times. +The resulting electronic signal spectrum is then given by a convolution between the radiation spectrum and the noise i.e., a Gaussian of standard deviation $ENC$. +The S-curve for a monochromatic radiation beam is well described by a Gaussian cumulative distribution $D$ with an additional increase at low threshold due to the baseline noise, as shown by the solid thin line. + +

+Moreover, when a photon is absorbed in the region between two strips of the sensor, the generated charge is partially collected by the two nearest electronic channels. For this reason the physical S-curve is not flat but can be modeled by a decreasing straight line. The number of shared photons $N_S$ is given by the difference between the number of counts and the number of X-rays whose charge is completely collected by the strip (shown by the dotted line). + +

+The number of counts in the physical case is equal to that in the ideal case for a threshold set at half the photon energy. This defines the optimal threshold level $E_t=E_0/2$. +
+The detector response $N$ as a function of the threshold energy $E_t$ is given by the sum of the noise counts $N_n$ and the counts originating from photons $N_\gamma$: +
+

+ + + + + +
\begin{displaymath}
+N_\gamma(E_t)=\frac{N_0}{2}\cdot\Big(1+C_s \frac{E_0-2E_t}{E_0}\Big)D \Big(\frac{E_0-E_t}{ENC} \Big),
+\end{displaymath} +(1)
+

+where $C_s$ is the fraction of photons which produce a charge cloud which is shared between neighboring strips ($N_s=C_s N_0$). +
+By assuming a noise of Gaussian type, and considering its bandwidth limited by the shaping time $\tau_s$, the number of noise counts in the acquisition time $T$ can be approximated as: +
+
+ + + + + +
\begin{displaymath}
+N_n(E_t) \sim \frac{T}{\tau_s} D \Big(\frac{-E_t}{ENC} \Big).
+\end{displaymath} +(2)
+

+ +

+The choice of the comparator threshold level $E_t$ influences not only the counting efficiency and noise performances, but also the spatial resolution and the counting statistics of the detector. +If the threshold is set at values higher than the ideal value $E_t=E_0/2$, a fraction of the photons absorbed in the sensor in the region between two strips is not counted thus reducing the detector efficiency but improving its spatial resolution (narrower strip size). On the other hand, if the threshold is set at values lower than $E_t$, part of the X-rays absorbed in the region between two strips are counted by both of them, resulting in a deterioration of the spatial resolution of the detector and of the fluctuations on the number of photons because of the increased multiplicity. + +

+Furthermore, the threshold uniformity is particularly critical with regards to fluorescent radiation emitted by the sample under investigation. Since the emission of fluorescent light is isotropic, the data quality will be improved by setting the threshold high enough in order to discard the fluorescence background (see figure 3). +
+Moreover, setting the threshold too close to the energy of the fluorescent light gives rise to large fluctuations between channels in the number of counts since the threshold sits on the steepest part of the threshold scan curve for the fluorescent background. These differences cannot be corrected by using a flat-field normalization since the fluorescent component is not present in the reference image. For this reason, it is extremely important that the threshold uniformity over the whole detector is optimized. The threshold level must be set at least $\Sigma>3\,ENC$ away from both the fluorescent energy level and the X-ray energy in order to remove the fluorescence background while efficiently count the diffracted photons. + +

+The comparator threshold is given by a global level which can be set on a module basis and adds to a component which is individually adjustable for each channel. In order to optimize the uniformity of the detector response it is important to properly adjust the threshold for all channels. +
+Since both the signal amplification stages and the comparator are linear, it is necessary to calibrate the detector offset $O$ and gain $G$ in order to correctly set its comparator threshold $V_t$ at the desired energy $E_t$: +
+

+ + + + + +
\begin{displaymath}
+V_{t}=O+G \cdot E_t.
+\end{displaymath} +(3)
+

+This is initially performed by acquiring measurements while scanning the global threshold using different X-ray energies and calculating the median of the counts at each threshold value for each module $i$. The curves obtained for one of the detector modules at three energies are shown in figure 4. The experimental data are then fitted according to equation 1 and for each module a linear relation is found between the X-ray energy and the estimated inflection point, as shown in the inset of figure 4. The resulting offset $O_i$ and gain $G_i$ are used as a conversion factor between the threshold level and the energy. + +

+ +

+ + + +
Figure 1: +Expected counts as a function of a threshold energy for a monochromatic beam of energy $E_0$=12 keV. $N_0$=10000 is the number of photons absorbed by the detector during the acquisition time. The dashed line represents the curve in an ideal case without electronic noise and charge sharing, the solid thin line with noise $ENC$=1 keV but without charge sharing and the solid thick line is the physical case with noise and $CS=$22 % charge sharing. $N_S$ is the number of photons whose charge is shared between neighbouring strips ( +$CS=\frac{N_S}{N_0}$). The dotted line represents the number of photons whose charge is completely collected by a single strip.
\includegraphics[width=\textwidth]{fig4.eps}
+
+ +

+ +

+ + + +
Figure 2: +Measured threshold scan at 12.5 keV with the three different settings. In the inset the fit of the experimental data with the expected curve as in function 1 is shown in the region of the inflection point.
\includegraphics[width=\textwidth]{fig5.eps}
+
+ +

+ +

+ + + +
Figure 3: +Number of counts as a function of the threshold measured from a sample containing iron ($E_f$=5.9 keV) when using X-rays of energy $E_0$=12 keV. In this case, setting the threshold at $E_0/2$, which is very close to $E_f$, would give $\Delta \sim $10% counts from the fluorescense background. Therefore the threshold should be set at an intermediate level $E_t$ between the two energy components with a distance of at least $\Sigma >3ENC$ from both $E_f$ and $E_0$.
\includegraphics[width=\textwidth]{fig7.eps}
+
+Differences in gain and offset are present also between individual channels within a module and therefore the use of threshold equalization techniques (trimming) using the internal 6-bit DAC is needed in order to reduce the threshold dispersion. +Since both gain and offset have variations between channels, the optimal trimming should be performed as a function of the threshold energy. +Please not that trimming of the channels of the detector should be performed in advanced and is extremely important for a succeful energy calibration of the detector. + +

+All energy calibration procedures should be applied to a trimmed detector and only an improvement of the existing trimbits can be performed afterwards, since it does not significatively affect the energy calibration. + +

+ +

+ + + +
Figure 4: +Median of the number of counts as a function of the threshold for X-rays of 12.5, 17.5 and 25 keV for one of the detector modules using standard settings. The solid line represents the fit of the experimental points with equation 1. In the inset the linear fit between the X-ray energy and the position of the inflection point of the curves is shown.
\includegraphics[width=\textwidth]{fig8.eps}
+
+ +

+


+ + +next + +up + +previous +
+ Next: Data acquisition + Up: Energy calibration wizard manual + Previous: Energy calibration wizard manual + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/energyCalibrationHowTo/node2.html b/manual/docs/html/energyCalibrationHowTo/node2.html new file mode 100644 index 000000000..3778306a6 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/node2.html @@ -0,0 +1,186 @@ + + + + + +Data acquisition + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Data analysis + Up: Energy calibration wizard manual + Previous: Introduction +
+
+ + +Subsections + + + +
+ +

+Data acquisition +

+ +

+The energy calibration consists in acquiring threshold scans using the detector at at least 2 (better 3) energies. A monochromatic beam is ideal in this procedure, but beam obtained from some fluorescent sample is also good. +
+Please note that the statistic is important to succesfully analyze the data. Normally the exposure time for each step should be chosen in order to achieve at least 1000 counts per step. +If this is not possible it is better to reduce the scan range or enlarge the scan step rather than acquiring data with a too low statics. + +

+With a quick acquisition or threshold scan it is useful to define the range of the scan and the exposure time. It is important to start from a threshold high enough that (almost) all channels of the detector have a negligible number of counts and that the plateau of the S-curve is long enough to correctly estimate the number of photons. + +

+ +

+Software +

+ +

+For the acquisition ot the data you need to install the slsDetector software package (please refere to separate documentation). The use of the GUI is optional and all operations can be performed also using the text client. +
+

+In the following the command to acquire a dataset for the energy calibration with an exposure time of 1 s, and threshold scan range between 200 and 850 with a setp of 1 DAC unit. +

+> sls_detector_put encallog 1 #setup energy calibration
+> sls_detector_put exptime 1. #set exposure time to 1s
+> sls_detector_put scan0script threshold #setup threshold scan
+> sls_detector_put scan0range 200 850 1 #set scan range between 200 and 850, step of 1
+> sls_detector_acquire #acquire the data
+> sls_detector_put encallog 0 #unset energy calibration
+
+ +

+With the GUI you can obtain the same results by clicking on the Energy Calibration log button in the advanced tab (see figure 5) and setting up the threshold scan in the Actions tab (see figure 6). the exposure time should also be set in the measurement tab. + +

+This procedure should be executed at at least 2 (better 3) energies. + +

+Additional to the data files, the acquisition will produce a .encal file containing an header and, for each step of the acquisition, the threshold value and the file name. +
+In case you forgot to enable the encallog flag in the software, you can produce the file with the syntax as follows: +

+settings standard
+type Mythen+
+nmod 12
+modulenumber:0 000
+modulenumber:1 111
+modulenumber:2 222
+modulenumber:3 333
+modulenumber:4 444
+modulenumber:5 555
+modulenumber:6 666
+modulenumber:7 777
+modulenumber:8 888
+modulenumber:9 999
+modulenumber:10 aaa
+modulenumber:11 bbb
+450 standard_12_4keV_S450_0
+460 standard_12_4keV_S460_0
+470 standard_12_4keV_S470_0
+480 standard_12_4keV_S480_0
+490 standard_12_4keV_S490_0
+500 standard_12_4keV_S500_0
+510 standard_12_4keV_S510_0
+520 standard_12_4keV_S520_0
+...
+...
+
+ +

+ +

+ + + +
Figure 5: +Acquisition GUI window to enable the energy calibration log.
\includegraphics[width=\textwidth]{GUI_Advanced.eps}
+
+ +

+ +

+ + + +
Figure 6: +Acquisition GUI window to setup the threshold scan.
\includegraphics[width=\textwidth]{GUI_ThresholdScan.eps}
+
+ +

+


+ + +next + +up + +previous +
+ Next: Data analysis + Up: Energy calibration wizard manual + Previous: Introduction + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/energyCalibrationHowTo/node3.html b/manual/docs/html/energyCalibrationHowTo/node3.html new file mode 100644 index 000000000..e30f6f012 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/node3.html @@ -0,0 +1,190 @@ + + + + + +Data analysis + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Setup calibration files + Up: Energy calibration wizard manual + Previous: Data acquisition +
+
+ + +Subsections + + + +
+ +

+Data analysis +

+ +

+The data analysis consists in fitting the S-curves obtained from the datasets acquired as above and then performing a linear fit between the energy values and the inflection points. + +

+ +

+Software +

+ +

+The software used for the energy calibration data analysis is based on root (see http://root.cern.ch). +
+This can be downloaded as binary or installed from sources. The version of the software should not play an important role, but up to now everything has been implemented and tested using version 5.20. + +

+To start the data analysis simply launch: +

+> ./energyCalibrationWizard
+
+ +

+To add anew energy write the energy value and select (or digit) the name of the .encal file corresponding to that energy (see figure 7). +
+The software assumes that the data files (.raw) and the .encal file are in the same directory. +Press Preview and a 2D color plot will be displayed, showing the channel numbers on the X-axis, the threshold on the Y-axis, and the number of counts as a color scale. +By (right) clicking close to the axis you are able to zoom in/out, set the scale to logarithmic etc. +
+If the plot corresponds to your expectations press Add to list. The energy value will be shown in the combo box on top and labels will display the settings of the detector, the number of modules, the number of channels per module and the modules serial numbers. + +

+Add then all the other energies to the calibration always by editing the energy value and .encal file name, pressing preview and add to list. +
+If the settings, number of modules or serial numbers do not match, you will not be llowed to add the energy. +
+By using the selected energy actions you can navigate in the combo box with list of energies, view the plots and eventually remove the ones you don't want to use in your calibration. +
+Once you have uploaded at least 2 energies, you will be allowed to proceed to module calibration. + +

+ +

+ + + +
Figure 7: +Window to add energies to the calibration.
\includegraphics[width=\textwidth]{addEnergy.eps}
+
+ +

+In the module calibration window (see figure 8), you are still able to look at the calibration summary, and eventually return to the previous windown by pressing Back to energy setup. +
+The canvas will show the plot of the S-curves relative to the median of the selected module, fitted with equation 1 and the linear fit between the energy values and the fitted inflection points. +Normally the points lie on a straight line (although often not perfect), therefore it should be simple to spot if there are problems in the fitting of some of the data. +
+If Manual save is unclicked, the calibration files will be saved locally, with the extension automatically generated by using the modules serial numbers, every time a linear fit is performed (i.e. if you mess up wiht the linear fit you overwrite a previous good file!). If you click the checkbox, you need to save the calibration by pressing Write to file for each module once you are happy with the fit. + +

+To change the Y scale of the plot, edit the Counts entry. After clicking of the energy button (eventually twice) the maximum of the histogram will be set to three times the value. + +

+To re-fit one energy with modified range or start parameters, you should press the central button with the energy value once the energy is selected. The text color tells you which curve you are referring to. +
+

+You should set the range of the fit. In particular the maximum should be limited in order to avoid to enter the noise range (and can be pretty different for the various modules). +
+Normally the data are acquired by collecting holes from the detector and therefore the Invert axis check button should be ckecked. Uncheck it in case your detector collects electrons (e.g. CdTe, Si n in p) + +

+You can change the start values of the parameters of the fits by editing the number eneries. The label nearby will show you the actual value of the fitted parameters. +
+By checking the checkboxes you can fix the values to the ones you specify. +
+Normally it can be useful to fix the pedestal and pedestal slope to 0, unless you have a lot of 3rd armnonics contribution, primary beam background or similar. +
+Changing the starting value of the inflection point or of the number of counts can often help the fit to converge. +
+Normally it is not very useful to change the starting value for the noise or charge sharing slope. + +

+The button Finished will be enebled only once the calibration files have been generated for all modules. + +

+ +

+ + + +
Figure 8: +Window to calibrate the modules.
\includegraphics[width=\textwidth]{calibrateModule.eps}
+
+ +

+


+ + +next + +up + +previous +
+ Next: Setup calibration files + Up: Energy calibration wizard manual + Previous: Data acquisition + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/energyCalibrationHowTo/node4.html b/manual/docs/html/energyCalibrationHowTo/node4.html new file mode 100644 index 000000000..a32dee7f1 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/node4.html @@ -0,0 +1,74 @@ + + + + + +Setup calibration files + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: About this document ... + Up: Energy calibration wizard manual + Previous: Data analysis +
+
+ + +

+Setup calibration files +

+ +

+To use the genrated calibration files as default ones, copy them into your default caldir/settings renaming them calibration.snxxx, where snxxx is the extension that the genrated files already have, which corresponds to the module serial number. +
+Fot this scope, a script as following can be used: +

+for i in $(ls newcal_standard.sn* | awk -F "." '{print $2}'); do \
+mv newcal_standard.$i caldir/standard/calibration.$i; \
+done
+
+ +

+By reloading the default detector settings, the calibration coefficients will be automatically loaded. +


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/energyCalibrationHowTo/node5.html b/manual/docs/html/energyCalibrationHowTo/node5.html new file mode 100644 index 000000000..3c4dea960 --- /dev/null +++ b/manual/docs/html/energyCalibrationHowTo/node5.html @@ -0,0 +1,71 @@ + + + + + +About this document ... + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Up: Energy calibration wizard manual + Previous: Setup calibration files +
+
+ + +

+About this document ... +

+ Energy calibration wizard manual

+This document was generated using the +LaTeX2HTML translator Version 2008 (1.71) +

+Copyright © 1993, 1994, 1995, 1996, +Nikos Drakos, +Computer Based Learning Unit, University of Leeds. +
+Copyright © 1997, 1998, 1999, +Ross Moore, +Mathematics Department, Macquarie University, Sydney. +

+The command line arguments were:
+ latex2html -split 4 energyCalibrationHowTo.tex +

+The translation was initiated by Thattil Dhanya on 2017-08-22 +


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/slsDetectorClientDocs/html/acquisition.html b/manual/docs/html/slsDetectorClientDocs/acquisition.html similarity index 99% rename from manual/slsDetectorClientDocs/html/acquisition.html rename to manual/docs/html/slsDetectorClientDocs/acquisition.html index 35a1d9211..e4c3cba57 100644 --- a/manual/slsDetectorClientDocs/html/acquisition.html +++ b/manual/docs/html/slsDetectorClientDocs/acquisition.html @@ -78,7 +78,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/actions.html b/manual/docs/html/slsDetectorClientDocs/actions.html similarity index 99% rename from manual/slsDetectorClientDocs/html/actions.html rename to manual/docs/html/slsDetectorClientDocs/actions.html index e057940aa..0eeedac31 100644 --- a/manual/slsDetectorClientDocs/html/actions.html +++ b/manual/docs/html/slsDetectorClientDocs/actions.html @@ -129,7 +129,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/advanced.html b/manual/docs/html/slsDetectorClientDocs/advanced.html similarity index 98% rename from manual/slsDetectorClientDocs/html/advanced.html rename to manual/docs/html/slsDetectorClientDocs/advanced.html index 47691ee68..25e623fd3 100644 --- a/manual/slsDetectorClientDocs/html/advanced.html +++ b/manual/docs/html/slsDetectorClientDocs/advanced.html @@ -54,7 +54,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/config.html b/manual/docs/html/slsDetectorClientDocs/config.html similarity index 99% rename from manual/slsDetectorClientDocs/html/config.html rename to manual/docs/html/slsDetectorClientDocs/config.html index 2919b43eb..f298c34dd 100644 --- a/manual/slsDetectorClientDocs/html/config.html +++ b/manual/docs/html/slsDetectorClientDocs/config.html @@ -251,7 +251,7 @@ Detector Parameters -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/ctb.html b/manual/docs/html/slsDetectorClientDocs/ctb.html similarity index 99% rename from manual/slsDetectorClientDocs/html/ctb.html rename to manual/docs/html/slsDetectorClientDocs/ctb.html index 5bbd33559..b627a4074 100644 --- a/manual/slsDetectorClientDocs/html/ctb.html +++ b/manual/docs/html/slsDetectorClientDocs/ctb.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/data.html b/manual/docs/html/slsDetectorClientDocs/data.html similarity index 99% rename from manual/slsDetectorClientDocs/html/data.html rename to manual/docs/html/slsDetectorClientDocs/data.html index e6e777fb2..6784d3d52 100644 --- a/manual/slsDetectorClientDocs/html/data.html +++ b/manual/docs/html/slsDetectorClientDocs/data.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/doxygen.css b/manual/docs/html/slsDetectorClientDocs/doxygen.css similarity index 100% rename from manual/slsDetectorClientDocs/html/doxygen.css rename to manual/docs/html/slsDetectorClientDocs/doxygen.css diff --git a/manual/manual-api/slsDetectorUsersDocs/html/doxygen.png b/manual/docs/html/slsDetectorClientDocs/doxygen.png similarity index 100% rename from manual/manual-api/slsDetectorUsersDocs/html/doxygen.png rename to manual/docs/html/slsDetectorClientDocs/doxygen.png diff --git a/manual/slsDetectorClientDocs/html/index.html b/manual/docs/html/slsDetectorClientDocs/index.html similarity index 99% rename from manual/slsDetectorClientDocs/html/index.html rename to manual/docs/html/slsDetectorClientDocs/index.html index 2b7d3752e..94de9be63 100644 --- a/manual/slsDetectorClientDocs/html/index.html +++ b/manual/docs/html/slsDetectorClientDocs/index.html @@ -83,7 +83,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/installdox b/manual/docs/html/slsDetectorClientDocs/installdox similarity index 100% rename from manual/slsDetectorClientDocs/html/installdox rename to manual/docs/html/slsDetectorClientDocs/installdox diff --git a/manual/slsDetectorClientDocs/html/network.html b/manual/docs/html/slsDetectorClientDocs/network.html similarity index 99% rename from manual/slsDetectorClientDocs/html/network.html rename to manual/docs/html/slsDetectorClientDocs/network.html index d4ee89bf0..7480a3f39 100644 --- a/manual/slsDetectorClientDocs/html/network.html +++ b/manual/docs/html/slsDetectorClientDocs/network.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/output.html b/manual/docs/html/slsDetectorClientDocs/output.html similarity index 99% rename from manual/slsDetectorClientDocs/html/output.html rename to manual/docs/html/slsDetectorClientDocs/output.html index 7cc80421e..ddb972f0b 100644 --- a/manual/slsDetectorClientDocs/html/output.html +++ b/manual/docs/html/slsDetectorClientDocs/output.html @@ -75,7 +75,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/pages.html b/manual/docs/html/slsDetectorClientDocs/pages.html similarity index 99% rename from manual/slsDetectorClientDocs/html/pages.html rename to manual/docs/html/slsDetectorClientDocs/pages.html index 2b86f03b7..cbf01222c 100644 --- a/manual/slsDetectorClientDocs/html/pages.html +++ b/manual/docs/html/slsDetectorClientDocs/pages.html @@ -77,7 +77,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/receiver.html b/manual/docs/html/slsDetectorClientDocs/receiver.html similarity index 99% rename from manual/slsDetectorClientDocs/html/receiver.html rename to manual/docs/html/slsDetectorClientDocs/receiver.html index 4a863f31c..9f41f3403 100644 --- a/manual/slsDetectorClientDocs/html/receiver.html +++ b/manual/docs/html/slsDetectorClientDocs/receiver.html @@ -84,7 +84,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/search/close.png b/manual/docs/html/slsDetectorClientDocs/search/close.png similarity index 100% rename from manual/slsDetectorClientDocs/html/search/close.png rename to manual/docs/html/slsDetectorClientDocs/search/close.png diff --git a/manual/slsDetectorClientDocs/html/search/nomatches.html b/manual/docs/html/slsDetectorClientDocs/search/nomatches.html similarity index 100% rename from manual/slsDetectorClientDocs/html/search/nomatches.html rename to manual/docs/html/slsDetectorClientDocs/search/nomatches.html diff --git a/manual/slsDetectorClientDocs/html/search/search.css b/manual/docs/html/slsDetectorClientDocs/search/search.css similarity index 100% rename from manual/slsDetectorClientDocs/html/search/search.css rename to manual/docs/html/slsDetectorClientDocs/search/search.css diff --git a/manual/slsDetectorClientDocs/html/search/search.js b/manual/docs/html/slsDetectorClientDocs/search/search.js similarity index 100% rename from manual/slsDetectorClientDocs/html/search/search.js rename to manual/docs/html/slsDetectorClientDocs/search/search.js diff --git a/manual/slsDetectorClientDocs/html/search/search.png b/manual/docs/html/slsDetectorClientDocs/search/search.png similarity index 100% rename from manual/slsDetectorClientDocs/html/search/search.png rename to manual/docs/html/slsDetectorClientDocs/search/search.png diff --git a/manual/slsDetectorClientDocs/html/settings.html b/manual/docs/html/slsDetectorClientDocs/settings.html similarity index 99% rename from manual/slsDetectorClientDocs/html/settings.html rename to manual/docs/html/slsDetectorClientDocs/settings.html index 611f8acdb..23d6e1284 100644 --- a/manual/slsDetectorClientDocs/html/settings.html +++ b/manual/docs/html/slsDetectorClientDocs/settings.html @@ -304,7 +304,7 @@ ADCs -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/tab_b.gif b/manual/docs/html/slsDetectorClientDocs/tab_b.gif similarity index 100% rename from manual/manual-api/slsDetectorUsersDocs/html/tab_b.gif rename to manual/docs/html/slsDetectorClientDocs/tab_b.gif diff --git a/manual/manual-api/slsDetectorUsersDocs/html/tab_l.gif b/manual/docs/html/slsDetectorClientDocs/tab_l.gif similarity index 100% rename from manual/manual-api/slsDetectorUsersDocs/html/tab_l.gif rename to manual/docs/html/slsDetectorClientDocs/tab_l.gif diff --git a/manual/manual-api/slsDetectorUsersDocs/html/tab_r.gif b/manual/docs/html/slsDetectorClientDocs/tab_r.gif similarity index 100% rename from manual/manual-api/slsDetectorUsersDocs/html/tab_r.gif rename to manual/docs/html/slsDetectorClientDocs/tab_r.gif diff --git a/manual/slsDetectorClientDocs/html/tabs.css b/manual/docs/html/slsDetectorClientDocs/tabs.css similarity index 100% rename from manual/slsDetectorClientDocs/html/tabs.css rename to manual/docs/html/slsDetectorClientDocs/tabs.css diff --git a/manual/slsDetectorClientDocs/html/test.html b/manual/docs/html/slsDetectorClientDocs/test.html similarity index 99% rename from manual/slsDetectorClientDocs/html/test.html rename to manual/docs/html/slsDetectorClientDocs/test.html index c1446703f..23f893eaa 100644 --- a/manual/slsDetectorClientDocs/html/test.html +++ b/manual/docs/html/slsDetectorClientDocs/test.html @@ -96,7 +96,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/slsDetectorClientDocs/html/timing.html b/manual/docs/html/slsDetectorClientDocs/timing.html similarity index 99% rename from manual/slsDetectorClientDocs/html/timing.html rename to manual/docs/html/slsDetectorClientDocs/timing.html index b139ce475..8f692cd8d 100644 --- a/manual/slsDetectorClientDocs/html/timing.html +++ b/manual/docs/html/slsDetectorClientDocs/timing.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); -
Generated on 17 Aug 2017 by  +
Generated on 22 Aug 2017 by  doxygen 1.6.1
diff --git a/manual/docs/html/slsDetectorClientHowTo/WARNINGS b/manual/docs/html/slsDetectorClientHowTo/WARNINGS new file mode 100644 index 000000000..a6999a3cf --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/WARNINGS @@ -0,0 +1,3 @@ +No implementation found for style `graphicx' + +There is no author for this document. diff --git a/manual/docs/html/slsDetectorClientHowTo/images.pl b/manual/docs/html/slsDetectorClientHowTo/images.pl new file mode 100644 index 000000000..f70822e9d --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/images.pl @@ -0,0 +1,18 @@ +# LaTeX2HTML 2008 (1.71) +# Associate images original text with physical files. + + +$key = q/tau;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$\tau$|; + +$key = q/=-1;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$=-1$|; + +1; + diff --git a/manual/docs/html/slsDetectorClientHowTo/images.tex b/manual/docs/html/slsDetectorClientHowTo/images.tex new file mode 100644 index 000000000..4ee370db2 --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/images.tex @@ -0,0 +1,188 @@ +\batchmode +\documentclass{article} +\RequirePackage{ifthen} + + +\usepackage{amssymb} +\usepackage[dvips]{graphicx} +\usepackage{verbatim} +\usepackage{xspace}% +\providecommand{\E}{EIGER\xspace} + + +\usepackage[dvips]{color} + + +\pagecolor[gray]{.7} + +\usepackage[]{inputenc} + + + +\makeatletter + +\makeatletter +\count@=\the\catcode`\_ \catcode`\_=8 +\newenvironment{tex2html_wrap}{}{}% +\catcode`\<=12\catcode`\_=\count@ +\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}% +\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}% + \expandafter\renewcommand\csname #1\endcsname}% +\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}% +\let\newedcommand\renewedcommand +\let\renewedenvironment\newedenvironment +\makeatother +\let\mathon=$ +\let\mathoff=$ +\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi +\newbox\sizebox +\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt} +\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt} +\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt} +\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt} +\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt} +\setlength{\textwidth}{349pt} +\newwrite\lthtmlwrite +\makeatletter +\let\realnormalsize=\normalsize +\global\topskip=2sp +\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float +\def\@float{\let\@savefreelist\@freelist\real@float} +\def\liih@math{\ifmmode$\else\bad@math\fi} +\def\end@float{\realend@float\global\let\@freelist\@savefreelist} +\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float +\let\@largefloatcheck=\relax +\let\if@boxedmulticols=\iftrue +\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt} +\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize + \parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}% + \def\phantompar{\csname par\endcsname}\normalsize}% +\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}% +\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }% +\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }% +\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup % + \let\ifinner=\iffalse \let\)\liih@math }% +\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}% + \expandafter\box\next\egroup}% +\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}% +\newcommand\lthtmllogmath{\dimen0\ht\sizebox \advance\dimen0\dp\sizebox + \ifdim\dimen0>.95\vsize + \lthtmltypeout{% +*** image for \lthtmlmathenv\space is too tall at \the\dimen0, reducing to .95 vsize ***}% + \ht\sizebox.95\vsize \dp\sizebox\z@ \fi + \lthtmltypeout{l2hSize % +:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}% +\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist + \lthtmlmathtype{#1}\lthtmlvboxmathA}% +\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}% +\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup + \let\@savefreelist\@freelist \lthtmlhboxmathB}% +\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}% +\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox + \global\let\@freelist\@savefreelist}% +\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}% +\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}% +\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}% + \lthtmldisplayA{#1}\let\@eqnnum\relax}% +\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}% +\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB} +\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA + \vrule height1.5ex width0pt }% +\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}% +\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}% +\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % + \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline} +\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % + \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath} +\newcommand\lthtmlindisplaymathZ{\egroup % + \centerinlinemath\lthtmllogmath\lthtmlsetmath} +\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{% + \kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi + \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} +\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{% + \kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt% + \ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt% + \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} +\def\centerinlinemath{% + \dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi + \advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1 + \dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax} + +\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize + \ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill + \else\expandafter\vss\fi}% +\providecommand{\selectlanguage}[1]{}% +\makeatletter \tracingstats = 1 + + +\begin{document} +\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}% +\makeatletter +\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}% +\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi% +\lthtmltypeout{}% +\makeatother +\setcounter{page}{1} +\onecolumn + +% !!! IMAGES START HERE !!! + +\stepcounter{section} +\stepcounter{section} +\stepcounter{section} +\stepcounter{subsection} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline171}% +$\tau$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsubsection} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline173}% +$=-1$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{section} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsubsection} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsubsection} +\stepcounter{subsection} +\stepcounter{section} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{subsection} + +\end{document} diff --git a/manual/docs/html/slsDetectorClientHowTo/img1.png b/manual/docs/html/slsDetectorClientHowTo/img1.png new file mode 100644 index 000000000..bd3ad3ad1 Binary files /dev/null and b/manual/docs/html/slsDetectorClientHowTo/img1.png differ diff --git a/manual/docs/html/slsDetectorClientHowTo/img2.png b/manual/docs/html/slsDetectorClientHowTo/img2.png new file mode 100644 index 000000000..f774e5e52 Binary files /dev/null and b/manual/docs/html/slsDetectorClientHowTo/img2.png differ diff --git a/manual/docs/html/slsDetectorClientHowTo/index.html b/manual/docs/html/slsDetectorClientHowTo/index.html new file mode 100644 index 000000000..3b03aa6cd --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/index.html @@ -0,0 +1,154 @@ + + + + + +SLS Detector text clients manual + + + + + + + + + + + + + + + + +next +up +previous +
+ Next: Introduction +
+
+ + +

+ +

SLS Detector text clients manual

+
+ +

August 22, 2017

+
+ +

+


+ + + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorClientHowTo/labels.pl b/manual/docs/html/slsDetectorClientHowTo/labels.pl new file mode 100644 index 000000000..e5b868d94 --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/labels.pl @@ -0,0 +1,13 @@ +# LaTeX2HTML 2008 (1.71) +# Associate labels original text with physical files. + + +1; + + +# LaTeX2HTML 2008 (1.71) +# labels from external_latex_labels array. + + +1; + diff --git a/manual/docs/html/slsDetectorClientHowTo/node1.html b/manual/docs/html/slsDetectorClientHowTo/node1.html new file mode 100644 index 000000000..b869970d0 --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/node1.html @@ -0,0 +1,129 @@ + + + + + +Introduction + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Acquisition + Up: SLS Detector text clients + Previous: SLS Detector text clients +
+
+ + +

+Introduction +

+ +

+This program is intended to control the SLS detectors via command line interface. +
+This is the only way to access all possible functionality of the detectors, however it is often recommendable to avoid changing the most advanced settings, rather leaving the task to configuration files, as when using the GUI or the API provided. + +

+The command line interface consists in four main functions: +

+
sls_detector_acquire
+
to acquire data from the detector +
+
sls_detector_put
+
to set detector parameters +
+
sls_detector_get
+
to retrieve detector parameters +
+
sls_detector_help
+
to get help concerning the text commands +
+
+Additionally the program slsReceiver should be started on the machine expected to receive the data from the detector. + +

+If you need control a single detector, the use of the command line interface does not need any additional arguments. + +

+For commands addressing a single controller of your detector, the command cmd should be called with the index i of the controller: +
sls_detector_clnt i:cmd +
+where sls_detector_clnt is the text client (put, get, acquire, help). + +

+In case more than one detector is configured on the control PC, the command cmd should be called with their respective index j: +sls_detector_clnt j-cmd +
+where sls_detector_clnt is the text client (put, get, acquire, help). + +

+To address a specific controller i of detector j use: +
sls_detector_clnt j-i:cmd + +

+For additional questions concerning the indexing of the detector, please refer to the SLS Detectors FAQ documentation. + +

+


+ + +next + +up + +previous +
+ Next: Acquisition + Up: SLS Detector text clients + Previous: SLS Detector text clients + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorClientHowTo/node2.html b/manual/docs/html/slsDetectorClientHowTo/node2.html new file mode 100644 index 000000000..6587a2b2f --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/node2.html @@ -0,0 +1,74 @@ + + + + + +Acquisition + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Detector setup + Up: SLS Detector text clients + Previous: Introduction +
+
+ + +

+Acquisition +

+ +

+By calling: +
sls\_detector\_acquire [j-] +
+the detector j is started and the data are acquired, postprocessed and written to file according to the configuration and setup of the measurements. +
+A progress index of the acquisition in percentage is shown on the command line. + +

+For additional questions concerning the acquisition flow, please refer to the SLS Detectors FAQ documentation. + +

+


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorClientHowTo/node3.html b/manual/docs/html/slsDetectorClientHowTo/node3.html new file mode 100644 index 000000000..5c3ce5583 --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/node3.html @@ -0,0 +1,769 @@ + + + + + +Detector setup + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Retrieving detector parameters + Up: SLS Detector text clients + Previous: Acquisition +
+
+ + +Subsections + + + +
+ +

+Detector setup +

+ +

+sls\_detector\_put [j-][i:]var arg +
+

+is used to configure the detector parameters var with the value arg. +
+It returns the actual value of the variable, as when calling sls\_detector\_get with the same command. + +

+ +

+Standard commands +

+ +

+

+
config fname
+
Load the configuration file fname. +
+Examples of configuration files are available in the directory examples. This should be done every time the configuration of the detectors(s) changes or the control PC is rebooted. Must be executed on all the control PCs, before executing other commands. +
+
parameters fname
+
Load the parameter file fname. +
+The syntax of the commands in the parameter file is exactly the same as for the command line interface. Can be used to load a standard mode of acquisition and/or to hide advanced parameters from the final user. Examples of parameter files are available in the directory examples. +
+
settings sett
+
Configures the settings of the detector. Refer to detailed detector documentation for more details: +
+for MYTHEN sett can be: standard, fast, highgain; +
+for GOTTHARD sett can be: veryhighgain, highgain, mediumgain, lowgain, dynamicgain; +
+for EIGER sett can be: standard, highgain, lowgain. +
+
threshold ev
+
For photon counting detectors, sets the detector threshold in eV. The detector should be properly calibrated, otherwise standard calibration coefficients are used, which can give an uncertainty up to a few keVs. +
+
timing sync
+
Sets the timing mode of the detector. Can be auto, gating (works only if at least one of the signals is configured as gate_in), trigger (works only if at least one of the signals is configured as trigger_in), ro_trigger (works only if at least one of the signals is configured as ro_trigger_in), triggered_gating (works only if one of the signals is configured as gate_in and one as trigger_in). +
+Refer to the detailed documentation to understand how the different timing modes work. +
+
outdir path
+
Defines the path where the output files will be saved to. +
+
fname prefix
+
Defines the prefix of the file name for the data output. +
+The final file name will be: +
prefix[_dd][_Sv0][_sv1][_pp][_ff]_i.ext +
+where: +
d is the controller index, in case of data receiver and more than one controller; +
v0 is the scan0 variable with the desired precision, if scan0 is enabled; +
v1 is the scan1 variable with the desired precision, if scan1 is enabled; +
p is the position index, if different positions are configured; +
f is the frame index of the first frame stored in the file, if many frames and cycles are configured; +
i is the file index; +
ext is the file extension e.g. .raw for MYTHEN and EIGER raw data, .dat for MYTHEN processed data. +
+
index i
+
Sets the starting index of the file i at the beginning of the acquisition (automatically incremented for each measurement). +
+
enablefwrite b
+
Enables (1) or disables (0) file writing. +
+
exptime ts
+
Sets the exposure time of a single acquisition to ts (in s). It is overridden in case the detector is in gating mode. +
+Refere to detailed documentation to understand how the different timing modes work. +
+
subexptime ts
+
Sets the subexposure time of a single subacquisition to ts (in s) in EIGER autosumming mode (=dr 32). Refer to detailed documentation to understand how the different timing modes work. +
+
period ts
+
Sets the frames period (in s). It is overridden in case the detector is in gating mode. +
+Refer to detailed documentation to understand how the different timing modes work. +
+
delay ts
+
Sets the delay after trigger in triggered mode (in s). +
+Refer to the detailed documentation to understand how the different timing modes work. +
+
gates n
+
Sets the number of gates per frame in gated (stroboscopic) mode. +
+Refer to the detailed documentation to understand how the different timing modes work. +
+
frames n
+
Sets the number of frames acquired sequentially per cycle (e.g. after each trigger), with the exposure time defined by exptime and the period defined by period (unless in gated mode). The frame index in the output file name will automatically be incremented. +
+Note that the total number of images will be frames times cycles. Refer to detailed documentation to understand how the different timing modes work. +
+
cycles n
+
Sets the number of cycles (e.g. number of triggers). The frame index in the output file name will automatically be incremented. +
+Note that the total number of images will be by frames times cycles. Refer to the detailed documentation to understand how the different timing modes work. +
+
probes
+
Sets the number of probes to accumulate for stroboscopic measurements. +
+Refer to detailed documentation to understand how the different timing modes work. +
+
measurements
+
Sets the number of repetitions of the acquisitions (non real time!). The file index in the file name will be automatically incremented. +
+Refer to detailed documentation to understand how the different timing modes work. +
+
dr n
+
Sets the dynamic range n (in bits) of the data for a photon counting detector. For EIGER it can be set to 4, 8, 16 (but the real counter depth will still be limited to 12 bits) or 32 when one wants to activate the internal subframe summing mode. + +

+

+
flags s
+
Sets some particular flags for your detector. For MYTHEN s can be none, storeinram (for buffered readout) or tot (for time over threshold). For EIGER, s can be continous (for continous readout- still buffer on memories happens), storeinram (for buffered readout. Do not use as has no graet advantages), parallel for parallel exposure to the next frame and readout of the previous frame, nonparallel to decouple sequentially readout and exposure, safe (rowclock interleaved). +
+
help cmd
+
Returns the help for command cmd. +
+
lock
+
Locks (1) or unlocks (0) the detector to this particular control PC. An be unlocked again only from the same PC or by rebooting the detector. +
+
nmod n
+
Sets the number of modules for the detector to n for partial readout. Will be replaced by ROI. +
+
+ +

+ +

+Postprocessing commands +

+
+
flatfield fname
+
Sets the flat field file name. File ffdir/fname will be used to calculate the flat field coefficients. none to unset flat field corrections. +
+
ratecorr ns
+
Sets the deadtime to be used for rate corrections in ns. 0 to unset, -1 to use default dead time for the actual settings.In the case of EIGER, as online data rate correctiosn are applied, then a correction table has to be calculated every time the rate correction $\tau$ is changed, activated, or the subexposure time is changed. + +

+

+
+ +

+ +

+Angular conversion +

+ +

+

+
fineoff deg
+
Sets the fine offset for the experiment. +
+
samplex mm
+
Sets the sample displacement from the center of the diffractometer in the X-ray direction, to improve angular conversion (unused). +
+
sampley mm
+
Sets the sample displacement from the center of the diffractometer in the ortogonal direction, to improve angular conversion (unused) +
+
+ +

+ +

+Acquisition +

+See SLS Detectors Documentation for a detailed description of the acquisition flow. +
+
positions n p1 p2...pn
+
Sets the number of positions n and their value. + +
+
startscript s
+
Sets the script to be executed at the beginning of each measurement. none unsets. + +
+
startscriptpar p
+
Sets the parameter to be passed to the start script + +
+
stopscript s
+
Sets the script to be executed at the end of each measurement. none unsets. + +
+
stopscriptpar p
+
Sets the parameter to be passed to the stop script. + +
+
scriptbefore s
+
Sets the script to be executed before each acquisition. none unsets. + +
+
scriptbeforepar p
+
Sets the parameter to be passed to the script before. + +
+
scriptafter s
+
Sets the script to be executed after each acquisition. none unsets. + +
+
scriptafterpar p
+
Sets the parameter to be passed to the script after. + +
+
headerbefore s
+
Sets the script to be executed to acquire the header of the acquisition. none unsets. + +
+
headerbeforepar p
+
Sets the parameter to be passed to the header before. + +
+
headerafter s
+
Sets the script to be executed to append to the header of the acquisition. none unsets. + +
+
headerafterpar p
+
Sets the parameter to be passed to the header after. + +
+
scan0scripts s
+
Sets the script to execute at scan 0 level. none unsets, threshold, energy, trimbits, position perform the corresponding scans without need of a custom script. + +
+
scan0par p
+
Sets a parameter to be passed to the scan 0 level script. + +
+
scan0prec i
+
Sets the number of decimal digits for the scan0 level parameter in the file name (default is 0). + +
+
scan0steps n s1 s2..sn
+
Sets the number of scan 0 level steps n and their value. + +
+
scan0range min max step
+
Sets the minimum, the maximum and the step for the scan 0 level steps (easier to use than scan0steps if equally spaced steps in a range) + +
+
scan1script s
+
Sets the script to execute at scan 1 level. none unsets, threshold, energy, trimbits, position perform the corresponding scans without need of a custom script. + +
+
scan1par p
+
Sets a parameter to be passed to the scan 1 level script. + +
+
scan1prec i
+
Sets the number of decimal digits for the scan1 level parameter in the file name (default is 0). + +
+
scan1steps n s1 s2...sn
+
Sets the number of scan 0 level steps n and their value. + +
+
scan1range min max step
+
Sets the minimum, the maximum and the step for the scan 0 level steps (easier to use than scan0steps if equally spaced steps in a range) +
+
+ +

+ +

+Advanced commands +

+ +

+ +

+Calibration +

+This operations should be performed only rarely to configure the detector + +

+

+
trim:mode fname
+
Trims the detector according to mode (can be noise, beam, improve, fix) and saves the resulting trimbits to file fname. Take care to set a proper exptime and vthreshold before trimming. + +
+
encallog b
+
Sets (1) or unsets (0) the logging for energy calibration. + +
+
angcallog b
+
Sets (1) or unsets (0) the logging for angular calibration. +
+
+ +

+ +

+Acquisition +

+ +

+It is normally recommended to use sls\_detector\_acquire [j-], which takes care of everything +

+
status s
+
Starts (start) or stops (stop) the detector acquisition. +
+
online b
+
Sets the detector in online (1) or offline (0) mode. +
+
resetctr i
+
GOTTHARD- ADVANCED- resets counter in detector, restarts acquisition if i=1 +
+
resmat i
+
EIGER- ADVANCED - resets counter in detector before the following acquisition. Default settings is resmat 1. resmat 0 does not reset the counter bit before the acquisition. Note that in EIGER the counter is always reset after the acquisition. +
+
+ +

+ +

+Configuration +

+Advanced commands to configure the detector system. Should be left to the configuration file +
+
type s
+
Sets the types of detector controllers in the system. Can be Mythen, Gotthard, EIGER and multiple controllers should be catenated with a + (e.g. Mythen+Mythen for 2 Mythen controllers). +
+
d:hostname s
+
Sets the hostname or IP address for the controller d, where d is the controller index within the detector structure. +
+
d:extsig:i s
+
Configures the usage of the external IO signals to synchronize the detectors. s can be: off, gate_in_active_high, gate_in_active_low, trigger_in_rising_edge, + trigger_in_falling_edge, + ro_trigger_in_rising_edge, + ro_trigger_in_falling_edge, + gate_out_active_high, + gate_out_active_low, + trigger_out_rising_edge, + trigger_out_falling_edge, + ro_trigger_out_rising_edge, + ro_trigger_out_falling_edge, sync. +
+Usually left to the configuration file. Gating, triggering etc. are enabled only by calling the timing command. +
+Please refer to SLS Detectors FAQ documentation for more detailed information about the usage. + +

+

+
master i
+
Sets the master of a multi-controller detector to the controller with index i. -1 removes master. Setting a master is useful only if the controllers are synchronized via hardware using the external IO signals. Usually left to the configuration file. Please refer to SLS Detectors FAQ documentation for more detailed information about the usage. +
+
sync s
+
Sets the synchronization mode of the various controller within a detector structure. s acn be none, gating, trigger, complementary. Check that the detectors are correctly connected to avoid freezing of the acquisition. Usually left to the configuration file. Please refer to SLS Detectors FAQ documentation for more detailed information about the usage. +
+
trimdir s
+
Obsolete. Same ad settingsdir. +
+
settingsdir s
+
Sets the path of the drectory where the trim/settings files are stored. Usually left to the configuration file. +
+
caldir s
+
Sets the path of the drectory where the calibration files are stored. Can be the same as settingsdir. Usually left to the configuration file. +
+
trimen n e1 e2 ...en
+
Unused. Sets the list of energies for which trimfiles exist. +
+
port p
+
Sets the port used by the sockets to control the detector. Do not change! Usually left to the configuration file. +
+
stopport p
+
Sets the port used by the sockets to stop/get the status of the detector. Do not change! Usually left to the configuration file. +
+
add s
+
Avoid using it. Adds the controller s to the detector structure. +
+
remove i
+
Avoid using it. Removes the controller in position i from the detector structure. +
+
id:i l
+
Avoid using it. configures the id of the detector structure. i is the detector position in a multi detector system and l is the id of the detector to be added. +
+
free i
+
Avoid using it. Frees the shared memory. +
+
exitserver
+
Avoid using it. Turns off the communication server on the detector. +
+
+ +

+ +

+Receiver - GOTTHARD/EIGER +

+
+
detectormac mac
+
sets the mac of the detector udp interface to mac (if configurable). Should be left to the configuration file. +
+
rx_tcpport i
+
sets the communication port between client and receiver. Should be left to the configuration file. +
+
rx_udpport i
+
sets the communication port between detector and receiver. Should be left to the configuration file. +
+
rx_hostname s
+
sets the hostname (or IP address) of the receiver for the TCP/IP interface with the client. +
+
rx_udpip ip
+
sets the IP address of the receiver for the UDP interface with the detector. +
+
rx_fifodepth v
+
sets receiver fifo depth to value v. Default for EIGER is 100 frames betweeen listening and writing. +
+
r_online b
+
sets the receiver in online (1) or offline (0) mode. +
+
r_lock b
+
Locks (1) or unlocks (0) the receiver to this PC. +
+
receiver s
+
starts/stops the receiver to listen to detector packets. - can be start or stop +
+
+ +

+ +

+Postprocessing +

+Some advanced commands to configure data postprocessing. +
+
ffdir dir
+
Sets the directory where the flat field files are stored. Normally left to the configuration file. +
+
darkimage fname
+
GOTTHARD- ADVANCED- Sets fname as dark image file for the detector. +
+
gainimage fname
+
GOTTHARD- ADVANCED- Sets fname as gain image file for the detector. +
+
badchannels fname
+
Sets the bad channel file to fname. Bad channels will be omitted in the .dat file. none to unset. Normally left to the configuration file. +
+
threaded b
+
Avoid changing it. Sets if the data are written to disk in parallel with the acquisition (1) or after the acquisition (0). Normally left to the configuration file. +
+
+ +

+Angular conversion + +

+

+
globaloff deg
+
Sets the offset of the beamline i.e. angular position of channel 0 when angular encoder at 0. Normally left to the configuration file. +
+
angconv fname
+
Sets the file with the coefficients for angular conversion. none disables angular conversion. Normally left to the configuration file. +
+
binsize deg
+
Sets the size of the angular bins for angular coversion. Normally left to the configuration file. +
+
angdir i
+
Sets the angular direction of the detector (1 means channel number in the same direction as the angular encoder, -1 different direction). Normally left to the configuration file. +
+
d:moveflag i
+
Related to a single controller d. 1 if the detector modules move with the angular encoder, 0 if they are static (useful for multidetector systems). Normally left to the configuration file. +
+
+ +

+ +

+Testing - EIGER specific +

+Some VERY ADVANCED testing functions implemented for EIGER: +
+
pulsechip n
+
sets the chip into test mode with resmat = 0 and externalenable =1. Pulses chip by togglying the enable n number of times. The acquire is then done with no pixel matrix reset before the acquisition. If n$=-1$, the chip will be set into normal mode. This is necessary to restore normal chip operations after the test. +
+
pulse n x y
+
Pulses pixel at coordinates (x,y) n number of times. +
+
pulsenmove n x y
+
Pulses pixel n number of times and moves relatively by x value (x axis) and y value (y axis) +
+
+ +

+ +

+Detector settings +

+Advanced settings changing the analog or digital performance of the acquisition. Use them only if you are sure of what you are doing! + +

+

+
vthreshold n
+
Sets the DAC value of the detector threshold to n. +
+
vcalibration n
+
Sets the DAC value of the calibration pulse amplitude to n. +
+
vtrimbit n
+
Sets the DAC value defining the trimbits LSB size to n. +
+
vpreamp n
+
Sets the DAC value of the preamp feedback to n. +
+
vshaper1 n
+
Sets the DAC value of the shaper1 feedback to n. +
+
vshaper2 n
+
Sets the DAC value of the shaper2 feedback to n. +
+
vhighvoltage n
+
Sets the DAC value of the high voltage to n (in V). +
+
vapower n
+
CHIPTEST BOARD ONLY - Sets the DAC value of the analog voltage to n. +
+
vddpower n
+
CHIPTEST BOARD ONLY - Sets the DAC value of the analog voltage to n. +
+
vshpower n
+
CHIPTEST BOARD ONLY - Sets the comparator power supply in dac units (0-1024). +
+
viopower n
+
CHIPTEST BOARD ONLY - Sets the FPGA I/O power supply in dac units (0-1024). +
+
vref_ds n
+
Sets vrefds +
+
vcascn_pb n
+
Sets vcascn_pb +
+
vcascp_pb n
+
Sets vcascp_pb +
+
vout_cm n
+
Sets vout_cm +
+
vcasc_out n
+
Sets vcasc_out +
+
vin_cm n
+
Sets vin_cm +
+
vref_comp n
+
Sets vref_comp +
+
ib_test_c n
+
Sets ib_test_c +
+
vsvp n
+
Sets vsvp DAC to n +
+
vsvn n
+
Sets vsvn DAC to n +
+
vtr n
+
Sets vtr DAC to n +
+
vrf n
+
Sets vrf DAC to n +
+
vrs n
+
Sets vrs DAC to n +
+
vtgstv n
+
Sets vtgstv DAC to n +
+
vcmp_ll n
+
Sets vcmp_ll DAC to n +
+
vcmp_lr n
+
Sets vcmp_lr DAC to n +
+
vcmp_rl n
+
Sets vcmp_rl DAC to n +
+
vcmp_rr n
+
Sets vcmp_rr DAC to n +
+
vcall n
+
Sets vcall DAC to n +
+
rxb_rb n
+
Sets rxb_rb DAC to n +
+
rxb_lb n
+
Sets rxb_rb DAC to n +
+
vcp n
+
Sets vcp DAC to n +
+
vcn n
+
Sets vcn DAC to n +
+
vis n
+
Sets vis DAC to n +
+
iodelay n
+
Sets iodelay to n +
+
reg a d
+
Write to register of address a the data d +
+
clkdivider n
+
Sets the clock divider for the readout. Can be increased for longer cables. For EIGER options are 0 (full speed), 1 (half speed), 2 (quarter speed), and 3 (slow). +
+
setlength n
+
Changes the length of the set/reset signals in the acquisition. Never reduce it! +
+
waitstates n
+
Sets the wait states for CPU/FPGA communication. Do not change it! +
+
totdivider n
+
Sets the tot clock divider. +
+
totdutycycle n
+
Sets the tot duty cycle. +
+
setup s
+
Loads the setup files to the detector (config, parameters, trimbits etc.). +
+
trimbits fn
+
Loads the trimbit files fn.snxxx to the detector +
+
+ +

+ +

+Debug +

+
+
digibittest i
+
only for GOTTHARD. If i=1, the acquisition will return a unique channel identifier, instead of data, if i=0 normal acquisition. +
+
+ +

+


+ + +next + +up + +previous +
+ Next: Retrieving detector parameters + Up: SLS Detector text clients + Previous: Acquisition + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorClientHowTo/node4.html b/manual/docs/html/slsDetectorClientHowTo/node4.html new file mode 100644 index 000000000..7e8c1cb0d --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/node4.html @@ -0,0 +1,814 @@ + + + + + +Retrieving detector parameters + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Usage + Up: SLS Detector text clients + Previous: Detector setup +
+
+ + +Subsections + + + +
+ +

+Retrieving detector parameters +

+ +

+sls\_detector\_get [j-][i:]var [arg] +
+

+is used to retrieve the detector parameters var. +
+For some commands, an additional argument arg is needed. + +

+ +

+Standard commands +

+ +

+

+
config fname
+
Dumps the current configuration of the detector to the file fname. +
+
parameters fname
+
Dumps the current acquisition parameters of the detector to the file fname. +
+
settings
+
Returns the current settings of the detector. +
+
threshold
+
For photon counting detectors, returns the detector threshold in eV, -1 if undefined. +
+
timing
+
Returns the acquisition timing mode of the detector. +Refer to the detailed documentation to understand how the different timing modes work. +
+
outdir
+
Returns the path where the output files are saved to. +
+
fname
+
Returns the prefix of the file name for the data output. +
+
enablefwrite
+
Returns if data are written to file (1) or not (0). +
+
exptime
+
Returns the exposure time of a single acquisition in seconds. +Refer to detailed documentation to understand how the different timing modes work. +
+
period
+
Returns the frames period (in s). +Refer to detailed documentation to understand how the different timing modes work. +
+
delay
+
Returns the delay after trigger in triggered mode (in s). +Refer to detailed documentation to understand how the different timing modes work. +
+
gates
+
Returns the number of gates per frame in gated (stroboscopic) mode. +Refer to detailed documentation to understand how the different timing modes work. +
+
frames
+
Returns the number of frames acquired sequentially per cycle (e.g. after each trigger), with the exposure time defined by exptime and the period defined by period (unless in gated mode). +Note that the total number of images is frames times cycles. +Refer to detailed documentation to understand how the different timing modes work. +
+
cycles n
+
Returns the number of cycles (e.g. number of triggers). +Note that the total number of images is frames times cycles. +Refer to detailed documentation to understand how the different timing modes work. +
+
probes
+
Returns the number of probes to accumulate for stroboscopic measurements. +Refer to detailed documentation to understand how the different timing modes work. +
+
measurements
+
Returns the number of repetitions of the acquisitions (non real time!). +Refer to detailed documentation to understand how the different timing modes work. +
+
dr
+
Returns the dynamic range n (in bits) of the data for a photon counting detector. +
+
flags s
+
Returns the flags set for your detector. +
+
help cmd
+
Returns the help for command cmd. +
+
lock
+
Returns if the detector is locked to a single PC. +
+
lastclient
+
Returns the last client which has connected to the detector. +
+
nmod n
+
Returns the number of modules which are read out. Will be replaced by ROI. +
+
maxmod
+
Returns the maximum number of modules (size) of the detector. Will be replaced by size. +
+
+ +

+ +

+Postprocessing commands +

+
+
flatfield
+
Returns the flat field file name. +
+
ratecorr
+
Returns the dead time used for rate corrections. +
+
+ +

+ +

+Angular conversion +

+ +

+

+
fineoff
+
Returns the fine offset used to convert channel number to angles +
+
samplex
+
Returns the sample displacement from the center of the diffractometerin the X-ray direction, to improve angular conversion (unused). +
+
sampley
+
Returns the sample displacement from the center of the diffractometer in the ortogonal direction, to improve angular conversion (unused) +
+
+ +

+ +

+Acquisition +

+See SLS Detectors Documentation for a detailed description of the acquisition flow. +
+
positions
+
Returns the number of positions n and their value. + +
+
startscript
+
Returns the script to be executed at the beginning of each measurement. + +
+
startscriptpar
+
Returns the parameter to be passed to the start script + +
+
stopscript
+
Returns the script to be executed at the end of each measurement. + +
+
stopscriptpar
+
Returns the parameter to be passed to the stop script. + +
+
scriptbefore
+
Returns the script to be executed before each acquisition. + +
+
scriptbeforepar
+
Returns the parameter to be passed to the script before. + +
+
scriptafter
+
Returns the script to be executed after each acquisition. + +
+
scriptafterpar
+
Returns the parameter to be passed to the script after. + +
+
headerbefore
+
Returns the script to be executed to acquire the header of the acquisition. + +
+
headerbeforepar
+
Returns the parameter to be passed to the header before. + +
+
headerafter
+
Returns the script to be executed to append to the header of the acquisition. + +
+
headerafterpar
+
Returns the parameter to be passed to the header after. + +
+
scan0scripts
+
Returns the script to execute at scan 0 level. + +
+
scan0par
+
Returns a parameter to be passed to the scan 0 level script. + +
+
scan0prec
+
Returns the number of decimal digits for the scan0 level parameter in the file name (default is 0). + +
+
scan0steps
+
Returns the number of scan 0 level steps n and their value. + +
+
scan0range
+
Same as scan0steps. + +
+
scan1script
+
Returns the script to execute at scan 1 level. + +
+
scan1par
+
Returns a parameter to be passed to the scan 1 level script. + +
+
scan1prec
+
Returns the number of decimal digits for the scan1 level parameter in the file name (default is 0). + +
+
scan1steps
+
Returns the number of scan 0 level steps n and their value. + +
+
scan1range
+
Same as scan1steps. +
+
+ +

+ +

+Debug +

+Commands to be used to retrieve information about the detector version or perform tests. + +

+Version +

+
+
moduleversion[:i]
+
Returns the version of the module firmware. +
+
detectornumber
+
Returns the serial number of the module (normally the MAC address). +
+
modulenumber[:i]
+
Returns the serial number of the module i. +
+
detectorversion
+
Returns the version of the controller firmware. +
+
softwareversion
+
Returns the version of the software running on the detector. +
+
thisversion
+
Returns the version of the control software which is being used. +
+
detectorsvnversion
+
Returns the SVN version of the software on the detector. +
+
+ +

+ +

+Tests +

+ +

+

+
digitest[:i]
+
Makes a digital test of module i. Afterwards the detector must be reconfigured for the acquisition (settings, threshold, exptime, dr, frames etc.). Returns 0 if succeeded, otherwise an error mask. +
+
bustest
+
Makes a digital test of the communication between CPU and FPGA. Returns 0 if succeeded, otherwise the number of errors. +
+
+ +

+ +

+Advanced commands +

+ +

+ +

+Calibration +

+This operations should be performed only rarely to configure the detector + +

+

+
encallog
+
returns whether the logging for energy calibration is enabled. + +
+
angcallog
+
returns whether the logging for angular calibration is enabled. +
+
+ +

+ +

+Acquisition commands +

+ +

+It is normally recommended to use sls\_detector\_acquire [j-], which takes care of everything +

+
acquire
+
Same as sls\_detector\_acquire +
+
data
+
Gets, saves and processes all data stored on the detector, if any. +
+
frame
+
Gets, saves and processes one frame stored on the detector, if any in a Firt-In/First-Out mode. +
+
status
+
Returns the detector status - can be: running, error, transmitting, finished, waiting or idle +
+
online
+
Returns whether the detector is in online or offline mode. +
+
checkonline
+
Returns whether the detector is in online or offline mode. +
+
readctr i fname
+
GOTTHARD related - reads counter in detector to file fname, restarts acquisition if i=1 +
+
exptimel
+
Returns the exposure time left for the current frame. +
+
periodl
+
Returns the period left for the current frame. +
+
delayl
+
Returns the delay after trigger left for the current frame. +
+
gatesl
+
Returns the number of gates left for the current frame. +
+
framesl
+
Returns the number of frames left for the current cycle. +
+
cyclesl
+
Returns the number of cycles left for the current acquisition. +
+
now
+
Returns the current timestamp of the detector clock. +
+
timestamp
+
Returns the timestamp of the acquisitions in a First-In/First-Out mode i.e. every time it is called it returns the timestamp of the first acquisition start of readout. The FIFO is reset everytime the acquisition is started. +
+
+ +

+ +

+Configuration +

+Advanced commands to configure the detector system. Should be left to the configuration file +
+
type
+
Returns the types of detector controllers in the system. +
+
hostname
+
Returns the hostnames or IP addresses for the detector +
+
d:extsig:i
+
Returns the usage of the external IO signal i of the controller d. +
+
master
+
Returns the master of the acquisition in a multicontroller detector. -1 is none. +
+
sync
+
Returns the synchronization mode of the various controller within a detector structure. +
+
trimdir
+
Same ad settingsdir. +
+
settingsdir
+
Returns the path of the directory where the trim/settings files are stored. +
+
caldir
+
Returns the path of the directory where the calibration files are stored. +
+
trimen n e1 e2 ...en
+
Unused. Returns the list of energies for which trimfiles exist. +
+
port
+
Returns the port used by the sockets to control the detector. +
+
stopport
+
Returns the port used by the sockets to stop/get the status of the detector. +
+
id[:i]
+
returns the id of the detector structure. i is the detector position in a multi detector system +
+
free
+
Avoid using it. Frees the shared memory. +
+
+Settable communication parameters: +
+
txndelay_left
+
EIGER advanced: Set transmission delay of sending the left port frame +
+
txndelay_right
+
EIGER advanced: Set transmission delay of sending the right port frame + +
+
txndelay_frame
+
EIGER advanced: Set transmission delay of sending the entire frame In addition to left and right. This value has to be greater than the maximum of the transmission delays of each port. +
+
+ +

+ +

+Receiver - GOTTHARD only +

+
+
detectormac
+
returns the mac of the detector udp interface to mac (if configurable). Should be left to the configuration file. +
+
rx_tcpport
+
returns the communication port between client and receiver. Should be left to the configuration file. +
+
rx_udpport
+
returns the communication port between detector and receiver. Should be left to the configuration file. +
+
rx_hostname
+
returns the hostname (or IP address) of the receiver for the TCP/IP interface with the client. +
+
rx_udpip
+
returns the IP address of the receiver for the UDP interface with the detector. + +

+

+
r_online b
+
Returns whether the receiver in online (1) or offline (0) mode. +
+
r_checkonline
+
Returns whether the receiver in online (1) or offline (0) mode. +
+
framescaught
+
Returns the number of frames received. +
+
resetframescaught n
+
Sets the number of frames received to 1 +
+
frameindex
+
Returns the index of the last frame received. +
+
r_lock
+
Returns whether the receiver is locked (1) or unlocked (0). +
+
r_lastclient
+
Returns the IP of the last client which connected to the receiver. +
+
+ +

+ +

+Postprocessing +

+Some advanced commands to configure data postprocessing. +
+
ffdir
+
Returns the directory where the flat field files are stored. +
+
darkimage fname
+
GOTTHARD- ADVANCED- Returns the dark image file for the detector. +
+
gainimage fname
+
GOTTHARD- ADVANCED- Returns gain image file for the detector. +
+
badchannels fname
+
Returns bad channel file to fname. +
+
threaded b
+
Returns whether the data are written to disk in parallel with the acquisition (1) or after the acquisition (0). +
+
+ +

+Angular conversion + +

+

+
globaloff
+
Returns the offset of the beamline i.e. angular position of channel 0 when angular encoder at 0. +
+
angconv
+
Returns the file used for the coefficients for angular conversion. +
+
binsize
+
Returns the size of the angular bins for angular conversion. +
+
angdir
+
Returns the angular direction of the detector (1 means channel number in the same direction as the angular encoder, -1 different direction). +
+
d:moveflag
+
Related to a single controller d. Returns 1 if the detector modules move with the angular encoder, 0 if they are static (useful for multidetector systems). +
+
+ +

+ +

+Detector settings +

+Advanced settings changing the analog or digital performance of the acquisition. Use them only if you are sure of what you are doing! + +

+

+
vthreshold
+
Returns the DAC value of the detector threshold to n. +
+
vcalibration
+
Returns the DAC value of the calibration pulse amplitude to n. +
+
vtrimbit
+
Returns the DAC value defining the trimbits LSB size to n. +
+
vpreamp
+
Returns the DAC value of the preamp feedback to n. +
+
vshaper1
+
Returns the DAC value of the shaper1 feedback to n. +
+
vshaper2
+
Returns the DAC value of the shaper2 feedback to n. +
+
vhighvoltage
+
Returns the DAC value of the high voltage to n. +
+
vapower
+
CHIPTEST BOARD ONLY - Returns the DAC value of the analog voltage to n. +
+
vddpower
+
CHIPTEST BOARD ONLY - Returns the DAC value of the analog voltage to n. +
+
vshpower
+
CHIPTEST BOARD ONLY - Returns the comparator power supply in dac units (0-1024). +
+
viopower
+
CHIPTEST BOARD ONLY - Returns the FPGA I/O power supply in dac units (0-1024). +
+
vref_ds
+
Returns vrefds +
+
vcascn_pb
+
Returns vcascn_pb +
+
vcascp_pb
+
Returns vcascp_pb +
+
vout_cm
+
Returns vout_cm +
+
vcasc_out
+
Returns vcasc_out +
+
vin_cm
+
Returns vin_cm +
+
vref_comp
+
Returns vref_comp +
+
ib_test_c
+
Returns ib_test_c +
+
vsvp
+
Returns vsvp +
+
vsvn
+
Returns vsvn +
+
vtr
+
Returns vtr trim strength (EIGER) +
+
vrf
+
Returns vrf preamp gain (EIGER) +
+
vrs
+
Returns vrs shaper gain (EIGER) +
+
vtgstv
+
Returns vtgstv (EIGER) +
+
vcmp_ll
+
Returns vcmp_ll (EIGER) leftmost chip theshold +
+
vcmp_lr
+
Returns vcmp_lr (EIGER) second to leftmost chip theshold +
+
vcmp_rl
+
Returns vcmp_rl (EIGER) second to rightmost chip theshold +
+
vcmp_rr
+
Returns vcmp_rr (EIGER) rightmost chip theshold +
+
vcall
+
Returns vcall calibration stength (EIGER) +
+
rxb_rb
+
Returns rxb_rb rightmost chip value to decode 0-1 in the readout +
+
rxb_lb
+
Returns rxb_lb leftmost chip value to decode 0-1 in the readout +
+
vcp
+
Returns vcp cascode p value (EIGER) +
+
vcn
+
Returns vcn cascode n value (EIGER) +
+
vis
+
Returns vis shaper current (EIGER) +
+
iodelay
+
Returns iodelay +
+
temp_adc
+
Returns the temperature of the ADCs +
+
temp_fpga
+
Returns the temperature of the FPGA. +
+
temp_fpgaext
+
Returns the temperature close to the fpga (EIGER). +
+
temp_10ge
+
Returns the temperature close to the 10GE (EIGER). +
+
temp_dcdc
+
Returns the temperature close to the dc dc converter (EIGER). +
+
temp_sodl
+
Returns the temperature close to the left so-dimm memory (EIGER). +
+
temp_sodr
+
Returns the temperature close to the right so-dimm memory (EIGER). +
+
temp_fpgafl
+
Returns the temperature of the left front end board fpga (EIGER). +
+
temp_fpgafr
+
Returns the temperature of the right front end board fpga (EIGER). + +

+

+
reg a
+
Write to register of address a the data d +
+
clkdivider
+
Returns the clock divider for the readout. +
+
setlength
+
Returns the length of the set/reset signals in the acquisition. +
+
waitstates
+
Returns the wait states for CPU/FPGA communication. +
+
totdivider
+
Returns the tot clock divider. +
+
totdutycycle
+
Returns the tot duty cycle. +
+
setup
+
Dumps all settings to file (config, parameters, trimbits etc.). +
+
trimbits fn
+
Dumps the trimbits to the file files fn.snxxx +
+
+ +

+


+ + +next + +up + +previous +
+ Next: Usage + Up: SLS Detector text clients + Previous: Detector setup + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorClientHowTo/node5.html b/manual/docs/html/slsDetectorClientHowTo/node5.html new file mode 100644 index 000000000..b4838d90e --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/node5.html @@ -0,0 +1,166 @@ + + + + + +Usage + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: About this document ... + Up: SLS Detector text clients + Previous: Retrieving detector parameters +
+
+ + +Subsections + + + +
+ +

+Usage +

+ +

+ +

+Mandatory setup +

+First, your detector should always be configured for each PC that you might want to use for controlling the detector. +To do that: +
+sls_detector_put config mydetector.config
+
+Refer to sample configuration files to produce the appropriate one for your detector. + +

+One can configure all the detector settings in a parameter file setup.det, which is loaded by doing: +

+sls_detector_put parameters setup.det
+
+ +

+In the case of EIGER, the parameter file (setup.det needs to setup the proper bias voltage of the sensor, i.e. needs to contain the line vhighvoltage 150. + +

+ +

+Standard acquisition +

+ +

+You will then need to setup the detector threshold and settings, the exposure time, the number of real time frames and eventually how many real time frames should be acquired: +

+sls_detector_put settings standard
+sls_detector_put threshold 6000
+sls_detector_put exptime 1.
+sls_detector_put frames 10
+
+In this case 10 consecutive 1s frames will be acquired. + +

+You need to setup where the files will be written to +

+sls_detector_put outdir /scratch
+sls_detector_put fname run
+sls_detector_put index 0
+
+this way your files will all be named /scratch/run_fj_i.dat where j goes between 0 and 9 and is relative to the frame number, i starts from 0 and is automatically incremented. The next acquisition it will be 1. + +

+To acquire simply type +

+sls_detector_acquire
+
+ +

+You can poll the detector status using +

+sls_detector_get status
+
+ +

+ +

+Data processing +

+Flat field and rate corrections can be applied directly by simply selecting: +
+sls_detector_put flatield myflatfield.raw
+sls_detector_put ratecorr -1
+
+ +

+


+ + +next + +up + +previous +
+ Next: About this document ... + Up: SLS Detector text clients + Previous: Retrieving detector parameters + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorClientHowTo/node6.html b/manual/docs/html/slsDetectorClientHowTo/node6.html new file mode 100644 index 000000000..7b452c707 --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/node6.html @@ -0,0 +1,71 @@ + + + + + +About this document ... + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Up: SLS Detector text clients + Previous: Usage +
+
+ + +

+About this document ... +

+ SLS Detector text clients manual

+This document was generated using the +LaTeX2HTML translator Version 2008 (1.71) +

+Copyright © 1993, 1994, 1995, 1996, +Nikos Drakos, +Computer Based Learning Unit, University of Leeds. +
+Copyright © 1997, 1998, 1999, +Ross Moore, +Mathematics Department, Macquarie University, Sydney. +

+The command line arguments were:
+ latex2html -split 4 slsDetectorClientHowTo.tex +

+The translation was initiated by Thattil Dhanya on 2017-08-22 +


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.css b/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.css new file mode 100644 index 000000000..d1824aff4 --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.css @@ -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 */ diff --git a/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.html b/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.html new file mode 100644 index 000000000..3b03aa6cd --- /dev/null +++ b/manual/docs/html/slsDetectorClientHowTo/slsDetectorClientHowTo.html @@ -0,0 +1,154 @@ + + + + + +SLS Detector text clients manual + + + + + + + + + + + + + + + + +next +up +previous +
+ Next: Introduction +
+
+ + +

+ +

SLS Detector text clients manual

+
+ +

August 22, 2017

+
+ +

+


+ + + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/WARNINGS b/manual/docs/html/slsDetectorGuiHowTo/WARNINGS new file mode 100644 index 000000000..a6999a3cf --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/WARNINGS @@ -0,0 +1,3 @@ +No implementation found for style `graphicx' + +There is no author for this document. diff --git a/manual/docs/html/slsDetectorGuiHowTo/index.html b/manual/docs/html/slsDetectorGuiHowTo/index.html new file mode 100644 index 000000000..b8aec0a26 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/index.html @@ -0,0 +1,119 @@ + + + + + +Mythen v3.0 manual + + + + + + + + + + + + + + + + +next +up +previous +
+ Next: Installation and upgrades +
+
+ + +

+ +

Mythen v3.0 manual

+
+ +

August 22, 2017

+
+ +

+


+ + + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/internals.pl b/manual/docs/html/slsDetectorGuiHowTo/internals.pl new file mode 100644 index 000000000..5007897ff --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/internals.pl @@ -0,0 +1,14 @@ +# LaTeX2HTML 2008 (1.71) +# Associate internals original text with physical files. + + +$key = q/sec:trimdir/; +$ref_files{$key} = "$dir".q|node7.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:encal/; +$ref_files{$key} = "$dir".q|node16.html|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/manual/docs/html/slsDetectorGuiHowTo/labels.pl b/manual/docs/html/slsDetectorGuiHowTo/labels.pl new file mode 100644 index 000000000..02a07de78 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/labels.pl @@ -0,0 +1,25 @@ +# LaTeX2HTML 2008 (1.71) +# Associate labels original text with physical files. + + +$key = q/sec:trimdir/; +$external_labels{$key} = "$URL/" . q|node7.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:encal/; +$external_labels{$key} = "$URL/" . q|node16.html|; +$noresave{$key} = "$nosave"; + +1; + + +# LaTeX2HTML 2008 (1.71) +# labels from external_latex_labels array. + + +$key = q/sec:trimdir/; +$external_latex_labels{$key} = q|1.6|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node1.html b/manual/docs/html/slsDetectorGuiHowTo/node1.html new file mode 100644 index 000000000..ae03e32dc --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node1.html @@ -0,0 +1,88 @@ + + + + + +Installation and upgrades + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: The software package + Up: Mythen v3.0 manual + Previous: Mythen v3.0 manual +
+
+ + +

+Installation and upgrades +

+ +

+The new MYTHEN software is intended to control the MCS mythen boards either by using a command line interface (text client) or by using with a graphical user interface (GUI). + +

+Here you can find in brief the main things you need to know in order to start working with your detector. + +

+


+ +Subsections + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node10.html b/manual/docs/html/slsDetectorGuiHowTo/node10.html new file mode 100644 index 000000000..cf04a83d7 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node10.html @@ -0,0 +1,67 @@ + + + + + +Acquisition + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Detector setup + Up: slsDetectorClient + Previous: Introduction +
+
+ + +

+Acquisition +

+mythen_acquire [id[-/:]] + +

+the detector is started and the data are acquired, postprocessed and written to file according to the configuration + +

+


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node11.html b/manual/docs/html/slsDetectorGuiHowTo/node11.html new file mode 100644 index 000000000..e55dfb989 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node11.html @@ -0,0 +1,269 @@ + + + + + +Detector setup + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Retrieving detector parameters (plus + Up: slsDetectorClient + Previous: Acquisition +
+
+ + +

+Detector setup +

+ +

+mythen_put [id[:/-]]var arg + +

+is used to configure the detector parameter var + e.g. mythen_put 0:exptime 1 sets the exposure time to 1 s + +

+

+
help i
+
get help +
+
config fname
+
reads the configuration file specified and sets the values +
+
parameters fname
+
sets the detector parameters specified in the file +
+
setup rootname
+
reads the files specfied (and that could be created by get setup) and resets the complete detector configuration including flatfield corrections, badchannels, trimbits etc. +
+
hostname name
+
this is mandatory!!!! sets hostname (or IP adress) +
+
online b
+
b can be 0 or 1 and sets the detector in offline/online state. Must be used to restore communication if some socket called failed because the detector was not connected. +
+
status s
+
either start or stop +
+
caldir path
+
Sets path of the calibration files +
+
trimdir path
+
Sets path of the trim files +
+
outdir path
+
directory to which the files will be written by default +
+
fname name
+
filename to which the files will be written by default (to which file and position indexes will eventually be attached) +
+
index i
+
start index of the files (automatically incremented by the acquisition functions) +
+
nmod n
+
Sets number of detector modules +
+
extsig:i mode
+
Sets usage of the external digital signal i. mode can be: off, gate_in_active_high, gate_in_active_low, trigger_in_rising_edge, trigger_in_falling_edge, ro_trigger_in_rising_edge, ro_trigger_in_falling_edge, gate_out_active_high, gate_out_active_low, trigger_out_rising_edge, trigger_out_falling_edge, ro_trigger_out_rising_edge, ro_trigger_out_falling_edge +
+
timing
+
Sets the timing mode of the detector. Can be auto, gating (works only if at least one of the signals is configured as gate_in), trigger (works only if at least one of the signals is configured as trigger_in), ro_trigger (works only if at least one of the signals is configured as ro_trigger_in), triggered_gating (works only if one ofthe signals is configured as gate_in and one as trigger_in). +
+
settings sett
+
Sets detector settings. Can be: standard fast highgain (depending on trheshold energy and maximum count rate: please refere to manual for limit values!); +
+
threshold ev
+
Sets detector threshold in eV. Should be half of the beam energy. It is precise only if the detector is calibrated +
+
vthreshold dac
+
Sets detector threshold in DAC units. A very rough calibration is dac=800-10*keV +
+
exptime t
+
Sets the exposure time per frame (in s) +
+
period t
+
Sets the frames period (in s) +
+
delay t
+
Sets the delay after trigger (in s) +
+
gates n
+
Sets the number of gates per frame +
+
frames n
+
Sets the number of frames per cycle (e.g. after each trigger) +
+
cycles n
+
Sets the number of cycles (e.g. number of triggers) +
+
probes n
+
Sets the number of probes to accumulate (max 3) +
+
dr n
+
Sets the dynamic range - can be (1,) 4, 8,16 or 24 bits +
+
flags mode
+
Sets the readout flags - can be none or storeinram +
+
flatfield fname
+
Sets the flatfield file name - none disable flat field corrections +
+
ratecorr t
+
Sets the rate corrections with dead time t ns (0 unsets, -1 uses default dead time for chosen settings +
+
badchannels fname
+
Sets the badchannels file name - none disable bad channels corrections +
+
angconv fname
+
Sets the angular conversion file name +
+
globaloff o
+
sets the fixed angular offset of your encoder - should be almost constant! +
+
fineoff o
+
sets a possible angular offset of your setup - should be small but can be senseful to modify +
+
binsize s
+
sets the binning size of the angular conversion (otherwise defaults from the angualr conversion constants) +
+
angdir i
+
sets the angular direction of the detector (i can be 1 or -1 - by default 1, channel 0 is smaller angle) +
+
positions np (pos0 pos1...posnp)
+
Sets the number of positions at which the detector is moved during the acquisition and their values +
+
startscript script
+
sets a script to be executed at the beginning of the measurements (e.g. open shutter). none unsets. Parameters will be parsed as script nrun=i par=spar where i is the run number and spar is the value of startscriptpar. +
+
stopscript script
+
sets a script to be executed at the end of the measurement (e.g. close shutter). none unsets. Parameters will be parsed as script nrun=i par=spar where i is the run number and spar is the value of stopscriptpar. +
+
startscriptpar spar
+
sets a parameter passed to the start script as string with the syntax par=spar. Its meaning must be interpreted inside the script! +
+
stopscriptpar spar
+
sets a parameter passed to the start script as string with the syntax par=spar. Its meaning must be interpreted inside the script! +
+
scan0script script
+
Sets a scan script to be executed at higher level. Script can be none (unset), threshold (change threshold DAC values for all modules), energy (change energy threshold DAC values using calibration for each module), trimbits (change trimbits for all channels) or any script (e.g changing temperature or moving sample) which will be called with the syntax script nrun=i fn=fname var=val par=spar where i is the file index, fname is the file name val is the current value of the scan variable and spar is the value of the scan parameter +
+
scan1script script
+
Sets a scan script to be executed at lower level. Script can be none (unset), threshold (change threshold DAC values for all modules), energy (change energy threshold DAC values using calibration for each module), trimbits (change trimbits for all channels) or any script (e.g changing temperature or moving sample) which will be called with the syntax script nrun=i fn=fname var=val par=spar where i is the file index, fname is the file name val is the current value of the scan variable and spar is the value of the scan parameter +
+
scan0par spar
+
sets the scan parameter to be passed to scan0script as a string with syntax par=spar. Its meaning has to be interpreted insode the script! +
+
scan1par spar
+
sets the scan parameter to be passed to scan1script as a string with syntax par=spar. Its meaning has to be interpreted insode the script! +
+
scan0prec i
+
sets the precision of the scan variable in order to properly generate the file names for scan0 +
+
scan1prec i
+
sets the precision of the scan variable in order to properly generate the file names for scan1 +
+
scan0steps n (f0 f1..fn)
+
sets the steps for the scan0script. n is the number of steps and the following values are the step values. +
+
scan1steps n (f0 f1..fn)
+
sets the steps for the scan1script. n is the number of steps and the following values are the step values. +
+
scan0range mi ma st
+
generates the steps for the scan0script in the range mi to ma with step st (is mi smaller than ma specify a negative step) +
+
scan1range mi ma st
+
generates the steps for the scan1script in the range mi to ma with step st (is mi smaller than ma specify a negative step) +
+
scriptbefore script
+
sets the script to be executed before each acquisition (before all positions) with the syntax script nrun=i fn=fname par=spar sv0=svar0 sv1=svar1 p0=spar0 p1=spar1 where i is the file index, fname is the file name, sva0, svar1 are the current values of the scan variables 0 and 1, spar0, spar1 are tthe scan parameter 0 and 1. none unsets. +
+
scriptafter script
+
sets the script to be executed after each acquisition (after all positions) with the syntax script nrun=i fn=fname par=spar sv0=svar0 sv1=svar1 p0=spar0 p1=spar1 where i is the file index, fname is the file name, sva0, svar1 are the current values of the scan variables 0 and 1, spar0, spar1 are tthe scan parameter 0 and 1. none unsets. +
+
scriptbeforepar spar
+
sets the parameter to be passed to the script before witht he syntax par=spar +
+
scriptafterpar spar
+
sets the parameter to be passed to the script after witht he syntax par=spar +
+
headerbefore script
+
sets the script to be executed before each acquisition (after moving the detector) with the syntax script nrun=i fn=fname par=spar where i is the run number, fname is the file name, spar is the header before parameter. The script is normally used to save a file header. none unsets. +
+
headerafter script
+
sets the script to be executed after each acquisition (after each position) with the syntax script nrun=i fn=fname par=spar where i is the run number, fname is the file name, spar is the header after parameter. The script is normally used to complete the file header. none unsets. +
+
headerbeforepar spar
+
sets the parameter to be passed to the header before script with the syntax par=spar +
+
headerafterpar spar
+
sets the parameter to be passed to the header after script with the syntax par=spar +
+
+ +

+


+ + +next + +up + +previous +
+ Next: Retrieving detector parameters (plus + Up: slsDetectorClient + Previous: Acquisition + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node12.html b/manual/docs/html/slsDetectorGuiHowTo/node12.html new file mode 100644 index 000000000..4f7e9f12c --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node12.html @@ -0,0 +1,300 @@ + + + + + +Retrieving detector parameters (plus trimming and test modalities) + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Tips + Up: slsDetectorClient + Previous: Detector setup +
+
+ + +

+Retrieving detector parameters (plus trimming and test modalities) +

+mythen_get [id[:/-]]var arg + +

+is used to retrieve the detector parameter var + e.g. mythen_get 0:exptime returns the exposure time in seconds + +

+

+
help
+
This help +
+
config fname
+
writes the configuration file +
+
parameters fname
+
writes the main detector parameters for the measuremen tin the file +
+
setup rootname
+
writes the complete detector setup (including configuration, trimbits, flat field coefficients, badchannels etc.) is a set of files for which the extension is automatically generated +
+
online
+
return whether the detector is in online (1) or offline (0) state. +
+
status
+
gets the detector status - can be: running, error, transmitting, finished, waiting or idle +
+
data
+
gets all data from the detector (if any) processes them and writes them to file according to the preferences already setup +
+
frame
+
gets a single frame from the detector (if any) processes it and writes it to file according to the preferences already setup +
+
hostname
+
Gets the detector hostname (or IP address) +
+
caldir
+
Gets path of the calibration files +
+
trimdir
+
Gets path of the trim files +
+
outdir
+
directory to which the files will be written by default +
+
fname
+
filename to which the files will be written by default (to which file and position indexes will eventually be attached) +
+
index
+
start index of the files (automatically incremented by the acquisition functions) +
+
nmod
+
Gets number of detector modules +
+
maxmod
+
Gets maximum number of detector modules +
+
extsig:i
+
Gets usage of the external digital signal i. The return value can be: off, gate_in_active_high, gate_in_active_low, trigger_in_rising_edge, trigger_in_falling_edge, ro_trigger_in_rising_edge, ro_trigger_in_falling_edge, gate_out_active_high, gate_out_active_low, trigger_out_rising_edge, trigger_out_falling_edge, ro_trigger_out_rising_edge, ro_trigger_out_falling_edge +
+
timing
+
Sets the timing mode of the detector. Can be auto, gating (works only if at least one of the signals is configured as gate_in), trigger (works only if at least one of the signals is configured as trigger_in), ro_trigger (works only if at least one of the signals is configured as ro_trigger_in), triggered_gating (works only if one ofthe signals is configured as gate_in and one as trigger_in). +
+
modulenumber
+
Gets the module serial number +
+
moduleversion
+
Gets the module version +
+
detectornumber
+
Gets the detector number (MAC address) +
+
detectorversion
+
Gets the detector firmware version +
+
softwareversion
+
Gets the detector software version +
+
digitest:i
+
Makes a digital test of the detector module i. Returns 0 if it succeeds +
+
bustest
+
Makes a test of the detector bus. Returns 0 if it succeeds +
+
settings
+
Gets detector settings. Can be: standard fast highgain undefined +
+
threshold
+
Gets detector threshold in eV. It is precise only if the detector is calibrated +
+
vthreshold
+
Gets detector threshold in DAC units. A very rough calibration is dac=800-10*keV +
+
exptime
+
Gets the exposure time per frame (in s) +
+
period
+
Gets the frames period (in s) +
+
delay
+
Gets the delay after trigger (in s) +
+
gates
+
Gets the number of gates per frame +
+
frames
+
Gets the number of frames per cycle (e.g. after each trigger) +
+
cycles
+
Gets the number of cycles (e.g. number of triggers) +
+
probes
+
Gets the number of probes to accumulate (max 3) +
+
timestamp
+
Gets the internal time stamp of the nex frame acquired (i.e. during an acquisition, all timestamps of the frames are stored in a FIFO which can be read after the acquisition - returns -1 if the FIFO is empty) +
+
dr
+
Gets the dynamic range +
+
trim:mode fname
+
Trims the detector and writes the trimfile fname.snxxx. mode can be: noise beam improve fix offline - Check that the start conditions are OK!!! +
+
flatfield
+
fname returns whether the flat field corrections are enabled and if so writes the coefficients to the specified filename. If fname is none it is not written +
+
ratecorr
+
returns wether the rate corrections are enabled and what is the dead time used in ns +
+
badchannels fname
+
returns wether the bad channels corrections are enabled and if so writes the bad channels to the specified filename. If fname is none it is not written +
+
angconv fname
+
returns wether the angular conversion is enabled and if so writes the angular conversion coefficients to the specified filename. If fname is none, it is not written +
+
globaloff
+
returns the fixed angular offset of your encoder - should be almost constant! +
+
fineoff
+
returns a possible angualr offset of your setup - should be small but can be senseful to modify +
+
binsize
+
returns the binning size of the angular conversion +
+
angdir
+
gets the angular direction of the detector (can be 1 or -1 - by default 1, channel 0 is smaller angle) +
+
positions
+
returns the number of positions at which the detector is moved during the acquisition and their values +
+
startscript script
+
sets a script to be executed at the beginning of the measurements (e.g. open shutter). none unsets. Parameters will be parsed as script nrun=i par=spar where i is the run number and spar is the value of startscriptpar. +
+
stopscript
+
returns the script to be executed at the end of the measurement (e.g. close shutter). none unsets. Parameters will be parsed as script nrun=i par=spar where i is the run number and spar is the value of stopscriptpar. +
+
startscriptpar
+
returns the parameter passed to the start script as string with the syntax par=spar. Its meaning must be interpreted inside the script! +
+
stopscriptpar
+
returns the parameter passed to the start script as string with the syntax par=spar. Its meaning must be interpreted inside the script! +
+
scan0script
+
returns the scan script to be executed at higher level. Script can be none (unset), threshold (change threshold DAC values for all modules), energy (change energy threshold DAC values using calibration for each module), trimbits (change trimbits for all channels) or any script (e.g changing temperature or moving sample) which will be called with the syntax script nrun=i fn=fname var=val par=spar where i is the file index, fname is the file name val is the current value of the scan variable and spar is the value of the scan parameter +
+
scan1script
+
returns the scan script to be executed at lower level. Script can be none (unset), threshold (change threshold DAC values for all modules), energy (change energy threshold DAC values using calibration for each module), trimbits (change trimbits for all channels) or any script (e.g changing temperature or moving sample) which will be called with the syntax script nrun=i fn=fname var=val par=spar where i is the file index, fname is the file name val is the current value of the scan variable and spar is the value of the scan parameter +
+
scan0par
+
returns the scan parameter to be passed to scan0script as a string with syntax par=spar. Its meaning has to be interpreted insode the script! +
+
scan1par
+
returns the scan parameter to be passed to scan1script as a string with syntax par=spar. Its meaning has to be interpreted insode the script! +
+
scan0prec
+
returns the precision of the scan variable in order to properly generate the file names for scan0 +
+
scan1prec
+
returns the precision of the scan variable in order to properly generate the file names for scan1 +
+
scan0steps
+
returns the steps for the scan0script. n is the number of steps and the following values are the step values. +
+
scan1steps
+
returns the steps for the scan1script. n is the number of steps and the following values are the step values. +
+
scan0range
+
returns the steps for the scan0script. n is the number of steps and the following values are the step values. +
+
scan1range
+
returns the steps for the scan1script. n is the number of steps and the following values are the step values. +
+
scriptbefore
+
returns the script to be executed before each acquisition (before all positions) with the syntax script nrun=i fn=fname par=spar sv0=svar0 sv1=svar1 p0=spar0 p1=spar1 where i is the file index, fname is the file name, sva0, svar1 are the current values of the scan variables 0 and 1, spar0, spar1 are tthe scan parameter 0 and 1. +
+
scriptafter
+
returns the script to be executed after each acquisition (after all positions) with the syntax script nrun=i fn=fname par=spar sv0=svar0 sv1=svar1 p0=spar0 p1=spar1 where i is the file index, fname is the file name, sva0, svar1 are the current values of the scan variables 0 and 1, spar0, spar1 are tthe scan parameter 0 and 1. +
+
scriptbeforepar
+
returns the parameter to be passed to the script before witht he syntax par=spar +
+
scriptafterpar
+
returns the parameter to be passed to the script after witht he syntax par=spar +
+
headerbefore
+
returns the script to be executed before each acquisition (after moving the detector) with the syntax script nrun=i fn=fname par=spar where i is the run number, fname is the file name, spar is the header before parameter. The script is normally used to save a file header. +
+
headerafter
+
returns the script to be executed after each acquisition (after each position) with the syntax script nrun=i fn=fname par=spar where i is the run number, fname is the file name, spar is the header after parameter. The script is normally used to complete the file header. +
+
headerbeforepar
+
returns the parameter to be passed to the header before script with the syntax par=spar +
+
headerafterpar
+
returns the parameter to be passed to the header after script with the syntax par=spar +
+
+ +

+


+ + +next + +up + +previous +
+ Next: Tips + Up: slsDetectorClient + Previous: Detector setup + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node13.html b/manual/docs/html/slsDetectorGuiHowTo/node13.html new file mode 100644 index 000000000..ec6fc568e --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node13.html @@ -0,0 +1,222 @@ + + + + + +Tips + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Acquisition + Up: slsDetectorClient + Previous: Retrieving detector parameters (plus +
+
+ + +Subsections + + + +
+ +

+Tips +

+ +

+ +

+Mandatory setup +

+First of all you should setup the hostname and the detector size and dynamic range: +
+mythen_put hostname mcs1x00
+mythen_get nmod
+mythen_get dr
+
+You should also tell the program where to find the default trimbits files and calibration files: +
+mythen_put trimdir /scratch/trimbits
+mythen_get caldir /scratch/calibration
+
+To chose the detector settings (e.g. standard): +
+mythen_put settings standard
+
+In case mythen_get settings does not answer correctly, it most probably means that there is a problem in the architecture or setting of trimdir and caldir (see section 1.6). + +

+ +

+Acquisition setup +

+You need to setup where the files will be written to +
+mythen_put outdir /scratch
+mythen_put fname run
+mythen_put index 0
+
+this way your files will al be named /scracth/run_i.dat where is starts from 0 and is automatically incremented. + +

+You will then need to setup the detector threshold and settings, the exposure time, the number of real time frames and eventually how many real time frames should be acquired: +

+mythen_put settings standard
+mythen_put threshold 6000
+mythen_put exptime 1.
+mythen_put frames 10
+
+In this case 10 consecutive 1s frames will be acquired. +External gating and triggering or more advanced acquisition modes are not explained here. + +

+ +

+Acquiring +

+There are two ways of acquiring data. +
+The first is fully automatic and freezes the terminal until the acquisition is finished: +
+mythen_acquire 0
+
+This is particulary indicated for fast real time acquisitions. + +

+If you want to acquire few long frames you can run: +

+mythen_put status start
+
+and the poll the detector status using +
+mythen_get status
+
+if the answer is either transmitting or finished, the data are ready to be downloaded from the detector. +This can be done using either: +
+mythen_get frame
+
+where a single data frame is downloaded or +
+mythen_get data
+
+where all data present on the detector are downloaded. +This is not indicated when many short real time frames should be acquired since the detector memory would be full before finishing the acquisition since the download time is so limited. + +

+ +

+Data processing +

+Flat field and rate corrections can be applied direcly by simply selecting: +
+mythen_put flatield myflatfield.raw
+mythen_put ratecorr -1
+
+ +

+Concerning the angular conversion, it is very reccomended that the users edit the file usersFunctions.cpp contained in the folder slsDetectorSoftware/usersFunctions. +In the file it is possible to modify the function used for calculating the angular conversion and the ones used for interfacing with the diffractometer equipment i.e. reading the encoder fo the detector position, the ionization chanmbers etc. + +

+It is also possible to configure some scans/scripts to be executed during the acquisition. They will be normally called as system calls except for threshold, energy and trimbits scans. + +

+Possible arguments are: +

+
help
+
This help +
+
-f myconf.txt
+
loads the configuration file to myconf.txt +
+
-id i
+
Sets the detector to id i (the default is i). Useful when more than one detector are operated in parallel. +
+
-offline
+
works in offline mode i.e. not connecting to the detector. Usefule e.g. to perform the energy calibration of the detector and possibly in the future to reprocess and visualize the data (not yet implemented). +
+
-size n
+
sets the size of the text to n (the default is n=10); +
+
-scale s
+
scales the size of the text and the root canvas by the scaling factor s (the default is s=1). It is useful when executing the program on a PC with low screen resolution (e.g. a laptop) and the window would then fall out of the screen."); +
+
+The configuration of the detector can either be set when startin the GUI using the configuration file or using the text client or even using the configuration tab of the GUI. + +

+


+ + +next + +up + +previous +
+ Next: Acquisition + Up: slsDetectorClient + Previous: Retrieving detector parameters (plus + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node14.html b/manual/docs/html/slsDetectorGuiHowTo/node14.html new file mode 100644 index 000000000..c670a7a84 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node14.html @@ -0,0 +1,70 @@ + + + + + +Acquisition + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Other functions + Up: slsDetectorClient + Previous: Tips +
+
+ + +

+Acquisition +

+By pressing the start button in the measurement tab the data will be acquired, saved, corrected and plotted as specified. + +

+The stop button stops the acquisition i.e. if there are data left to be saved processed etc. the program will not really stop until the offline processes are done. + +

+Please don't be too nervous clicking on start and/or stop since this is one of the main causes of crashes (the program has been teste only for quiet users :-)). + +

+


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node15.html b/manual/docs/html/slsDetectorGuiHowTo/node15.html new file mode 100644 index 000000000..c51916421 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node15.html @@ -0,0 +1,187 @@ + + + + + +Other functions + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Energy calibration + Up: slsDetectorClient + Previous: Acquisition +
+
+ + +Subsections + + + +
+ +

+Other functions +

+The text client and the GUI can be operated in parallel (althoug you should not change parameters or acquire data at the same data from the gui and the text client!) and the values displayed by the GUI should normally be the actual ones. +However this kind of parallel operation is at your own risk! + +

+The main parameters are group in tabs according to their meaning. To enable some tabs you should enter the modes menu and select Advanced/configuration/Debug +Here is the general subject of the tabs: +

+
Measurement
+
Main acquisition parameters that you may want to change often +
+
Data Output
+
Where to write the data, in which format and what to to with them +
+
Plot
+
What to plot and how (only partially implemented) +
+
Actions
+
Allows to configure scans and/or execute scripts at teh beginning or at the end of the measurement. +
+
Time resolved
+
Parameters for time resolved (real time) measurements +
+
Advanced
+
Must be activated with the modes menu button. Allows to set some advanced configuration which you don't want general users to change (e.g. data size, external signals, advanced acquisition speed) +
+
Trimming
+
Must be activated with the modes menu button. Allows to trim the detector and/or load specific trim files. +
+
Configuration
+
Must be activated with the modes menu button. Allows to configure the detector +
+
Debugging
+
Must be activated with the modes menu button. Allows to test the detectors functionality, acquire serial numbers etc. +
+
+Most of the parameters are explained through a tooltip which appers if you leave the mouse on the widget for a few seconds. + +

+The configuration and/or the complete setup of the detector can be loaded and saved using the Utilities menu. + +

+ +

+Mandatory configuration +

+Where to find some important parameters (should be set only once, then it should remain in memory): +
+
Hostname
+
Configuration tab. Press enter to update. +
+
Trim dir
+
Configuration tab. Press enter to update. +
+
Cal dir
+
Configuration tab. Press enter to update. +
+
Number of modules
+
Configuration tab or Advanced tab +
+
Dynamic range
+
Advanced tab +
+
Output directory
+
Data Output tab. +
+
File name
+
Measurement tab. +
+
File index
+
Measurement tab (automatically incremented). +
+
+ +

+ +

+Acquisition setup +

+Where to find some important parameters (should be set only once, then it should remain in memory): +
+
Settings
+
Measurement tab +
+
Threshold
+
Measurement tab +
+
Exposure time
+
Measurement tab +
+
Number of frames
+
Measurement tab for non time-resolved measurement, Time resolved tab for fast real time measurements. if you need some action between frame see Actions tab. +
+
+ +

+


+ + +next + +up + +previous +
+ Next: Energy calibration + Up: slsDetectorClient + Previous: Acquisition + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node16.html b/manual/docs/html/slsDetectorGuiHowTo/node16.html new file mode 100644 index 000000000..e809d46ef --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node16.html @@ -0,0 +1,121 @@ + + + + + +Energy calibration + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: About this document ... + Up: Mythen v3.0 manual + Previous: Other functions +
+
+ + +

+
+Energy calibration +

+The energy calibration should be performed by illuminating the detector with monochromatic radiation at at least 2 (better 3-4) energies larger than 8 keV. The energy calibration should be performed after trimming and the trim files used should be properly copied in the trimbits directory and used as default. + +

+The data can be acquired either with the mythenGUI (by using the calibration wizard or the threshold scan utility in the Action tab) or with the slsDetectorClient (by scanning the threshold using mythen_put 0:vthreshold), but since the analysis needs the use of root, the GUI must be used to finalize the calibration. + +

+In the mythenGUI menu Utilities/Calibration wizard it is possible to simply and automatically perform the energy calibration of the detector: + +

    +
  1. Check the ``Detector online'' box in case you want to acquire the data, otherwise simply unclick it and you will be required to provide already acquired data and the details about the detector. +
    +The first time, chose ``Start new calibration'' and chose the directory where you want to store the data you want to acquire. The calibration file names have a''.root'' extension. +
    +The calibration should be perormed by acquiring always the same settings and with the same number of modules always connected in the same sequence. The clibration files, however, can be used for the modules also on different systems (i.e. different number of modules, readout board, etc.). A new calibration should be performed for different detector settings. +
  2. +
  3. If the detector is online, the settings, the number of modules and their serial number will automatically be retrieved. If you selected the offline mode, you must provide the detector settings for the calibration that you want to perform and the serial numbers of the modules in the correct order (to do so, enter the 3 hexadecimal digits in the right sequence and press enter for each module - in case of error the list is editable). +
  4. +
  5. Enter the energy of your beam (in keV!); +
    +If you are in online mode, the acquisition time should be chosen such that there are at least 1000 counts per channel at an intemediate threshold; the range of the threshold scan should be between approx 800-15*keV and 800, better with a step of 1 but up to 5 can be fine in order to reduce the acquisition time: it is more important that each step has a sufficient statistics than that the threshold step is low! After pressing ``Next'', the detector starts acquiring and showing the histogram of the calibration. When it is finished simply press ``Finish'' to accept the data, ``Cancel'' to reject them. +
    +In offline mode, you are required to enter the range and step of the calibration and to select the files (in the same sequence as the threshold values!). After pressing ``Next'' (enabled only if the number of steps is the same as the number of files), the histogram showing the threshold scan is drawn. Simply press ``Finish'' to accept the data, ``Cancel'' to reject them. +
  6. +
  7. For the following calibration steps, check the ``Detector online'' box in case you want to acquire the data, otherwise simply unclick it and you will be required to provide already acquired data and the details about the detector. +
    +Chose ``Add calibration step'' and select the file created prevously. The settings, number of modules and serial numbers of the modules and the energies at which the acquisition has been already performed should be displayed. +
  8. +
  9. Add a new calibration step like in point 3. and iterate for all the energies at which you want to perform the calibration. +
  10. +
  11. To generate the calibration files, chose ``Generate calibration files'' and select the file created prevously. The settings, number of modules and serial numbers of the modules and the energies at which the acquisition has been already performed should be displayed. +
  12. +
  13. Chose the directory and the root of the calibrations files name. An extension corresponding to the serial number of the modules will be generated. +
  14. +
  15. The calibration files for each module should be generated. For each energy you can set the start parameters of the fit and the fitting range (press enter after each change) so that the fitted curves nicely fit the data. The linear fit between energies and inflection points can also be checked. +
  16. +
+ +

+


+ + +next + +up + +previous +
+ Next: About this document ... + Up: Mythen v3.0 manual + Previous: Other functions + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node17.html b/manual/docs/html/slsDetectorGuiHowTo/node17.html new file mode 100644 index 000000000..fb8c5f77b --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node17.html @@ -0,0 +1,71 @@ + + + + + +About this document ... + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Up: Mythen v3.0 manual + Previous: Energy calibration +
+
+ + +

+About this document ... +

+ Mythen v3.0 manual

+This document was generated using the +LaTeX2HTML translator Version 2008 (1.71) +

+Copyright © 1993, 1994, 1995, 1996, +Nikos Drakos, +Computer Based Learning Unit, University of Leeds. +
+Copyright © 1997, 1998, 1999, +Ross Moore, +Mathematics Department, Macquarie University, Sydney. +

+The command line arguments were:
+ latex2html -split 4 slsDetectorGuiHowTo.tex +

+The translation was initiated by Thattil Dhanya on 2017-08-22 +


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node2.html b/manual/docs/html/slsDetectorGuiHowTo/node2.html new file mode 100644 index 000000000..6f58afa4e --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node2.html @@ -0,0 +1,78 @@ + + + + + +The software package + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Requirements + Up: Installation and upgrades + Previous: Installation and upgrades +
+
+ + +

+The software package +

+ +

+The actual software for the Mythen II system (MCS1 to MCS24) runs on 32 bit Scientific Linux machines (SLC5 tested, gcc 4.1.2 but it should not be critical). + +

+The complete software package is composed of several programs which can be instaleld (or locally compiled) depending on the needs: + +

    +
  • The slsDetector shared and static libraries which are necessary for all user interfaces and can be simply used for implementig custom detector drivers; +
  • +
  • The command line interface (slsDetectorClient) sls_detector_put, sls_detector_get, sls_detector_acquire which is provided to communicate with the detectors; +
  • +
  • A virtual server mythenServer which can be used to simulate the behavior of the detector for what concerns the communication in case the detector is not online or is in use. +
  • +
+ +

+


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node3.html b/manual/docs/html/slsDetectorGuiHowTo/node3.html new file mode 100644 index 000000000..a1b6cf2aa --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node3.html @@ -0,0 +1,66 @@ + + + + + +Requirements + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Compilation + Up: Installation and upgrades + Previous: The software package +
+
+ + +

+Requirements +

+ +

+For installing the slsDetector shared and static libraries and the slsDetectorClient software, any Linux installation with a working gcc should be fine. +
+

+


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node4.html b/manual/docs/html/slsDetectorGuiHowTo/node4.html new file mode 100644 index 000000000..6a3b14780 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node4.html @@ -0,0 +1,80 @@ + + + + + +Compilation + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Building + Up: Installation and upgrades + Previous: Requirements +
+
+ + +

+Compilation +

+If you simply want to install the software in the working directory you can: + +
    +
  • make lib compile slsDetector library +
  • +
  • make slsDetectorClient compile slsDetectorClient package +
  • +
  • make all compile slsDetector libraries, the slsDetectorClient package +
  • +
  • make clean remove object files and executables +
  • +
  • make help lists possible targets +
  • +
+ +

+To be able to run the slsDetectorClient commands, add their location to your path. + +

+


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node5.html b/manual/docs/html/slsDetectorGuiHowTo/node5.html new file mode 100644 index 000000000..56754d880 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node5.html @@ -0,0 +1,102 @@ + + + + + +Building + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Detector upgrade + Up: Installation and upgrades + Previous: Compilation +
+
+ + +

+Building +

+To install the software you should first configure some enviroment variables by executing: +
+> source configure
+
+(NOT >./configure otherwise the enviroment variables will not be available for the make command). +This allows you to configure: + +
    +
  • INSTALLROOT Directory where you want to install the software. Defaults to /usr/local/ +
  • +
  • BINDIR Directory where you want to install the binaries. Defaults to bin/ +
  • +
  • INCDIR Directory where you want to pute the header files. Defaults to include/slsdetector/ +
  • +
  • LIBDIR Directory where you want to install the libraries. Defaults to lib/ +
  • +
  • DOCDIR Directory where you want to copy the documentation. Defaults to share/doc/ +
  • +
+ +

+To build you can: + +

    +
  • make install_lib install detector library and include files" +
  • +
  • make install_client install slsDetectorClient +
  • +
  • make install install library, include files and mythenClient'' +
  • +
  • make install_libdoc install library documentation +
  • +
  • make install_clientdoc install mythenClient documentation +
  • +
  • make install_doc install all documentation +
  • +
  • make help lists possible targets +
  • +
+ +

+


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node6.html b/manual/docs/html/slsDetectorGuiHowTo/node6.html new file mode 100644 index 000000000..8415e29d1 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node6.html @@ -0,0 +1,134 @@ + + + + + +Detector upgrade + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: The trimbits and calibration + Up: Installation and upgrades + Previous: Building +
+
+ + +

+Detector upgrade +

+ +

+The upgrade of the detector consists in both the upgrade of the communication software and of the firmware. +
+

+To upgrade the firmware you need either a working version of the Altera Quartus software or of the Quartus programmer, which can easly be downloade from +
https://www.altera.com/download/programming/quartus2/pq2-index.jsp +
+Normally installation of the software and of the driver for the USB-Blaster (provided together with the MYTHEN detector) are simpler under Windows. +
+Under Windows, the first time that you connect the USB-Blasterto one of your USB ports, you will be asked to install new hardware. Set the path to search +for the driver to: C:\altera\80sp1\qprogrammer\drivers\usb-blasterp (where C:\altera\80sp1\qprogrammer\ is assumed to be ther path where your Quartus version is installed). +
+

    +
  1. After starting the Quartus programmer, click on Hardware Setup and in the "Currently selected hardware" window select USB-Blaster. +
  2. +
  3. In the Mode combo box select "Active Serial Programming". +
  4. +
  5. Plug the end of your USB-Blaster WITH THE ADAPTER PROVIDED in the connector ASMI on the MCS board taking care that pin1 corresponds to the one indexed and with the rectangualr pad. +
  6. +
  7. Click on add file and from select the programming file provided when the upgrade has been reccomended. +
  8. +
  9. Check "Program/Configure" and "Verify". +
  10. +
  11. Push the start button and wait until the programming process is finished (progress bar top left). +
  12. +
  13. In case the programmer gives you error messages, check the polarity of your cable (pin1 corresponds) and that you have selected the correct programming connector. +
  14. +
+ +

+To upgrade the software on the detector board transfer the provided software by ftp to the MCS: +

+ftp  mymcs.mydomain.com
+username: root
+password: pass
+cd /mnt/flash/root
+put mythenDetectorServer
+quit
+
+If the /mnt/flash/root directory does not exist, create it before the transfer by telnetting to the MCS. +
+After pressing reset on the board, the board should reboot. +
+If the program does not correctly start either check by using the http interface that it is started by the inittab (check that the file /mnt/etc/inittab ends with the line myid2:3:once:/mnt/flash/root/mythenDetectorServer ). +
+Otherwise make the program executable by telnetting to the MCS and executing: +chmod a+xrw /mnt/flash/root/mythenDetectorServer +
+After pressing reset on the board, the board should reboot and the acqusition program correctly start. + +

+


+ + +next + +up + +previous +
+ Next: The trimbits and calibration + Up: Installation and upgrades + Previous: Building + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node7.html b/manual/docs/html/slsDetectorGuiHowTo/node7.html new file mode 100644 index 000000000..21a534791 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node7.html @@ -0,0 +1,99 @@ + + + + + +The trimbits and calibration files + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: slsDetectorClient + Up: Installation and upgrades + Previous: Detector upgrade +
+
+ + +

+
+The trimbits and calibration files +

+In order to be able to properly operate your detector you need a directory where the trimbit files (needed to set the detector settings and eventually equalize the individual channel thresholds) which in the following will be named trimdir and a directory where the calibration files (needed to convert the threshold energy in DAC units) are stored which in the following will be named caldir. +trimdir and caldir can even be the same directory, and an example of it is given in the software package by the example directory trimbits. +
+Since these directories are customized by producing trimbit files and calibration for each detector, make sure not to overwrite yours every time you upgrade the software. + +

+trimdir should contain three subdirectories standard, fast and highgain containing respectively the trimfiles standard.trim, fast.trim and highgain.trim which contain the correct voltage settings for the detector although all the individual channel thresholds set to 0. The original files contained in the package should be used, infact in case of error the detector would not recognize the correct settings. +
+The default trimbit files for each file will be stored in the directory according to the settings with the name noise.snxxx where xxx is the module serial number. +
+

+caldir should contain three subdirectories standard, fast and highgain containing respectively the trimfiles standard.cal, fast.cal and highgain.cal which contain an average calibration of the modules for the diffrent settings. However this can different from the correct one for each individual module even of several kev and therefore it is very important to perform an energy calibration on a module basis (see section [*]). +
+The default calibration files for each file will be stored in the directory according to the settings with the name calibration.snxxx where xxx is the module serial number. + +

+


+ + +next + +up + +previous +
+ Next: slsDetectorClient + Up: Installation and upgrades + Previous: Detector upgrade + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node8.html b/manual/docs/html/slsDetectorGuiHowTo/node8.html new file mode 100644 index 000000000..8b10ef895 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node8.html @@ -0,0 +1,100 @@ + + + + + +slsDetectorClient + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Introduction + Up: Mythen v3.0 manual + Previous: The trimbits and calibration +
+
+ + +

+slsDetectorClient +

+ +

+


+ +Subsections + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/node9.html b/manual/docs/html/slsDetectorGuiHowTo/node9.html new file mode 100644 index 000000000..9940a909c --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/node9.html @@ -0,0 +1,112 @@ + + + + + +Introduction + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: Acquisition + Up: slsDetectorClient + Previous: slsDetectorClient +
+
+ + +

+Introduction +

+ +

+This program is intended to control the MYTHEN detectors via command line interface. + +

+To get all the possibilities of usage simply type: +

+
sls_detector_acquire
+
to readout the detector at full speed +
+
sls_detector_put
+
to set detector parameters +
+
sls_detector_get
+
to retrieve detector parameters +
+
+ +

+There are different ways for communicationg with your detector(s). +

+
multiDetector
+
is represented by a group of controllers which operate symultaneously with the same parameters. You can define several multiDetector systems and int this case you address them using different indexes. In this case the syntax will be sls\_detector\_cmd i- where cmd can be acquire, put, get and i is the index of the multiDetector entity (if omitted defaults to 0 - standard usage). Normally it is handy to use the multiDetector structure also in case of single detectors. However in some cases one cannot avoid using the slsDetector structure for detailed configuration (e.g. meaning of external signals or other flags) +
+
slsDetector
+
is represented by a single controller. You can define several multiDetector systems and int this case you address them using different indexes. In this case the syntax will be sls\_detector\_cmd i: where cmd can be acquire, put, get and i is the index of the slsDetector entity, which cannot be omitted. When creating the multiDetector structure, the indexes are automatically assigned to the detectors contained in it. You can retrieve the indexes relative to the slsDetector using: sls\_detector\_get hostname:pos, sls\_detector\_get id:pos whic will return the hostname in position pos of your multiDetector structure (pos=0 in case of single detectors) and its index. +
+
+ +

+


+ + +next + +up + +previous +
+ Next: Acquisition + Up: slsDetectorClient + Previous: slsDetectorClient + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.css b/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.css new file mode 100644 index 000000000..d1824aff4 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.css @@ -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 */ diff --git a/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.html b/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.html new file mode 100644 index 000000000..b8aec0a26 --- /dev/null +++ b/manual/docs/html/slsDetectorGuiHowTo/slsDetectorGuiHowTo.html @@ -0,0 +1,119 @@ + + + + + +Mythen v3.0 manual + + + + + + + + + + + + + + + + +next +up +previous +
+ Next: Installation and upgrades +
+
+ + +

+ +

Mythen v3.0 manual

+
+ +

August 22, 2017

+
+ +

+


+ + + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/annotated.html b/manual/docs/html/slsDetectorUsersDocs/annotated.html new file mode 100644 index 000000000..5ab1c48d6 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/annotated.html @@ -0,0 +1,70 @@ + + + + + +Class List + + + + + + + + + +
+

Class List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + +
detectorDataData structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.)
slsDetectorUsersClass for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc
slsReceiverUsersClass for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/classdetectorData-members.html b/manual/docs/html/slsDetectorUsersDocs/classdetectorData-members.html new file mode 100644 index 000000000..3a0b5916a --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/classdetectorData-members.html @@ -0,0 +1,75 @@ + + + + + +Member List + + + + + + + + + +
+

detectorData Member List

This is the complete list of members for detectorData, including all inherited members. + + + + + + + + + +
anglesdetectorData
detectorData(double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1)detectorData [inline]
errorsdetectorData
fileNamedetectorData
npointsdetectorData
npydetectorData
progressIndexdetectorData
valuesdetectorData
~detectorData()detectorData [inline]
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/classdetectorData.html b/manual/docs/html/slsDetectorUsersDocs/classdetectorData.html new file mode 100644 index 000000000..b8b5532c6 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/classdetectorData.html @@ -0,0 +1,316 @@ + + + + + +detectorData Class Reference + + + + + + + + + +
+

detectorData Class Reference

+

data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) +More...

+ +

#include <detectorData.h>

+ +

List of all members.

+ + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 detectorData (double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1)
 The constructor.
 ~detectorData ()
 The destructor deletes also the arrays pointing to data/errors/angles if not NULL.

Public Attributes

double * values
 pointer to the data
double * errors
 pointer to the errors
double * angles
 pointer to the angles (NULL if no angular conversion)
double progressIndex
 file index
char fileName [1000]
 file name
int npoints
 number of points
int npy
 dimensions in y coordinate
+

Detailed Description

+

data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.)

+ +

Definition at line 9 of file detectorData.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
detectorData::detectorData (double *  val = NULL,
double *  err = NULL,
double *  ang = NULL,
double  p_ind = -1,
const char *  fname = "",
int  np = -1,
int  ny = 1 
) [inline]
+
+
+ +

The constructor.

+
Parameters:
+ + + + + + + + +
val pointer to the data
err pointer to errors
ang pointer to the angles
f_ind file index
fname file name to which the data are saved
np number of points in x coordinate defaults to the number of detector channels (1D detector)
ny dimension in y (1D detector)
+
+
+ +

Definition at line 20 of file detectorData.h.

+ +
+
+ +
+
+ + + + + + + + +
detectorData::~detectorData ( )  [inline]
+
+
+ +

The destructor deletes also the arrays pointing to data/errors/angles if not NULL.

+ +

Definition at line 27 of file detectorData.h.

+ +
+
+

Member Data Documentation

+ +
+
+ + + + +
double* detectorData::angles
+
+
+ +

pointer to the angles (NULL if no angular conversion)

+ +

Definition at line 31 of file detectorData.h.

+ +
+
+ +
+
+ + + + +
double* detectorData::errors
+
+
+ +

pointer to the errors

+ +

Definition at line 30 of file detectorData.h.

+ +
+
+ +
+
+ + + + +
char detectorData::fileName[1000]
+
+
+ +

file name

+ +

Definition at line 33 of file detectorData.h.

+ +
+
+ +
+
+ + + + +
int detectorData::npoints
+
+
+ +

number of points

+ +

Definition at line 34 of file detectorData.h.

+ +
+
+ +
+
+ + + + +
int detectorData::npy
+
+
+ +

dimensions in y coordinate

+ +

Definition at line 35 of file detectorData.h.

+ +
+
+ +
+
+ + + + +
double detectorData::progressIndex
+
+
+ +

file index

+ +

Definition at line 32 of file detectorData.h.

+ +
+
+ +
+
+ + + + +
double* detectorData::values
+
+
+ +

pointer to the data

+ +

Definition at line 27 of file detectorData.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/classes.html b/manual/docs/html/slsDetectorUsersDocs/classes.html new file mode 100644 index 000000000..496b17b6b --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/classes.html @@ -0,0 +1,70 @@ + + + + + +Alphabetical List + + + + + + + + + +
+

Class Index

D | S
+ +
  D  
+
detectorData   
  S  
+
slsDetectorUsers   slsReceiverUsers   
D | S
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers-members.html b/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers-members.html new file mode 100644 index 000000000..97b6d078f --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers-members.html @@ -0,0 +1,135 @@ + + + + + +Member List + + + + + + + + + +
+

slsDetectorUsers Member List

This is the complete list of members for slsDetectorUsers, including all inherited members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
addFrame(double *data, double pos, double i0, double t, string fname, double var)slsDetectorUsers [virtual]
dumpDetectorSetup(string const fname)slsDetectorUsers
enableAngularConversion(int i=-1)slsDetectorUsers
enableCountRateCorrection(int i=-1)slsDetectorUsers
enableDataStreamingFromReceiver(int i=-1)slsDetectorUsers
enableFlatFieldCorrection(int i=-1)slsDetectorUsers
enablePixelMaskCorrection(int i=-1)slsDetectorUsers
enableWriteToFile(int i=-1)slsDetectorUsers
finalizeDataset(double *a, double *v, double *e, int &np)slsDetectorUsers [virtual]
getCommand(int narg, char *args[], int pos=-1)slsDetectorUsers
getDetectorDeveloper()slsDetectorUsers
getDetectorFirmwareVersion()slsDetectorUsers
getDetectorSerialNumber()slsDetectorUsers
getDetectorSettings(string s)slsDetectorUsers [inline, static]
getDetectorSettings(int s)slsDetectorUsers [inline, static]
getDetectorSize(int &x0, int &y0, int &nx, int &ny)slsDetectorUsers
getDetectorSoftwareVersion()slsDetectorUsers
getDetectorStatus()slsDetectorUsers
getDetectorType()slsDetectorUsers
getFileIndex()slsDetectorUsers
getFileName()slsDetectorUsers
getFilePath()slsDetectorUsers
getFlatFieldCorrectionDir()slsDetectorUsers
getFlatFieldCorrectionFile()slsDetectorUsers
getMaximumDetectorSize(int &nx, int &ny)slsDetectorUsers
getModuleFirmwareVersion()slsDetectorUsers
getModuleSerialNumber(int imod=-1)slsDetectorUsers
getPositions(double *pos=NULL)slsDetectorUsers
getThisSoftwareVersion()slsDetectorUsers
getThresholdEnergy()slsDetectorUsers
getTimingMode(int f)slsDetectorUsers [inline, static]
getTimingMode(string s)slsDetectorUsers [inline, static]
initDataset(int refresh)slsDetectorUsers [virtual]
putCommand(int narg, char *args[], int pos=-1)slsDetectorUsers
readConfigurationFile(string const fname)slsDetectorUsers
registerAcquisitionFinishedCallback(int(*func)(double, int, void *), void *pArg)slsDetectorUsers
registerConnectChannelsCallback(int(*func)(void *), void *arg)slsDetectorUsers
registerDataCallback(int(*userCallback)(detectorData *d, int f, int s, void *), void *pArg)slsDetectorUsers
registerDisconnectChannelsCallback(int(*func)(void *), void *arg)slsDetectorUsers
registerGetI0Callback(double(*func)(int, void *), void *arg)slsDetectorUsers
registerGetPositionCallback(double(*func)(void *), void *arg)slsDetectorUsers
registerGoToPositionCallback(int(*func)(double, void *), void *arg)slsDetectorUsers
registerGoToPositionNoWaitCallback(int(*func)(double, void *), void *arg)slsDetectorUsers
registerRawDataCallback(int(*userCallback)(double *p, int n, void *), void *pArg)slsDetectorUsers
retrieveDetectorSetup(string const fname)slsDetectorUsers
runStatusType(int s)slsDetectorUsers [inline, static]
setBitDepth(int i=-1)slsDetectorUsers
setDelayAfterTrigger(double t=-1, bool inseconds=false)slsDetectorUsers
setDetectorSize(int x0=-1, int y0=-1, int nx=-1, int ny=-1)slsDetectorUsers
setExposurePeriod(double t=-1, bool inseconds=false)slsDetectorUsers
setExposureTime(double t=-1, bool inseconds=false)slsDetectorUsers
setFileIndex(int i)slsDetectorUsers
setFileName(string s)slsDetectorUsers
setFilePath(string s)slsDetectorUsers
setFlatFieldCorrectionDir(string dir)slsDetectorUsers
setFlatFieldCorrectionFile(string fname="")slsDetectorUsers
setNumberOfCycles(int64_t t=-1)slsDetectorUsers
setNumberOfFrames(int64_t t=-1)slsDetectorUsers
setNumberOfGates(int64_t t=-1)slsDetectorUsers
setOnline(int const online=-1)slsDetectorUsers
setPositions(int nPos, double *pos)slsDetectorUsers
setReceiverMode(int n=-1)slsDetectorUsers
setSettings(int isettings=-1)slsDetectorUsers
setThresholdEnergy(int e_eV)slsDetectorUsers
setTimingMode(int pol=-1)slsDetectorUsers
slsDetectorUsers(int id=0)slsDetectorUsers
startMeasurement()slsDetectorUsers
stopMeasurement()slsDetectorUsers
~slsDetectorUsers()slsDetectorUsers [virtual]
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers.html b/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers.html new file mode 100644 index 000000000..bf0e9d60f --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/classslsDetectorUsers.html @@ -0,0 +1,2206 @@ + + + + + +slsDetectorUsers Class Reference + + + + + + + + + +
+

slsDetectorUsers Class Reference

+

Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc. +More...

+ +

#include <slsDetectorUsers.h>

+ +

List of all members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 slsDetectorUsers (int id=0)
 default constructor
virtual ~slsDetectorUsers ()
 virtual destructor
string getDetectorDeveloper ()
 useful to define subset of working functions
int setOnline (int const online=-1)
 sets the onlineFlag
void startMeasurement ()
 start measurement and acquires
int stopMeasurement ()
 stop measurement
int getDetectorStatus ()
 get run status
string getFilePath ()
 returns the default output files path
string setFilePath (string s)
 sets the default output files path
string getFileName ()
string setFileName (string s)
 sets the default output files path
int getFileIndex ()
int setFileIndex (int i)
 sets the default output file index
string getFlatFieldCorrectionDir ()
 get flat field corrections file directory
string setFlatFieldCorrectionDir (string dir)
 set flat field corrections file directory
string getFlatFieldCorrectionFile ()
 get flat field corrections file name
int setFlatFieldCorrectionFile (string fname="")
 set flat field correction file
int enableFlatFieldCorrection (int i=-1)
 enable/disable flat field corrections (without changing file name)
int enableCountRateCorrection (int i=-1)
 enable/disable count rate corrections
int enablePixelMaskCorrection (int i=-1)
 enable/disable bad channel corrections
int enableAngularConversion (int i=-1)
 enable/disable angular conversion
int enableWriteToFile (int i=-1)
int setPositions (int nPos, double *pos)
 set positions for the acquisition
int getPositions (double *pos=NULL)
 get positions for the acquisition
int setDetectorSize (int x0=-1, int y0=-1, int nx=-1, int ny=-1)
 sets the detector size
int getDetectorSize (int &x0, int &y0, int &nx, int &ny)
 gets detector size
int getMaximumDetectorSize (int &nx, int &ny)
 setsthe maximum detector size
int setBitDepth (int i=-1)
 set/get dynamic range
int setSettings (int isettings=-1)
 set detector settings
int getThresholdEnergy ()
 get threshold energy
int setThresholdEnergy (int e_eV)
 set threshold energy
double setExposureTime (double t=-1, bool inseconds=false)
 set/get exposure time value
double setExposurePeriod (double t=-1, bool inseconds=false)
 set/get exposure period
double setDelayAfterTrigger (double t=-1, bool inseconds=false)
 set/get delay after trigger
int64_t setNumberOfGates (int64_t t=-1)
 set/get number of gates
int64_t setNumberOfFrames (int64_t t=-1)
 set/get number of frames i.e. number of exposure per trigger
int64_t setNumberOfCycles (int64_t t=-1)
 set/get number of cycles i.e. number of triggers
int setTimingMode (int pol=-1)
 set/get the external communication mode
int readConfigurationFile (string const fname)
 Reads the configuration file -- will contain all the informations needed for the configuration (e.g. for a PSI detector caldir, settingsdir, angconv, badchannels, hostname etc.).
int dumpDetectorSetup (string const fname)
 Reads the parameters from the detector and writes them to file.
int retrieveDetectorSetup (string const fname)
 Loads the detector setup from file.
string getDetectorType ()
 useful for data plotting etc.
int setReceiverMode (int n=-1)
 sets the mode by which gui requests data from receiver
void registerDataCallback (int(*userCallback)(detectorData *d, int f, int s, void *), void *pArg)
 register calbback for accessing detector final data
void registerRawDataCallback (int(*userCallback)(double *p, int n, void *), void *pArg)
 register callback for accessing raw data - if the rawDataCallback is registered, no filewriting/postprocessing will be carried on automatically by the software - the raw data are deleted by the software
virtual void initDataset (int refresh)
 function to initalize a set of measurements (reset binning if angular conversion, reset summing otherwise) - can be overcome by the user's functions thanks to the virtual property
virtual void addFrame (double *data, double pos, double i0, double t, string fname, double var)
 adds frame to merging/summation - can be overcome by the user's functions thanks to the virtual property
virtual void finalizeDataset (double *a, double *v, double *e, int &np)
 finalizes the data set returning the array of angles, values and errors to be used as final data - can be overcome by the user's functions thanks to the virtual property
int enableDataStreamingFromReceiver (int i=-1)
int64_t getModuleFirmwareVersion ()
int64_t getModuleSerialNumber (int imod=-1)
int64_t getDetectorFirmwareVersion ()
int64_t getDetectorSerialNumber ()
int64_t getDetectorSoftwareVersion ()
int64_t getThisSoftwareVersion ()
void registerAcquisitionFinishedCallback (int(*func)(double, int, void *), void *pArg)
 register calbback for accessing detector final data
void registerGetPositionCallback (double(*func)(void *), void *arg)
 register calbback for reading detector position
void registerConnectChannelsCallback (int(*func)(void *), void *arg)
 register callback for connecting to the epics channels
void registerDisconnectChannelsCallback (int(*func)(void *), void *arg)
 register callback to disconnect the epics channels
void registerGoToPositionCallback (int(*func)(double, void *), void *arg)
 register callback for moving the detector
void registerGoToPositionNoWaitCallback (int(*func)(double, void *), void *arg)
 register callback for moving the detector without waiting
void registerGetI0Callback (double(*func)(int, void *), void *arg)
 register calbback reading to I0
string putCommand (int narg, char *args[], int pos=-1)
 sets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf
string getCommand (int narg, char *args[], int pos=-1)
 gets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf

Static Public Member Functions

static string runStatusType (int s)
 returns string from run status index
static int getDetectorSettings (string s)
 returns detector settings string from index
static string getDetectorSettings (int s)
 returns detector settings string from index
static string getTimingMode (int f)
 returns external communication mode string from index
static int getTimingMode (string s)
 returns external communication mode string from index
+

Detailed Description

+

Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc.

+

The slsDetectorUsers class is a minimal interface class which should be instantiated by the users in their acquisition software (EPICS, spec etc.). More advanced configuration functions are not implemented and can be written in a configuration or parameters file that can be read/written.

+ +

Definition at line 84 of file slsDetectorUsers.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + +
slsDetectorUsers::slsDetectorUsers (int  id = 0 ) 
+
+
+ +

default constructor

+ +
+
+ +
+
+ + + + + + + + +
virtual slsDetectorUsers::~slsDetectorUsers ( )  [virtual]
+
+
+ +

virtual destructor

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void slsDetectorUsers::addFrame (double *  data,
double  pos,
double  i0,
double  t,
string  fname,
double  var 
) [virtual]
+
+
+ +

adds frame to merging/summation - can be overcome by the user's functions thanks to the virtual property

+
Parameters:
+ + + + + + + +
data pointer to the raw data
pos encoder position
i0 beam monitor readout for intensity normalization (if 0 not performed)
t exposure time in seconds, required only if rate corrections
fname file name (unused since filewriting would be performed by the user)
var optional parameter - unused.
+
+
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::dumpDetectorSetup (string const   fname ) 
+
+
+ +

Reads the parameters from the detector and writes them to file.

+
Parameters:
+ + +
fname file to write to
+
+
+
Returns:
OK or FAIL
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::enableAngularConversion (int  i = -1 ) 
+
+
+ +

enable/disable angular conversion

+
Parameters:
+ + +
i 0 disables, 1 enables, -1 gets
+
+
+
Returns:
0 if angular conversion disabled, 1 if enabled
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::enableCountRateCorrection (int  i = -1 ) 
+
+
+ +

enable/disable count rate corrections

+
Parameters:
+ + +
i 0 disables, 1 enable, -1 gets
+
+
+
Returns:
0 if count corrections disabled, 1 if enabled
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::enableDataStreamingFromReceiver (int  i = -1 ) 
+
+
+

Enable data streaming from receiver (zmq)

+
Parameters:
+ + +
i 1 to set, 0 to reset and -1 to get
+
+
+
Returns:
data streaming enable
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::enableFlatFieldCorrection (int  i = -1 ) 
+
+
+ +

enable/disable flat field corrections (without changing file name)

+
Parameters:
+ + +
i 0 disables, 1 enables, -1 gets
+
+
+
Returns:
0 if ff corrections disabled, 1 if enabled
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::enablePixelMaskCorrection (int  i = -1 ) 
+
+
+ +

enable/disable bad channel corrections

+
Parameters:
+ + +
i 0 disables, 1 enables, -1 gets
+
+
+
Returns:
0 if bad channels corrections disabled, 1 if enabled
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::enableWriteToFile (int  i = -1 ) 
+
+
+

Enable write file function included

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual void slsDetectorUsers::finalizeDataset (double *  a,
double *  v,
double *  e,
int &  np 
) [virtual]
+
+
+ +

finalizes the data set returning the array of angles, values and errors to be used as final data - can be overcome by the user's functions thanks to the virtual property

+
Parameters:
+ + + + + +
a pointer to the array of angles - can be null if no angular coversion is required
v pointer to the array of values
e pointer to the array of errors
np reference returning the number of points
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
string slsDetectorUsers::getCommand (int  narg,
char *  args[],
int  pos = -1 
)
+
+
+ +

gets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf

+
Parameters:
+ + + + +
narg value to be set
args value to be set
pos position of detector in multislsdetector list
+
+
+
Returns:
answer string
+ +
+
+ +
+
+ + + + + + + + +
string slsDetectorUsers::getDetectorDeveloper ( ) 
+
+
+ +

useful to define subset of working functions

+
Returns:
"PSI" or "Dectris"
+ +
+
+ +
+
+ + + + + + + + +
int64_t slsDetectorUsers::getDetectorFirmwareVersion ( ) 
+
+
+

get get Detector Firmware Version

+
Returns:
id
+ +
+
+ +
+
+ + + + + + + + +
int64_t slsDetectorUsers::getDetectorSerialNumber ( ) 
+
+
+

get get Detector Serial Number

+
Returns:
id
+ +
+
+ +
+
+ + + + + + + + + +
static string slsDetectorUsers::getDetectorSettings (int  s )  [inline, static]
+
+
+ +

returns detector settings string from index

+
Parameters:
+ + +
s settings index
+
+
+
Returns:
standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain, undefined when wrong index
+ +

Definition at line 585 of file slsDetectorUsers.h.

+ +
+
+ +
+
+ + + + + + + + + +
static int slsDetectorUsers::getDetectorSettings (string  s )  [inline, static]
+
+
+ +

returns detector settings string from index

+
Parameters:
+ + +
s can be standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain
+
+
+
Returns:
setting index (-1 unknown string)
+ +

Definition at line 571 of file slsDetectorUsers.h.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int slsDetectorUsers::getDetectorSize (int &  x0,
int &  y0,
int &  nx,
int &  ny 
)
+
+
+ +

gets detector size

+
Parameters:
+ + + + + +
x0 horizontal position origin in channel number
y0 vertical position origin in channel number
nx number of channels in horiziontal
ny number of channels in vertical
+
+
+
Returns:
OK/FAIL
+ +
+
+ +
+
+ + + + + + + + +
int64_t slsDetectorUsers::getDetectorSoftwareVersion ( ) 
+
+
+

get get Detector Software Version

+
Returns:
id
+ +
+
+ +
+
+ + + + + + + + +
int slsDetectorUsers::getDetectorStatus ( ) 
+
+
+ +

get run status

+
Returns:
status mask
+ +
+
+ +
+
+ + + + + + + + +
string slsDetectorUsers::getDetectorType ( ) 
+
+
+ +

useful for data plotting etc.

+
Returns:
Mythen, Eiger, Gotthard etc.
+ +
+
+ +
+
+ + + + + + + + +
int slsDetectorUsers::getFileIndex ( ) 
+
+
+
Returns:
the default output file index
+ +
+
+ +
+
+ + + + + + + + +
string slsDetectorUsers::getFileName ( ) 
+
+
+
Returns:
the default output files root name
+ +
+
+ +
+
+ + + + + + + + +
string slsDetectorUsers::getFilePath ( ) 
+
+
+ +

returns the default output files path

+ +
+
+ +
+
+ + + + + + + + +
string slsDetectorUsers::getFlatFieldCorrectionDir ( ) 
+
+
+ +

get flat field corrections file directory

+
Returns:
flat field correction file directory
+ +
+
+ +
+
+ + + + + + + + +
string slsDetectorUsers::getFlatFieldCorrectionFile ( ) 
+
+
+ +

get flat field corrections file name

+
Returns:
flat field correction file name
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int slsDetectorUsers::getMaximumDetectorSize (int &  nx,
int &  ny 
)
+
+
+ +

setsthe maximum detector size

+
Parameters:
+ + + + + +
x0 horizontal position origin in channel number
y0 vertical position origin in channel number
nx number of channels in horiziontal
ny number of channels in vertical
+
+
+
Returns:
OK/FAIL
+ +
+
+ +
+
+ + + + + + + + +
int64_t slsDetectorUsers::getModuleFirmwareVersion ( ) 
+
+
+

get get Module Firmware Version

+
Returns:
id
+ +
+
+ +
+
+ + + + + + + + + +
int64_t slsDetectorUsers::getModuleSerialNumber (int  imod = -1 ) 
+
+
+

get get Module Serial Number

+
Parameters:
+ + +
imod module number
+
+
+
Returns:
id
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::getPositions (double *  pos = NULL ) 
+
+
+ +

get positions for the acquisition

+
Parameters:
+ + +
pos array which will contain the encoder positions
+
+
+
Returns:
number of positions
+ +
+
+ +
+
+ + + + + + + + +
int64_t slsDetectorUsers::getThisSoftwareVersion ( ) 
+
+
+

get this Software Version

+
Returns:
id
+ +
+
+ +
+
+ + + + + + + + +
int slsDetectorUsers::getThresholdEnergy ( ) 
+
+
+ +

get threshold energy

+
Returns:
current threshold value for imod in ev (-1 failed)
+ +
+
+ +
+
+ + + + + + + + + +
static int slsDetectorUsers::getTimingMode (string  s )  [inline, static]
+
+
+ +

returns external communication mode string from index

+
Parameters:
+ + +
f index for communication mode
+
+
+
Returns:
auto, trigger, ro_trigger, gating, triggered_gating, unknown when wrong mode
+ +

Definition at line 621 of file slsDetectorUsers.h.

+ +
+
+ +
+
+ + + + + + + + + +
static string slsDetectorUsers::getTimingMode (int  f )  [inline, static]
+
+
+ +

returns external communication mode string from index

+
Parameters:
+ + +
f index for communication mode
+
+
+
Returns:
auto, trigger, ro_trigger, gating, triggered_gating, unknown when wrong mode
+ +

Definition at line 605 of file slsDetectorUsers.h.

+ +
+
+ +
+
+ + + + + + + + + +
virtual void slsDetectorUsers::initDataset (int  refresh )  [virtual]
+
+
+ +

function to initalize a set of measurements (reset binning if angular conversion, reset summing otherwise) - can be overcome by the user's functions thanks to the virtual property

+
Parameters:
+ + +
refresh if 1, all parameters like ffcoefficients, badchannels, ratecorrections etc. are reset (should be called at least onece with this option), if 0 simply reset merging/ summation
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
string slsDetectorUsers::putCommand (int  narg,
char *  args[],
int  pos = -1 
)
+
+
+ +

sets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf

+
Parameters:
+ + + + +
narg value to be set
args value to be set
pos position of detector in multislsdetector list
+
+
+
Returns:
answer string
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::readConfigurationFile (string const   fname ) 
+
+
+ +

Reads the configuration file -- will contain all the informations needed for the configuration (e.g. for a PSI detector caldir, settingsdir, angconv, badchannels, hostname etc.).

+
Parameters:
+ + +
fname file name
+
+
+
Returns:
OK or FAIL
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsDetectorUsers::registerAcquisitionFinishedCallback (int(*)(double, int, void *)  func,
void *  pArg 
)
+
+
+ +

register calbback for accessing detector final data

+
Parameters:
+ + +
func function to be called at the end of the acquisition. gets detector status and progress index as arguments
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsDetectorUsers::registerConnectChannelsCallback (int(*)(void *)  func,
void *  arg 
)
+
+
+ +

register callback for connecting to the epics channels

+
Parameters:
+ + +
func function for connecting to the epics channels
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsDetectorUsers::registerDataCallback (int(*)(detectorData *d, int f, int s, void *)  userCallback,
void *  pArg 
)
+
+
+ +

register calbback for accessing detector final data

+
Parameters:
+ + +
userCallback function for plotting/analyzing the data. Its arguments are the data structure d and the frame number f, s is for subframe number for eiger for 32 bit mode
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsDetectorUsers::registerDisconnectChannelsCallback (int(*)(void *)  func,
void *  arg 
)
+
+
+ +

register callback to disconnect the epics channels

+
Parameters:
+ + +
func function to disconnect the epics channels
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsDetectorUsers::registerGetI0Callback (double(*)(int, void *)  func,
void *  arg 
)
+
+
+ +

register calbback reading to I0

+
Parameters:
+ + +
func function for reading the I0 (called with parameter 0 before the acquisition, 1 after and the return value used as I0)
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsDetectorUsers::registerGetPositionCallback (double(*)(void *)  func,
void *  arg 
)
+
+
+ +

register calbback for reading detector position

+
Parameters:
+ + +
func function for reading the detector position
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsDetectorUsers::registerGoToPositionCallback (int(*)(double, void *)  func,
void *  arg 
)
+
+
+ +

register callback for moving the detector

+
Parameters:
+ + +
func function for moving the detector
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsDetectorUsers::registerGoToPositionNoWaitCallback (int(*)(double, void *)  func,
void *  arg 
)
+
+
+ +

register callback for moving the detector without waiting

+
Parameters:
+ + +
func function for moving the detector
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsDetectorUsers::registerRawDataCallback (int(*)(double *p, int n, void *)  userCallback,
void *  pArg 
)
+
+
+ +

register callback for accessing raw data - if the rawDataCallback is registered, no filewriting/postprocessing will be carried on automatically by the software - the raw data are deleted by the software

+
Parameters:
+ + +
userCallback function for postprocessing and saving the data - p is the pointer to the data, n is the number of channels
+
+
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::retrieveDetectorSetup (string const   fname ) 
+
+
+ +

Loads the detector setup from file.

+
Parameters:
+ + +
fname file to read from
+
+
+
Returns:
OK or FAIL
+ +
+
+ +
+
+ + + + + + + + + +
static string slsDetectorUsers::runStatusType (int  s )  [inline, static]
+
+
+ +

returns string from run status index

+
Parameters:
+ + +
s run status index
+
+
+
Returns:
string error, waiting, running, data, finished or unknown when wrong index
+ +

Definition at line 553 of file slsDetectorUsers.h.

+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::setBitDepth (int  i = -1 ) 
+
+
+ +

set/get dynamic range

+
Parameters:
+ + +
i dynamic range (-1 get)
+
+
+
Returns:
current dynamic range
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
double slsDetectorUsers::setDelayAfterTrigger (double  t = -1,
bool  inseconds = false 
)
+
+
+ +

set/get delay after trigger

+
Parameters:
+ + + +
t time in ns (-1 gets)
inseconds true if the value is in s, else ns
+
+
+
Returns:
timer set value in ns, or s if specified
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int slsDetectorUsers::setDetectorSize (int  x0 = -1,
int  y0 = -1,
int  nx = -1,
int  ny = -1 
)
+
+
+ +

sets the detector size

+
Parameters:
+ + + + + +
x0 horizontal position origin in channel number (-1 unchanged)
y0 vertical position origin in channel number (-1 unchanged)
nx number of channels in horiziontal (-1 unchanged)
ny number of channels in vertical (-1 unchanged)
+
+
+
Returns:
OK/FAIL
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
double slsDetectorUsers::setExposurePeriod (double  t = -1,
bool  inseconds = false 
)
+
+
+ +

set/get exposure period

+
Parameters:
+ + + +
t time in ns (-1 gets)
inseconds true if the value is in s, else ns
+
+
+
Returns:
timer set value in ns, or s if specified
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
double slsDetectorUsers::setExposureTime (double  t = -1,
bool  inseconds = false 
)
+
+
+ +

set/get exposure time value

+
Parameters:
+ + + +
t time in sn (-1 gets)
inseconds true if the value is in s, else ns
+
+
+
Returns:
timer set value in ns, or s if specified
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::setFileIndex (int  i ) 
+
+
+ +

sets the default output file index

+
Parameters:
+ + +
i file index
+
+
+
Returns:
the default output file index
+ +
+
+ +
+
+ + + + + + + + + +
string slsDetectorUsers::setFileName (string  s ) 
+
+
+ +

sets the default output files path

+
Parameters:
+ + +
s file name
+
+
+
Returns:
the default output files root name
+ +
+
+ +
+
+ + + + + + + + + +
string slsDetectorUsers::setFilePath (string  s ) 
+
+
+ +

sets the default output files path

+
Parameters:
+ + +
s file path
+
+
+
Returns:
file path
+ +
+
+ +
+
+ + + + + + + + + +
string slsDetectorUsers::setFlatFieldCorrectionDir (string  dir ) 
+
+
+ +

set flat field corrections file directory

+
Parameters:
+ + +
dir flat field correction file directory
+
+
+
Returns:
flat field correction file directory
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::setFlatFieldCorrectionFile (string  fname = "" ) 
+
+
+ +

set flat field correction file

+
Parameters:
+ + +
fname name of the flat field file (or "" if disable)
+
+
+
Returns:
0 if disable (or file could not be read), >0 otherwise
+ +
+
+ +
+
+ + + + + + + + + +
int64_t slsDetectorUsers::setNumberOfCycles (int64_t  t = -1 ) 
+
+
+ +

set/get number of cycles i.e. number of triggers

+
Parameters:
+ + +
t number of frames (-1 gets)
+
+
+
Returns:
number of frames
+ +
+
+ +
+
+ + + + + + + + + +
int64_t slsDetectorUsers::setNumberOfFrames (int64_t  t = -1 ) 
+
+
+ +

set/get number of frames i.e. number of exposure per trigger

+
Parameters:
+ + +
t number of frames (-1 gets)
+
+
+
Returns:
number of frames
+ +
+
+ +
+
+ + + + + + + + + +
int64_t slsDetectorUsers::setNumberOfGates (int64_t  t = -1 ) 
+
+
+ +

set/get number of gates

+
Parameters:
+ + +
t number of gates (-1 gets)
+
+
+
Returns:
number of gates
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::setOnline (int const   online = -1 ) 
+
+
+ +

sets the onlineFlag

+
Parameters:
+ + +
online can be: -1 returns wether the detector is in online (1) or offline (0) state; 0 detector in offline state; 1 detector in online state
+
+
+
Returns:
0 (offline) or 1 (online)
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int slsDetectorUsers::setPositions (int  nPos,
double *  pos 
)
+
+
+ +

set positions for the acquisition

+
Parameters:
+ + + +
nPos number of positions
pos array with the encoder positions
+
+
+
Returns:
number of positions
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::setReceiverMode (int  n = -1 ) 
+
+
+ +

sets the mode by which gui requests data from receiver

+
Parameters:
+ + +
n is 0 for random requests for fast acquisitions and greater than 0 for nth read requests
+
+
+
Returns:
the mode set in the receiver
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::setSettings (int  isettings = -1 ) 
+
+
+ +

set detector settings

+
Parameters:
+ + +
isettings settings index (-1 gets)
+
+
+
Returns:
current settings
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::setThresholdEnergy (int  e_eV ) 
+
+
+ +

set threshold energy

+
Parameters:
+ + +
e_eV threshold in eV
+
+
+
Returns:
current threshold value for imod in ev (-1 failed)
+ +
+
+ +
+
+ + + + + + + + + +
int slsDetectorUsers::setTimingMode (int  pol = -1 ) 
+
+
+ +

set/get the external communication mode

+
Parameters:
+ + +
pol value to be set
+
+
+
See also:
getTimingMode
+
Returns:
current external communication mode
+ +
+
+ +
+
+ + + + + + + + +
void slsDetectorUsers::startMeasurement ( ) 
+
+
+ +

start measurement and acquires

+
Returns:
OK/FAIL
+ +
+
+ +
+
+ + + + + + + + +
int slsDetectorUsers::stopMeasurement ( ) 
+
+
+ +

stop measurement

+
Returns:
OK/FAIL
+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers-members.html b/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers-members.html new file mode 100644 index 000000000..098a526a5 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers-members.html @@ -0,0 +1,75 @@ + + + + + +Member List + + + + + + + + + +
+

slsReceiverUsers Member List

This is the complete list of members for slsReceiverUsers, including all inherited members. + + + + + + + + + +
getReceiverVersion()slsReceiverUsers
receiverslsReceiverUsers
registerCallBackAcquisitionFinished(void(*func)(uint64_t nf, void *), void *arg)slsReceiverUsers
registerCallBackRawDataReady(void(*func)(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 *), void *arg)slsReceiverUsers
registerCallBackStartAcquisition(int(*func)(char *filepath, char *filename, uint64_t fileindex, uint32_t datasize, void *), void *arg)slsReceiverUsers
slsReceiverUsers(int argc, char *argv[], int &success)slsReceiverUsers
start()slsReceiverUsers
stop()slsReceiverUsers
~slsReceiverUsers()slsReceiverUsers
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers.html b/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers.html new file mode 100644 index 000000000..a9e8b2b26 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/classslsReceiverUsers.html @@ -0,0 +1,332 @@ + + + + + +slsReceiverUsers Class Reference + + + + + + + + + +
+

slsReceiverUsers Class Reference

+

Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data. +More...

+ +

#include <slsReceiverUsers.h>

+ +

List of all members.

+ + + + + + + + + + + + +

Public Member Functions

 slsReceiverUsers (int argc, char *argv[], int &success)
 ~slsReceiverUsers ()
int start ()
void stop ()
int64_t getReceiverVersion ()
void registerCallBackStartAcquisition (int(*func)(char *filepath, char *filename, uint64_t fileindex, uint32_t datasize, void *), void *arg)
void registerCallBackAcquisitionFinished (void(*func)(uint64_t nf, void *), void *arg)
void registerCallBackRawDataReady (void(*func)(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 *), void *arg)

Public Attributes

slsReceiver * receiver
+

Detailed Description

+

Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data.

+

slsReceiverUsers is a class that can be instantiated in the users software to receive the data from the detectors. Callbacks can be defined for processing and/or saving data

+ +

Definition at line 16 of file slsReceiverUsers.h.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
slsReceiverUsers::slsReceiverUsers (int  argc,
char *  argv[],
int &  success 
)
+
+
+

Constructor reads config file, creates socket, assigns function table

+
Parameters:
+ + + + +
argc from command line
argv from command line
succecc socket creation was successfull
+
+
+ +
+
+ +
+
+ + + + + + + + +
slsReceiverUsers::~slsReceiverUsers ( ) 
+
+
+

Destructor

+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + +
int64_t slsReceiverUsers::getReceiverVersion ( ) 
+
+
+

get get Receiver Version

+
Returns:
id
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsReceiverUsers::registerCallBackAcquisitionFinished (void(*)(uint64_t nf, void *)  func,
void *  arg 
)
+
+
+

register callback for end of acquisition

+
Parameters:
+ + +
func end of acquisition callback. Argument nf is total frames caught
+
+
+
Returns:
nothing
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsReceiverUsers::registerCallBackRawDataReady (void(*)(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 *)  func,
void *  arg 
)
+
+
+

register callback to be called when data are available (to process and/or save the data).

+
Parameters:
+ + +
func raw data ready callback. arguments are frameNumber, expLength, packetNumber, bunchId, timestamp, modId, xCoord, yCoord, zCoord, debug, roundRNumber, detType, version, dataPointer, dataSize
+
+
+
Returns:
nothing
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void slsReceiverUsers::registerCallBackStartAcquisition (int(*)(char *filepath, char *filename, uint64_t fileindex, uint32_t datasize, void *)  func,
void *  arg 
)
+
+
+

register calbback for starting the acquisition

+
Parameters:
+ + +
func callback to be called when starting the acquisition. Its arguments are filepath, filename, fileindex, datasize
+
+
+
Returns:
value is insignificant at the moment, we write depending on file write enable, users get data to write depending on call backs registered
+ +
+
+ +
+
+ + + + + + + + +
int slsReceiverUsers::start ( ) 
+
+
+

starts listening on the TCP port for client comminication

+
Returns:
0 for success or 1 for FAIL in creating TCP server
+ +
+
+ +
+
+ + + + + + + + +
void slsReceiverUsers::stop ( ) 
+
+
+

stops listening to the TCP & UDP port and exit receiver program

+ +
+
+

Member Data Documentation

+ +
+
+ + + + +
slsReceiver* slsReceiverUsers::receiver
+
+
+ +

Definition at line 75 of file slsReceiverUsers.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/detectorData_8h.html b/manual/docs/html/slsDetectorUsersDocs/detectorData_8h.html new file mode 100644 index 000000000..80e0f5282 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/detectorData_8h.html @@ -0,0 +1,74 @@ + + + + + +detectorData.h File Reference + + + + + + + + + +
+

detectorData.h File Reference

#include <unistd.h>
+#include <cstring>
+ +

Go to the source code of this file.

+ + + + +

Classes

class  detectorData
 data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) More...
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/detectorData_8h_source.html b/manual/docs/html/slsDetectorUsersDocs/detectorData_8h_source.html new file mode 100644 index 000000000..cc7483157 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/detectorData_8h_source.html @@ -0,0 +1,87 @@ + + + + + +detectorData.h Source File + + + + + + + + + + + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/doxygen.css b/manual/docs/html/slsDetectorUsersDocs/doxygen.css new file mode 100644 index 000000000..9ca3cafbc --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/doxygen.css @@ -0,0 +1,498 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 12px; +} + +/* @group Heading Levels */ + +h1 { + text-align: center; + font-size: 150%; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #153788; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #1b77c5; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code { +} + +a.codeRef { +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +.fragment { + font-family: monospace, fixed; + font-size: 105%; +} + +pre.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + padding: 4px 6px; + margin: 4px 8px 4px 2px; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} + +td.indexkey { + background-color: #e8eef2; + font-weight: bold; + border: 1px solid #CCCCCC; + margin: 2px 0px 2px 0; + padding: 2px 10px; +} + +td.indexvalue { + background-color: #e8eef2; + border: 1px solid #CCCCCC; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #f0f0f0; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +/* @end */ + +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} + +th.dirtab { + background: #e8eef2; + font-weight: bold; +} + +hr { + height: 0; + border: none; + border-top: 1px solid #666; +} + +/* @group Member Descriptions */ + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #FAFAFA; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #ccc; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memTemplParams { + color: #606060; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; + margin-left: 3px; +} + +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.memitem { + padding: 0; + margin-bottom: 10px; +} + +.memname { + white-space: nowrap; + font-weight: bold; +} + +.memproto, .memdoc { + border: 1px solid #84b0c7; +} + +.memproto { + padding: 0; + background-color: #d5e1e8; + font-weight: bold; + -webkit-border-top-left-radius: 8px; + -webkit-border-top-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -moz-border-radius-topleft: 8px; + -moz-border-radius-topright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + +} + +.memdoc { + padding: 2px 5px; + background-color: #eef3f5; + border-top-width: 0; + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +/* @end */ + +/* @group Directory (tree) */ + +/* for the tree view */ + +.ftvtree { + font-family: sans-serif; + margin: 0.5em; +} + +/* these are for tree view when used as main index */ + +.directory { + font-size: 9pt; + font-weight: bold; +} + +.directory h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +/* +The following two styles can be used to replace the root node title +with an image of your choice. Simply uncomment the next two styles, +specify the name of your image and be sure to set 'height' to the +proper pixel height of your image. +*/ + +/* +.directory h3.swap { + height: 61px; + background-repeat: no-repeat; + background-image: url("yourimage.gif"); +} +.directory h3.swap span { + display: none; +} +*/ + +.directory > h3 { + margin-top: 0; +} + +.directory p { + margin: 0px; + white-space: nowrap; +} + +.directory div { + display: none; + margin: 0px; +} + +.directory img { + vertical-align: -30%; +} + +/* these are for tree view when not used as main index */ + +.directory-alt { + font-size: 100%; + font-weight: bold; +} + +.directory-alt h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +.directory-alt > h3 { + margin-top: 0; +} + +.directory-alt p { + margin: 0px; + white-space: nowrap; +} + +.directory-alt div { + display: none; + margin: 0px; +} + +.directory-alt img { + vertical-align: -30%; +} + +/* @end */ + +address { + font-style: normal; + color: #333; +} diff --git a/manual/slsDetectorClientDocs/html/doxygen.png b/manual/docs/html/slsDetectorUsersDocs/doxygen.png similarity index 100% rename from manual/slsDetectorClientDocs/html/doxygen.png rename to manual/docs/html/slsDetectorUsersDocs/doxygen.png diff --git a/manual/docs/html/slsDetectorUsersDocs/files.html b/manual/docs/html/slsDetectorUsersDocs/files.html new file mode 100644 index 000000000..6f5010c33 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/files.html @@ -0,0 +1,72 @@ + + + + + +File Index + + + + + + + + + +
+

File List

Here is a list of all files with brief descriptions: + + + + + +
detectorData.h [code]
mainClient.cpp [code]
mainReceiver.cpp [code]
slsDetectorUsers.h [code]
slsReceiverUsers.h [code]
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/functions.html b/manual/docs/html/slsDetectorUsersDocs/functions.html new file mode 100644 index 000000000..cd82de2fb --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/functions.html @@ -0,0 +1,391 @@ + + + + + +Class Members + + + + + + + + + +
+Here is a list of all class members with links to the classes they belong to: + +

- a -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- n -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- v -

+ + +

- ~ -

+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/functions_func.html b/manual/docs/html/slsDetectorUsersDocs/functions_func.html new file mode 100644 index 000000000..b0ae779cf --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/functions_func.html @@ -0,0 +1,357 @@ + + + + + +Class Members - Functions + + + + + + + + + +
+  + +

- a -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- i -

+ + +

- p -

+ + +

- r -

+ + +

- s -

+ + +

- ~ -

+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/functions_vars.html b/manual/docs/html/slsDetectorUsersDocs/functions_vars.html new file mode 100644 index 000000000..51e6842c6 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/functions_vars.html @@ -0,0 +1,98 @@ + + + + + +Class Members - Variables + + + + + + + + + +
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/globals.html b/manual/docs/html/slsDetectorUsersDocs/globals.html new file mode 100644 index 000000000..8fdf6e102 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/globals.html @@ -0,0 +1,115 @@ + + + + + +Class Members + + + + + + + + + +
+Here is a list of all file members with links to the files they belong to: +
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/globals_defs.html b/manual/docs/html/slsDetectorUsersDocs/globals_defs.html new file mode 100644 index 000000000..c4a285bd7 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/globals_defs.html @@ -0,0 +1,84 @@ + + + + + +Class Members + + + + + + + + + +
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/globals_func.html b/manual/docs/html/slsDetectorUsersDocs/globals_func.html new file mode 100644 index 000000000..2da7b97b9 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/globals_func.html @@ -0,0 +1,97 @@ + + + + + +Class Members + + + + + + + + + +
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/globals_vars.html b/manual/docs/html/slsDetectorUsersDocs/globals_vars.html new file mode 100644 index 000000000..3ec65c74f --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/globals_vars.html @@ -0,0 +1,84 @@ + + + + + +Class Members + + + + + + + + + +
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/index.html b/manual/docs/html/slsDetectorUsersDocs/index.html new file mode 100644 index 000000000..94c1273b4 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/index.html @@ -0,0 +1,86 @@ + + + + + +Main Page + + + + + + + + + +
+

API for SLS detectors data acquisition

+
+

Although the SLS detectors group delvelops several types of detectors (1/2D, counting/integrating etc.) it is common interest of the group to use a common platfor for data acquisition

+

The architecture of the acquisitions system is intended as follows:

+
    +
  • A socket server running on the detector (or more than one in some special cases)
  • +
  • C++ classes common to all detectors for client-server communication. These can be supplied to users as libraries and embedded also in acquisition systems which are not developed by the SLS
  • +
  • the possibility of using a Qt-based graphical user interface (with eventually root analisys capabilities)
  • +
  • the possibility of running all commands from command line. In order to ensure a fast operation of this so called "text client" the detector parameters should not be re-initialized everytime. For this reason a shared memory block is allocated where the main detector flags and parameters are stored
  • +
  • a Root library for data postprocessing and detector calibration (energy, angle).
  • +
+

slsDetectorUsers is a class to control the detector which should be instantiated by the users in their acquisition software (EPICS, spec etc.). A callback for dislaying the data can be registered. More advanced configuration functions are not implemented and can be written in a configuration file tha can be read/written.

+

slsReceiverUsers is a class to receive the data for detectors with external data receiver (e.g. GOTTHARD). Callbacks can be registered to process the data or save them in specific formats.

+

detectorData is a structure containing the data and additional information which is used to return the data e.g. to the GUI for displaying them.

+

You can find examples of how this classes can be instatiated in mainClient.cpp and mainReceiver.cpp

+
Authors:
Anna Bergamaschi, Dhanya Maliakal
+
Version:
0.2

Currently supported detectors

+
+
    +
  • MYTHEN
  • +
  • GOTTHARD controls
  • +
  • GOTTHARD data receiver

    Coming soon

    +
  • +
+
    +
  • EIGER
  • +
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/installdox b/manual/docs/html/slsDetectorUsersDocs/installdox new file mode 100755 index 000000000..9b89fe025 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( ); +$quiet = 0; + +if (open(F,"search.cfg")) +{ + $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; + $_= ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_; +} + +while ( @ARGV ) { + $_ = shift @ARGV; + if ( s/^-// ) { + if ( /^l(.*)/ ) { + $v = ($1 eq "") ? shift @ARGV : $1; + ($v =~ /\/$/) || ($v .= "/"); + $_ = $v; + if ( /(.+)\@(.+)/ ) { + if ( exists $subst{$1} ) { + $subst{$1} = $2; + } else { + print STDERR "Unknown tag file $1 given with option -l\n"; + &usage(); + } + } else { + print STDERR "Argument $_ is invalid for option -l\n"; + &usage(); + } + } + elsif ( /^q/ ) { + $quiet = 1; + } + elsif ( /^\?|^h/ ) { + &usage(); + } + else { + print STDERR "Illegal option -$_\n"; + &usage(); + } + } + else { + push (@files, $_ ); + } +} + +foreach $sub (keys %subst) +{ + if ( $subst{$sub} eq "" ) + { + print STDERR "No substitute given for tag file `$sub'\n"; + &usage(); + } + elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" ) + { + print "Substituting $subst{$sub} for each occurence of tag file $sub\n"; + } +} + +if ( ! @files ) { + if (opendir(D,".")) { + foreach $file ( readdir(D) ) { + $match = ".html"; + next if ( $file =~ /^\.\.?$/ ); + ($file =~ /$match/) && (push @files, $file); + ($file =~ "tree.js") && (push @files, $file); + } + closedir(D); + } +} + +if ( ! @files ) { + print STDERR "Warning: No input files given and none found!\n"; +} + +foreach $f (@files) +{ + if ( ! $quiet ) { + print "Editing: $f...\n"; + } + $oldf = $f; + $f .= ".bak"; + unless (rename $oldf,$f) { + print STDERR "Error: cannot rename file $oldf\n"; + exit 1; + } + if (open(F,"<$f")) { + unless (open(G,">$oldf")) { + print STDERR "Error: opening file $oldf for writing\n"; + exit 1; + } + if ($oldf ne "tree.js") { + while () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g; + print G "$_"; + } + } + } + else { + print STDERR "Warning file $f does not exist\n"; + } + unlink $f; +} + +sub usage { + print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n"; + print STDERR "Options:\n"; + print STDERR " -l tagfile\@linkName tag file + URL or directory \n"; + print STDERR " -q Quiet mode\n\n"; + exit 1; +} diff --git a/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp.html b/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp.html new file mode 100644 index 000000000..0fd8e211f --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp.html @@ -0,0 +1,165 @@ + + + + + +mainClient.cpp File Reference + + + + + + + + + +
+

mainClient.cpp File Reference

#include <iostream>
+#include "slsDetectorUsers.h"
+#include "detectorData.h"
+#include <cstdlib>
+ +

Go to the source code of this file.

+ + + + +

Functions

int dataCallback (detectorData *pData, int iframe, int isubframe, void *pArg)
int main (int argc, char **argv)
+

Detailed Description

+

This file is an example of how to implement the slsDetectorUsers class You can compile it linking it to the slsDetector library

+

gcc mainClient.cpp -L lib -l SlsDetector -lm -pthread

+

where lib is the location of libSlsDetector.so gcc mainClient.cpp -L . -l SlsDetector -lm -pthread -o users

+ +

Definition in file mainClient.cpp.

+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int dataCallback (detectorData pData,
int  iframe,
int  isubframe,
void *  pArg 
)
+
+
+

Definition of the data callback which simply prints out the number of points received and teh frame number

+ +

Definition at line 20 of file mainClient.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int  argc,
char **  argv 
)
+
+
+

example of a main program using the slsDetectorUsers class

+ +

if specified, argv[3] is used as detector ID (default is 0)

+

slsDetectorUsers is instantiated

+

if specified, argv[1] is used as detector config file (necessary at least the first time it is called to properly configure advanced settings in the shared memory)

+

registering data callback

+

checking detector status and exiting if not idle

+

load detector settings

+

start measurement

+

returning when acquisition is finished or data are avilable

+

+ +

Definition at line 27 of file mainClient.cpp.

+ +
+
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp_source.html b/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp_source.html new file mode 100644 index 000000000..c59d224d8 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/mainClient_8cpp_source.html @@ -0,0 +1,117 @@ + + + + + +mainClient.cpp Source File + + + + + + + + + + + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp.html b/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp.html new file mode 100644 index 000000000..e20e3efd3 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp.html @@ -0,0 +1,465 @@ + + + + + +mainReceiver.cpp File Reference + + + + + + + + + +
+

mainReceiver.cpp File Reference

#include "sls_receiver_defs.h"
+#include "slsReceiverUsers.h"
+#include <iostream>
+#include <string.h>
+#include <signal.h>
+#include <cstdlib>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <string>
+ +

Go to the source code of this file.

+ + + + + + + + + + + + + + + + +

Defines

#define NUM_RECEIVERS   2
#define START_TCP_PORT   1954
#define PRINT_IN_COLOR(c, f,...)   printf ("\033[%dm" f RESET, 30 + c+1, ##__VA_ARGS__)

Functions

void sigChildExitedHandler (int sig)
void sigInterruptHandler (int p)
int StartAcq (char *filepath, char *filename, uint64_t fileindex, uint32_t datasize, void *p)
void AcquisitionFinished (uint64_t frames, void *p)
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)
int main (int argc, char *argv[])

Variables

pid_t childPid [NUM_RECEIVERS]
bool keeprunning
int numrunning
+

Define Documentation

+ +
+
+ + + + +
#define NUM_RECEIVERS   2
+
+
+ +

Definition at line 21 of file mainReceiver.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + +
#define PRINT_IN_COLOR(c,
f,
...  )    printf ("\033[%dm" f RESET, 30 + c+1, ##__VA_ARGS__)
+
+
+ +

Definition at line 23 of file mainReceiver.cpp.

+ +
+
+ +
+
+ + + + +
#define START_TCP_PORT   1954
+
+
+ +

Definition at line 22 of file mainReceiver.cpp.

+ +
+
+

Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void AcquisitionFinished (uint64_t  frames,
void *  p 
)
+
+
+ +

Definition at line 52 of file mainReceiver.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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 
)
+
+
+ +

Definition at line 57 of file mainReceiver.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int  argc,
char *  argv[] 
)
+
+
+ +

Call back for start acquisition callback arguments are filepath filename fileindex datasize

+

return value is insignificant at the moment we write depending on file write enable users get data to write depending on call backs registered

+

Call back for acquisition finished callback argument is total frames caught

+

Call back for raw data args to raw data ready callback are frameNumber is the frame number expLength is the subframe number (32 bit eiger) or real time exposure time in 100ns (others) packetNumber is the packet number bunchId is the bunch id from beamline timestamp is the time stamp with 10 MHz clock modId is the unique module id (unique even for left, right, top, bottom) xCoord is the x coordinate in the complete detector system yCoord is the y coordinate in the complete detector system zCoord is the z coordinate in the complete detector system debug is for debugging purposes roundRNumber is the round robin set number detType is the detector type see :: detectorType version is the version number of this structure format dataPointer is the pointer to the data dataSize in bytes is the size of the data in bytes

+

+ +

Definition at line 74 of file mainReceiver.cpp.

+ +
+
+ +
+
+ + + + + + + + + +
void sigChildExitedHandler (int  sig ) 
+
+
+ +

Definition at line 32 of file mainReceiver.cpp.

+ +
+
+ +
+
+ + + + + + + + + +
void sigInterruptHandler (int  p ) 
+
+
+ +

Definition at line 39 of file mainReceiver.cpp.

+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int StartAcq (char *  filepath,
char *  filename,
uint64_t  fileindex,
uint32_t  datasize,
void *  p 
)
+
+
+ +

Definition at line 43 of file mainReceiver.cpp.

+ +
+
+

Variable Documentation

+ +
+
+ + + + +
pid_t childPid[NUM_RECEIVERS]
+
+
+ +

Definition at line 26 of file mainReceiver.cpp.

+ +
+
+ +
+
+ + + + +
bool keeprunning
+
+
+ +

Definition at line 27 of file mainReceiver.cpp.

+ +
+
+ +
+
+ + + + +
int numrunning
+
+
+ +

Definition at line 28 of file mainReceiver.cpp.

+ +
+
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp_source.html b/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp_source.html new file mode 100644 index 000000000..a4ac95ee4 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/mainReceiver_8cpp_source.html @@ -0,0 +1,232 @@ + + + + + +mainReceiver.cpp Source File + + + + + + + + + + + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_61.html b/manual/docs/html/slsDetectorUsersDocs/search/all_61.html new file mode 100644 index 000000000..f4efa826f --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_61.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ AcquisitionFinished + mainReceiver.cpp +
+
+
+
+ addFrame + slsDetectorUsers +
+
+
+
+ angles + detectorData +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_63.html b/manual/docs/html/slsDetectorUsersDocs/search/all_63.html new file mode 100644 index 000000000..7244d79a7 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_63.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ childPid + mainReceiver.cpp +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_64.html b/manual/docs/html/slsDetectorUsersDocs/search/all_64.html new file mode 100644 index 000000000..a009f474d --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_64.html @@ -0,0 +1,46 @@ + + + + + + + +
+
Loading...
+
+
+ dataCallback + mainClient.cpp +
+
+ + +
+
+ dumpDetectorSetup + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_65.html b/manual/docs/html/slsDetectorUsersDocs/search/all_65.html new file mode 100644 index 000000000..e17c76f49 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_65.html @@ -0,0 +1,62 @@ + + + + + + + +
+
Loading...
+
+
+ enableAngularConversion + slsDetectorUsers +
+
+
+
+ enableCountRateCorrection + slsDetectorUsers +
+
+
+
+ enableDataStreamingFromReceiver + slsDetectorUsers +
+
+
+
+ enableFlatFieldCorrection + slsDetectorUsers +
+
+
+
+ enablePixelMaskCorrection + slsDetectorUsers +
+
+
+
+ enableWriteToFile + slsDetectorUsers +
+
+
+
+ errors + detectorData +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_66.html b/manual/docs/html/slsDetectorUsersDocs/search/all_66.html new file mode 100644 index 000000000..5cf2b5287 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_66.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ fileName + detectorData +
+
+
+
+ finalizeDataset + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_67.html b/manual/docs/html/slsDetectorUsersDocs/search/all_67.html new file mode 100644 index 000000000..1c989e41a --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_67.html @@ -0,0 +1,164 @@ + + + + + + + +
+
Loading...
+
+
+ getCommand + slsDetectorUsers +
+
+
+
+ GetData + mainReceiver.cpp +
+
+
+
+ getDetectorDeveloper + slsDetectorUsers +
+
+
+
+ getDetectorFirmwareVersion + slsDetectorUsers +
+
+
+
+ getDetectorSerialNumber + slsDetectorUsers +
+
+ +
+
+ getDetectorSize + slsDetectorUsers +
+
+
+
+ getDetectorSoftwareVersion + slsDetectorUsers +
+
+
+
+ getDetectorStatus + slsDetectorUsers +
+
+
+
+ getDetectorType + slsDetectorUsers +
+
+
+
+ getFileIndex + slsDetectorUsers +
+
+
+
+ getFileName + slsDetectorUsers +
+
+
+
+ getFilePath + slsDetectorUsers +
+
+
+
+ getFlatFieldCorrectionDir + slsDetectorUsers +
+
+
+
+ getFlatFieldCorrectionFile + slsDetectorUsers +
+
+
+
+ getMaximumDetectorSize + slsDetectorUsers +
+
+
+
+ getModuleFirmwareVersion + slsDetectorUsers +
+
+
+
+ getModuleSerialNumber + slsDetectorUsers +
+
+
+
+ getPositions + slsDetectorUsers +
+
+
+
+ getReceiverVersion + slsReceiverUsers +
+
+
+
+ getThisSoftwareVersion + slsDetectorUsers +
+
+
+
+ getThresholdEnergy + slsDetectorUsers +
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_69.html b/manual/docs/html/slsDetectorUsersDocs/search/all_69.html new file mode 100644 index 000000000..a7adf2d85 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_69.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ initDataset + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_6b.html b/manual/docs/html/slsDetectorUsersDocs/search/all_6b.html new file mode 100644 index 000000000..01472615a --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_6b.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ keeprunning + mainReceiver.cpp +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_6d.html b/manual/docs/html/slsDetectorUsersDocs/search/all_6d.html new file mode 100644 index 000000000..11042fd7b --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_6d.html @@ -0,0 +1,39 @@ + + + + + + + +
+
Loading...
+ + + +
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_6e.html b/manual/docs/html/slsDetectorUsersDocs/search/all_6e.html new file mode 100644 index 000000000..6ee200907 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_6e.html @@ -0,0 +1,44 @@ + + + + + + + +
+
Loading...
+
+
+ npoints + detectorData +
+
+
+
+ npy + detectorData +
+
+
+
+ NUM_RECEIVERS + mainReceiver.cpp +
+
+
+
+ numrunning + mainReceiver.cpp +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_70.html b/manual/docs/html/slsDetectorUsersDocs/search/all_70.html new file mode 100644 index 000000000..7b6a258e5 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_70.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ PRINT_IN_COLOR + mainReceiver.cpp +
+
+
+
+ progressIndex + detectorData +
+
+
+
+ putCommand + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_72.html b/manual/docs/html/slsDetectorUsersDocs/search/all_72.html new file mode 100644 index 000000000..498276d5d --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_72.html @@ -0,0 +1,116 @@ + + + + + + + +
+
Loading...
+
+
+ readConfigurationFile + slsDetectorUsers +
+
+
+
+ receiver + slsReceiverUsers +
+
+
+
+ registerAcquisitionFinishedCallback + slsDetectorUsers +
+
+
+
+ registerCallBackAcquisitionFinished + slsReceiverUsers +
+
+
+
+ registerCallBackRawDataReady + slsReceiverUsers +
+
+
+
+ registerCallBackStartAcquisition + slsReceiverUsers +
+
+
+
+ registerConnectChannelsCallback + slsDetectorUsers +
+
+
+
+ registerDataCallback + slsDetectorUsers +
+
+
+
+ registerDisconnectChannelsCallback + slsDetectorUsers +
+
+
+
+ registerGetI0Callback + slsDetectorUsers +
+
+
+
+ registerGetPositionCallback + slsDetectorUsers +
+
+
+
+ registerGoToPositionCallback + slsDetectorUsers +
+
+
+
+ registerGoToPositionNoWaitCallback + slsDetectorUsers +
+
+
+
+ registerRawDataCallback + slsDetectorUsers +
+
+
+
+ retrieveDetectorSetup + slsDetectorUsers +
+
+
+
+ runStatusType + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_73.html b/manual/docs/html/slsDetectorUsersDocs/search/all_73.html new file mode 100644 index 000000000..346cf6130 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_73.html @@ -0,0 +1,210 @@ + + + + + + + +
+
Loading...
+
+
+ setBitDepth + slsDetectorUsers +
+
+
+
+ setDelayAfterTrigger + slsDetectorUsers +
+
+
+
+ setDetectorSize + slsDetectorUsers +
+
+
+
+ setExposurePeriod + slsDetectorUsers +
+
+
+
+ setExposureTime + slsDetectorUsers +
+
+
+
+ setFileIndex + slsDetectorUsers +
+
+
+
+ setFileName + slsDetectorUsers +
+
+
+
+ setFilePath + slsDetectorUsers +
+
+
+
+ setFlatFieldCorrectionDir + slsDetectorUsers +
+
+
+
+ setFlatFieldCorrectionFile + slsDetectorUsers +
+
+
+
+ setNumberOfCycles + slsDetectorUsers +
+
+
+
+ setNumberOfFrames + slsDetectorUsers +
+
+
+
+ setNumberOfGates + slsDetectorUsers +
+
+
+
+ setOnline + slsDetectorUsers +
+
+
+
+ setPositions + slsDetectorUsers +
+
+
+
+ setReceiverMode + slsDetectorUsers +
+
+
+
+ setSettings + slsDetectorUsers +
+
+
+
+ setThresholdEnergy + slsDetectorUsers +
+
+
+
+ setTimingMode + slsDetectorUsers +
+
+
+
+ sigChildExitedHandler + mainReceiver.cpp +
+
+
+
+ sigInterruptHandler + mainReceiver.cpp +
+
+ + + + +
+
+ start + slsReceiverUsers +
+
+
+
+ START_TCP_PORT + mainReceiver.cpp +
+
+
+
+ StartAcq + mainReceiver.cpp +
+
+
+
+ startMeasurement + slsDetectorUsers +
+
+
+
+ stop + slsReceiverUsers +
+
+
+
+ stopMeasurement + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_76.html b/manual/docs/html/slsDetectorUsersDocs/search/all_76.html new file mode 100644 index 000000000..05a658757 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_76.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ values + detectorData +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/all_7e.html b/manual/docs/html/slsDetectorUsersDocs/search/all_7e.html new file mode 100644 index 000000000..5e3404eff --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/all_7e.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ ~detectorData + detectorData +
+
+
+
+ ~slsDetectorUsers + slsDetectorUsers +
+
+
+
+ ~slsReceiverUsers + slsReceiverUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/classes_64.html b/manual/docs/html/slsDetectorUsersDocs/search/classes_64.html new file mode 100644 index 000000000..d669f7d23 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/classes_64.html @@ -0,0 +1,25 @@ + + + + + + + +
+
Loading...
+
+ +
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/classes_73.html b/manual/docs/html/slsDetectorUsersDocs/search/classes_73.html new file mode 100644 index 000000000..32688c5c4 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/classes_73.html @@ -0,0 +1,30 @@ + + + + + + + +
+
Loading...
+ + +
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/close.png b/manual/docs/html/slsDetectorUsersDocs/search/close.png new file mode 100644 index 000000000..9342d3dfe Binary files /dev/null and b/manual/docs/html/slsDetectorUsersDocs/search/close.png differ diff --git a/manual/docs/html/slsDetectorUsersDocs/search/defines_6e.html b/manual/docs/html/slsDetectorUsersDocs/search/defines_6e.html new file mode 100644 index 000000000..f533beed8 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/defines_6e.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ NUM_RECEIVERS + mainReceiver.cpp +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/defines_70.html b/manual/docs/html/slsDetectorUsersDocs/search/defines_70.html new file mode 100644 index 000000000..e1940c742 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/defines_70.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ PRINT_IN_COLOR + mainReceiver.cpp +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/defines_73.html b/manual/docs/html/slsDetectorUsersDocs/search/defines_73.html new file mode 100644 index 000000000..044f7b10f --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/defines_73.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ START_TCP_PORT + mainReceiver.cpp +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/files_64.html b/manual/docs/html/slsDetectorUsersDocs/search/files_64.html new file mode 100644 index 000000000..95c4287a4 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/files_64.html @@ -0,0 +1,25 @@ + + + + + + + +
+
Loading...
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/files_6d.html b/manual/docs/html/slsDetectorUsersDocs/search/files_6d.html new file mode 100644 index 000000000..e6a9d9453 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/files_6d.html @@ -0,0 +1,30 @@ + + + + + + + +
+
Loading...
+ + +
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/files_73.html b/manual/docs/html/slsDetectorUsersDocs/search/files_73.html new file mode 100644 index 000000000..e4a2e2712 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/files_73.html @@ -0,0 +1,30 @@ + + + + + + + +
+
Loading...
+ + +
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_61.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_61.html new file mode 100644 index 000000000..316e50454 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_61.html @@ -0,0 +1,32 @@ + + + + + + + +
+
Loading...
+
+
+ AcquisitionFinished + mainReceiver.cpp +
+
+
+
+ addFrame + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_64.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_64.html new file mode 100644 index 000000000..750b6dbdc --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_64.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ dataCallback + mainClient.cpp +
+
+
+
+ detectorData + detectorData +
+
+
+
+ dumpDetectorSetup + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_65.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_65.html new file mode 100644 index 000000000..c14de8710 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_65.html @@ -0,0 +1,56 @@ + + + + + + + +
+
Loading...
+
+
+ enableAngularConversion + slsDetectorUsers +
+
+
+
+ enableCountRateCorrection + slsDetectorUsers +
+
+
+
+ enableDataStreamingFromReceiver + slsDetectorUsers +
+
+
+
+ enableFlatFieldCorrection + slsDetectorUsers +
+
+
+
+ enablePixelMaskCorrection + slsDetectorUsers +
+
+
+
+ enableWriteToFile + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_66.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_66.html new file mode 100644 index 000000000..5f1a59a29 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_66.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ finalizeDataset + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_67.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_67.html new file mode 100644 index 000000000..1c989e41a --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_67.html @@ -0,0 +1,164 @@ + + + + + + + +
+
Loading...
+
+
+ getCommand + slsDetectorUsers +
+
+
+
+ GetData + mainReceiver.cpp +
+
+
+
+ getDetectorDeveloper + slsDetectorUsers +
+
+
+
+ getDetectorFirmwareVersion + slsDetectorUsers +
+
+
+
+ getDetectorSerialNumber + slsDetectorUsers +
+
+ +
+
+ getDetectorSize + slsDetectorUsers +
+
+
+
+ getDetectorSoftwareVersion + slsDetectorUsers +
+
+
+
+ getDetectorStatus + slsDetectorUsers +
+
+
+
+ getDetectorType + slsDetectorUsers +
+
+
+
+ getFileIndex + slsDetectorUsers +
+
+
+
+ getFileName + slsDetectorUsers +
+
+
+
+ getFilePath + slsDetectorUsers +
+
+
+
+ getFlatFieldCorrectionDir + slsDetectorUsers +
+
+
+
+ getFlatFieldCorrectionFile + slsDetectorUsers +
+
+
+
+ getMaximumDetectorSize + slsDetectorUsers +
+
+
+
+ getModuleFirmwareVersion + slsDetectorUsers +
+
+
+
+ getModuleSerialNumber + slsDetectorUsers +
+
+
+
+ getPositions + slsDetectorUsers +
+
+
+
+ getReceiverVersion + slsReceiverUsers +
+
+
+
+ getThisSoftwareVersion + slsDetectorUsers +
+
+
+
+ getThresholdEnergy + slsDetectorUsers +
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_69.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_69.html new file mode 100644 index 000000000..a7adf2d85 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_69.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ initDataset + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_6d.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_6d.html new file mode 100644 index 000000000..8f08eeacf --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_6d.html @@ -0,0 +1,29 @@ + + + + + + + +
+
Loading...
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_70.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_70.html new file mode 100644 index 000000000..fab3fdc4d --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_70.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ putCommand + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_72.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_72.html new file mode 100644 index 000000000..f5a7afed9 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_72.html @@ -0,0 +1,110 @@ + + + + + + + +
+
Loading...
+
+
+ readConfigurationFile + slsDetectorUsers +
+
+
+
+ registerAcquisitionFinishedCallback + slsDetectorUsers +
+
+
+
+ registerCallBackAcquisitionFinished + slsReceiverUsers +
+
+
+
+ registerCallBackRawDataReady + slsReceiverUsers +
+
+
+
+ registerCallBackStartAcquisition + slsReceiverUsers +
+
+
+
+ registerConnectChannelsCallback + slsDetectorUsers +
+
+
+
+ registerDataCallback + slsDetectorUsers +
+
+
+
+ registerDisconnectChannelsCallback + slsDetectorUsers +
+
+
+
+ registerGetI0Callback + slsDetectorUsers +
+
+
+
+ registerGetPositionCallback + slsDetectorUsers +
+
+
+
+ registerGoToPositionCallback + slsDetectorUsers +
+
+
+
+ registerGoToPositionNoWaitCallback + slsDetectorUsers +
+
+
+
+ registerRawDataCallback + slsDetectorUsers +
+
+
+
+ retrieveDetectorSetup + slsDetectorUsers +
+
+
+
+ runStatusType + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_73.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_73.html new file mode 100644 index 000000000..50394de4c --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_73.html @@ -0,0 +1,188 @@ + + + + + + + +
+
Loading...
+
+
+ setBitDepth + slsDetectorUsers +
+
+
+
+ setDelayAfterTrigger + slsDetectorUsers +
+
+
+
+ setDetectorSize + slsDetectorUsers +
+
+
+
+ setExposurePeriod + slsDetectorUsers +
+
+
+
+ setExposureTime + slsDetectorUsers +
+
+
+
+ setFileIndex + slsDetectorUsers +
+
+
+
+ setFileName + slsDetectorUsers +
+
+
+
+ setFilePath + slsDetectorUsers +
+
+
+
+ setFlatFieldCorrectionDir + slsDetectorUsers +
+
+
+
+ setFlatFieldCorrectionFile + slsDetectorUsers +
+
+
+
+ setNumberOfCycles + slsDetectorUsers +
+
+
+
+ setNumberOfFrames + slsDetectorUsers +
+
+
+
+ setNumberOfGates + slsDetectorUsers +
+
+
+
+ setOnline + slsDetectorUsers +
+
+
+
+ setPositions + slsDetectorUsers +
+
+
+
+ setReceiverMode + slsDetectorUsers +
+
+
+
+ setSettings + slsDetectorUsers +
+
+
+
+ setThresholdEnergy + slsDetectorUsers +
+
+
+
+ setTimingMode + slsDetectorUsers +
+
+
+
+ sigChildExitedHandler + mainReceiver.cpp +
+
+
+
+ sigInterruptHandler + mainReceiver.cpp +
+
+
+
+ slsDetectorUsers + slsDetectorUsers +
+
+
+
+ slsReceiverUsers + slsReceiverUsers +
+
+
+
+ start + slsReceiverUsers +
+
+
+
+ StartAcq + mainReceiver.cpp +
+
+
+
+ startMeasurement + slsDetectorUsers +
+
+
+
+ stop + slsReceiverUsers +
+
+
+
+ stopMeasurement + slsDetectorUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/functions_7e.html b/manual/docs/html/slsDetectorUsersDocs/search/functions_7e.html new file mode 100644 index 000000000..5e3404eff --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/functions_7e.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ ~detectorData + detectorData +
+
+
+
+ ~slsDetectorUsers + slsDetectorUsers +
+
+
+
+ ~slsReceiverUsers + slsReceiverUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/nomatches.html b/manual/docs/html/slsDetectorUsersDocs/search/nomatches.html new file mode 100644 index 000000000..b1ded27e9 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/search.css b/manual/docs/html/slsDetectorUsersDocs/search/search.css new file mode 100644 index 000000000..d263b9724 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/search.css @@ -0,0 +1,198 @@ +/*---------------- Search Box */ + +#MSearchBox { + padding: 0px; + margin: 0px; + border: none; + border: 1px solid #84B0C7; + white-space: nowrap; + -moz-border-radius: 8px; + -webkit-border-top-left-radius: 8px; + -webkit-border-top-right-radius: 8px; + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; +} +#MSearchField { + font: 9pt Arial, Verdana, sans-serif; + color: #999999; + background-color: #FFFFFF; + font-style: normal; + cursor: text; + padding: 1px 1px; + margin: 0px 6px 0px 0px; + border: none; + outline: none; + vertical-align: middle; +} +.MSearchBoxActive #MSearchField { + color: #000000; +} +#MSearchSelect { + float : none; + display : inline; + background : none; + font: 9pt Verdana, sans-serif; + border: none; + margin: 0px 0px 0px 6px; + vertical-align: middle; + padding: 0px 0px; +} + +#MSearchClose { + float : none; + display : none; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +#MSearchCloseImg { + vertical-align: middle; +} + +.MSearchBoxLeft { + display: block; + text-align: left; + float: left; + margin-left: 6px; +} +.MSearchBoxRight { + display: block; + float: right; + text-align: right; + margin-right: 6px; +} +.MSearchBoxSpacer { + font-size: 0px; + clear: both; +} +.MSearchBoxRow { + font-size: 0px; + clear: both; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #A0A0A0; + background-color: #FAFAFA; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + } +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} +a.SelectItem:hover { + color: #FFFFFF; + background-color: #2A50E4; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; + } +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000000; + background-color: #EEF3F5; + } + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} +.SRPage .SRChildren { + display: none; +} +.SRSymbol { + font-weight: bold; color: #153788; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #153788; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/search.js b/manual/docs/html/slsDetectorUsersDocs/search/search.js new file mode 100644 index 000000000..9f8c1240f --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/search.js @@ -0,0 +1,736 @@ +// Search script generated by doxygen +// Copyright (C) 2009 by Dimitri van Heesch. + +// The code in this file is loosly based on main.js, part of Natural Docs, +// which is Copyright (C) 2003-2008 Greg Valure +// Natural Docs is licensed under the GPL. + +var indexSectionsWithContent = +{ + 0: "000000000000000000000000000000000000000000000000000000000000000001011111010101101011001000000010", + 1: "000000000000000000000000000000000000000000000000000000000000000000001000000000000001000000000000", + 2: "000000000000000000000000000000000000000000000000000000000000000000001000000001000001000000000000", + 3: "000000000000000000000000000000000000000000000000000000000000000001001111010001001011000000000010", + 4: "000000000000000000000000000000000000000000000000000000000000000001010110000100101010001000000000", + 5: "000000000000000000000000000000000000000000000000000000000000000000000000000000101001000000000000" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "defines" +}; + +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var hexCode; + if (code<16) + { + hexCode="0"+code.toString(16); + } + else + { + hexCode=code.toString(16); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + if (indexSectionsWithContent[this.searchIndex].charAt(code-32) == '1') + { + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location.href = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} diff --git a/manual/docs/html/slsDetectorUsersDocs/search/search.png b/manual/docs/html/slsDetectorUsersDocs/search/search.png new file mode 100644 index 000000000..9dd2396db Binary files /dev/null and b/manual/docs/html/slsDetectorUsersDocs/search/search.png differ diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_61.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_61.html new file mode 100644 index 000000000..1ed70dee0 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_61.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ angles + detectorData +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_63.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_63.html new file mode 100644 index 000000000..7244d79a7 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_63.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ childPid + mainReceiver.cpp +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_65.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_65.html new file mode 100644 index 000000000..9a022ad1b --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_65.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ errors + detectorData +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_66.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_66.html new file mode 100644 index 000000000..a86fadcce --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_66.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ fileName + detectorData +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_6b.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_6b.html new file mode 100644 index 000000000..01472615a --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_6b.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ keeprunning + mainReceiver.cpp +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_6e.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_6e.html new file mode 100644 index 000000000..cd02b4b42 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_6e.html @@ -0,0 +1,38 @@ + + + + + + + +
+
Loading...
+
+
+ npoints + detectorData +
+
+
+
+ npy + detectorData +
+
+
+
+ numrunning + mainReceiver.cpp +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_70.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_70.html new file mode 100644 index 000000000..ccc90f5d4 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_70.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ progressIndex + detectorData +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_72.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_72.html new file mode 100644 index 000000000..ed0f1849e --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_72.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ receiver + slsReceiverUsers +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/search/variables_76.html b/manual/docs/html/slsDetectorUsersDocs/search/variables_76.html new file mode 100644 index 000000000..05a658757 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/search/variables_76.html @@ -0,0 +1,26 @@ + + + + + + + +
+
Loading...
+
+
+ values + detectorData +
+
+
Searching...
+
No Matches
+ +
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h.html b/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h.html new file mode 100644 index 000000000..1142beb75 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h.html @@ -0,0 +1,74 @@ + + + + + +slsDetectorUsers.h File Reference + + + + + + + + + +
+

slsDetectorUsers.h File Reference

#include <stdint.h>
+#include <string>
+ +

Go to the source code of this file.

+ + + + +

Classes

class  slsDetectorUsers
 Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc. More...
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h_source.html b/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h_source.html new file mode 100644 index 000000000..795f3879c --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/slsDetectorUsers_8h_source.html @@ -0,0 +1,297 @@ + + + + + +slsDetectorUsers.h Source File + + + + + + + + + + + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h.html b/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h.html new file mode 100644 index 000000000..0dbee53e7 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h.html @@ -0,0 +1,74 @@ + + + + + +slsReceiverUsers.h File Reference + + + + + + + + + +
+

slsReceiverUsers.h File Reference

#include <stdio.h>
+#include <stdint.h>
+ +

Go to the source code of this file.

+ + + + +

Classes

class  slsReceiverUsers
 Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data. More...
+
+ + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h_source.html b/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h_source.html new file mode 100644 index 000000000..730e8fa11 --- /dev/null +++ b/manual/docs/html/slsDetectorUsersDocs/slsReceiverUsers_8h_source.html @@ -0,0 +1,100 @@ + + + + + +slsReceiverUsers.h Source File + + + + + + + + + + + + + +
+ +
+ +
Generated on 22 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/tab_b.gif b/manual/docs/html/slsDetectorUsersDocs/tab_b.gif similarity index 100% rename from manual/slsDetectorClientDocs/html/tab_b.gif rename to manual/docs/html/slsDetectorUsersDocs/tab_b.gif diff --git a/manual/slsDetectorClientDocs/html/tab_l.gif b/manual/docs/html/slsDetectorUsersDocs/tab_l.gif similarity index 100% rename from manual/slsDetectorClientDocs/html/tab_l.gif rename to manual/docs/html/slsDetectorUsersDocs/tab_l.gif diff --git a/manual/slsDetectorClientDocs/html/tab_r.gif b/manual/docs/html/slsDetectorUsersDocs/tab_r.gif similarity index 100% rename from manual/slsDetectorClientDocs/html/tab_r.gif rename to manual/docs/html/slsDetectorUsersDocs/tab_r.gif diff --git a/manual/manual-api/slsDetectorUsersDocs/html/tabs.css b/manual/docs/html/slsDetectorUsersDocs/tabs.css similarity index 88% rename from manual/manual-api/slsDetectorUsersDocs/html/tabs.css rename to manual/docs/html/slsDetectorUsersDocs/tabs.css index a61552a67..a44416341 100644 --- a/manual/manual-api/slsDetectorUsersDocs/html/tabs.css +++ b/manual/docs/html/slsDetectorUsersDocs/tabs.css @@ -32,7 +32,7 @@ DIV.tabs A float : left; background : url("tab_r.gif") no-repeat right top; border-bottom : 1px solid #84B0C7; - font-size : x-small; + font-size : 80%; font-weight : bold; text-decoration : none; } @@ -57,7 +57,7 @@ DIV.tabs SPAN white-space : nowrap; } -DIV.tabs INPUT +DIV.tabs #MSearchBox { float : right; display : inline; @@ -66,7 +66,7 @@ DIV.tabs INPUT DIV.tabs TD { - font-size : x-small; + font-size : 80%; font-weight : bold; text-decoration : none; } @@ -82,21 +82,24 @@ DIV.tabs A:hover SPAN background-position: 0% -150px; } -DIV.tabs LI#current A +DIV.tabs LI.current A { background-position: 100% -150px; border-width : 0px; } -DIV.tabs LI#current SPAN +DIV.tabs LI.current SPAN { background-position: 0% -150px; padding-bottom : 6px; } -DIV.nav +DIV.navpath { background : none; border : none; border-bottom : 1px solid #84B0C7; + text-align : center; + margin : 2px; + padding : 2px; } diff --git a/manual/docs/html/slsDetectors-FAQ/WARNINGS b/manual/docs/html/slsDetectors-FAQ/WARNINGS new file mode 100644 index 000000000..4ea2dda68 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/WARNINGS @@ -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 diff --git a/manual/docs/html/slsDetectors-FAQ/footnode.html b/manual/docs/html/slsDetectors-FAQ/footnode.html new file mode 100644 index 000000000..a874b9474 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/footnode.html @@ -0,0 +1,103 @@ + + + + + +Footnotes + + + + + + + + + + + + + + + + +
+
... tab 2.1
+
The default name of the calibrated trimfiles is trimbits/beamline/settings/noise.snxxx where settings is the chosen settings. You can change it in src/qDetector.h and then recompile the acquisition program as described in [*]. + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
....snxxx 2.2
+
The default name of the calibration file calibration/settings.snxxx where settings is the chosen settings. You can change it in src/qDetector.h and then recompile the acquisition program. + +
.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+
+
+
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/images.pl b/manual/docs/html/slsDetectors-FAQ/images.pl new file mode 100644 index 000000000..81701e712 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/images.pl @@ -0,0 +1,232 @@ +# LaTeX2HTML 2008 (1.71) +# Associate images original text with physical files. + + +$key = q/includegraphics[width=textwidth]{imagesslashtrimbitdistribution};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/trimbitdistribution}|; + +$key = q/E_f|; + +$key = q/E_t|; + +$key = q/(108602&0xFFFFFFFE)>>1=54301;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ (108602\&0xFFFFFFFE)»1 = 54301$|; + +$key = q/includegraphics[width=textwidth]{multi_detector};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{multi_detector}|; + +$key = q/Vthreshold=7;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ Vthreshold=7$|; + +$key = q/includegraphics[width=textwidth]{imagesslashro_trigger_acquisition.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/ro_trigger_acquisition.eps}|; + +$key = q/E_t>4;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ E_t>4$|; + +$key = q/(108602&0x1)=0;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ (108602\&0x1) =0$|; + +$key = q/E_t;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ E_t$|; + +$key = q/includegraphics[width=textwidth]{imagesslashtrimbitplot};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/trimbitplot}|; + +$key = q/{displaymath}textrm{textbf{MEASUREMENTS}}leftUpdownarrow,{array}{l}%textrm{Measuightarrow,textrm{Stopscript}{array}%right.{array}right.{displaymath};MSF=1.6;AAT/; +$cached_env_img{$key} = q|\begin{displaymath}\textrm{\textbf{MEASUREMENTS}} \\\\
+\left\Updownarrow  
+\be...
+...
+\\\\
+\end{array}
+% \right. \\\\
+\\\\
+\end{array}
+\right.
+\end{displaymath}|; + +$key = q/includegraphics[width=textwidth]{imagesslashbad_ff_col};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/bad_ff_col}|; + +$key = q/includegraphics[width=textwidth]{data_receiver};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{data_receiver}|; + +$key = q/Resolution=4;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ Resolution=4$|; + +$key = q/E_0;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ E_0$|; + +$key = q/pm;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ \pm$|; + +$key = q/Counts=500;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ Counts=500$|; + +$key = q/includegraphics[width=textwidth]{imagesslashtrigger_acquisition.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/trigger_acquisition.eps}|; + +$key = q/E_f;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ E_f$|; + +$key = q/E_t|; + +$key = q/includegraphics[width=textwidth]{imagesslashnormal_acquisition.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/normal_acquisition.eps}|; + +$key = q/E_t=E_0slash2;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ E_t=E_0/2$|; + +$key = q/includegraphics[width=textwidth]{imagesslashnoise_thresholdscantrimmed};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/noise_thresholdscantrimmed}|; + +$key = q/Updownarrow;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ \Updownarrow$|; + +$key = q/includegraphics[width=textwidth]{imagesslashgated_acquisition.eps};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/gated_acquisition.eps}|; + +$key = q/Rightarrow;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ \Rightarrow$|; + +$key = q/cdot;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ \cdot$|; + +$key = q/d;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ d$|; + +$key = q/includegraphics[width=textwidth]{imagesslashFFSetup};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/FFSetup}|; + +$key = q/includegraphics[width=textwidth]{imagesslashthr_scan_fluo};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/thr_scan_fluo}|; + +$key = q/includegraphics[width=textwidth]{imagesslashthr_scan_expl};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/thr_scan_expl}|; + +$key = q/includegraphics[width=textwidth]{imagesslashsample_with_fluorescence};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/sample_with_fluorescence}|; + +$key = q/includegraphics[width=textwidth]{imagesslashsettings};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/settings}|; + +$key = q/includegraphics[width=textwidth]{imagesslashnoise_thresholdscanuntrimmed};AAT/; +$cached_env_img{$key} = q|\includegraphics[width=\textwidth]{images/noise_thresholdscanuntrimmed}|; + +$key = q/E_t>E_f+3;MSF=1.6;AAT/; +$cached_env_img{$key} = q|$ E_t>E_f+3$|; + +1; + diff --git a/manual/docs/html/slsDetectors-FAQ/images.tex b/manual/docs/html/slsDetectors-FAQ/images.tex new file mode 100644 index 000000000..b756e3d51 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/images.tex @@ -0,0 +1,549 @@ +\batchmode +\documentclass{report} +\RequirePackage{ifthen} + + +\usepackage{amssymb} +\usepackage[dvips]{graphicx} +\usepackage{verbatim} +\usepackage{html} + + +\usepackage{amsmath} +\usepackage{latexsym,amssymb} +\usepackage[mathscr]{eucal} +\usepackage{amsthm,amsxtra,amscd,upref} +\usepackage{layout,bm,dcolumn} +\usepackage{graphicx,color} +\usepackage{calc} + + +\usepackage{framed} + +% +\providecommand{\DST}[1]{{\ensuremath{\displaystyle{#1}}}}% +\providecommand{\DSF}[2]{{\ensuremath{\displaystyle{\frac{{\ensuremath{\displaystyle{#1}}}}{{\ensuremath{\displaystyle{#2}}}}}}}} + +% +\providecommand{\vk}[1]{{\ensuremath{\underline{\bm{#1}}}}}% +\providecommand{\mx}[1]{{\ensuremath{\bm{\mathsf{#1}}}}}% +\providecommand{\lrb}[1]{{\ensuremath{\left({#1}\right)}}}% +\providecommand{\lrs}[1]{{\ensuremath{\left[{#1}\right]}}}% +\providecommand{\lrc}[1]{{\ensuremath{\left\{{#1}\right\}}}}% +\providecommand{\lrv}[1]{{\ensuremath{\left|{#1}\right|}}} + +% +\providecommand{\hell}{{\ensuremath{\hat{\jmath}}}}% +\providecommand{\zell}{{\ensuremath{\mathfrak{z}}}}% +\providecommand{\vM}{{\ensuremath{{\ensuremath{\underline{\bm{M}}}}}}}% +\providecommand{\vr}{{\ensuremath{{\ensuremath{\underline{\bm{r}}}}}}}% +\providecommand{\vq}{{\ensuremath{{\ensuremath{\underline{\bm{q}}}}}}}% +\providecommand{\vh}{{\ensuremath{{\ensuremath{\underline{\bm{h}}}}}}}% +\providecommand{\vkx}{{\ensuremath{{\ensuremath{\underline{\bm{x}}}}}}}% +\providecommand{\vkxt}{{\ensuremath{{\ensuremath{\underline{\bm{x}}}}^t}}}% +\providecommand{\vky}{{\ensuremath{{\ensuremath{\underline{\bm{y}}}}}}}% +\providecommand{\vkyt}{{\ensuremath{{\ensuremath{\underline{\bm{y}}}}^t}}} + +% +\providecommand{\vri}[1]{{\ensuremath{{\ensuremath{\underline{\bm{r}}}}_{#1}}}}% +\providecommand{\vrr}{{\ensuremath{{\ensuremath{\underline{\bm{r}}}}}}}% +\providecommand{\vqi}[1]{{\ensuremath{{\ensuremath{\underline{\bm{q}}}}_{#1}}}}% +\providecommand{\vqr}{{\ensuremath{{\ensuremath{\underline{\bm{q}}}}}}}% +\providecommand{\vhi}[1]{{\ensuremath{{\ensuremath{\underline{\bm{h}}}}_{#1}}}}% +\providecommand{\vhr}{{\ensuremath{{\ensuremath{\underline{\bm{h}}}}}}}% +\providecommand{\IMA}{{\ensuremath{\mathrm{i}}}}% +\providecommand{\EE}{{\ensuremath{\mathrm{e}}}}% +\providecommand{\half}{{\ensuremath{\frac{1}{2}}}} + +% +\providecommand{\deltax}{{\ensuremath{\rho\cos(\beta)}}}% +\providecommand{\deltay}{{\ensuremath{\rho\sin(\beta)}}}% +\providecommand{\deltaz}{{\ensuremath{\delta_{z}}}}% +\providecommand{\deltazs}{{\ensuremath{\widehat{{\ensuremath{\delta_{z}}}}}}}% +\providecommand{\DD}[1]{{\ensuremath{\mathrm{d}{#1}\, }}}% +\providecommand{\DDD}[2]{{\ensuremath{\mathrm{d}^{#1}{#2}\, }}} + +% +\providecommand{\haf}{{\ensuremath{\scriptstyle{\frac{1}{2}}}}}% +\providecommand{\unt}{{\ensuremath{\scriptstyle{\frac{1}{3}}}}}% +\providecommand{\dut}{{\ensuremath{\scriptstyle{\frac{2}{3}}}}}% +\providecommand{\xref}[1]{(\ref{#1})}% +\providecommand{\eref}[1]{Eq.~(\ref{#1})}% +\providecommand{\Beref}[1]{{\textcolor[rgb]{0,0,1}{Eq.~(\ref{#1})}}}% +\providecommand{\eeref}[2]{Eqs.~(\ref{#1},\ref{#2})}% +\providecommand{\eeeref}[3]{Eqs.~(\ref{#1},\ref{#2},\ref{#3})}% +\providecommand{\aref}[1]{Appendix~\ref{#1}}% +\providecommand{\sref}[1]{Sec.~\ref{#1}}% +\providecommand{\cref}[1]{Chap.~\ref{#1}}% +\providecommand{\tref}[1]{Tab.~\ref{#1}}% +\providecommand{\fref}[1]{Fig.~\ref{#1}}% +\providecommand{\Rref}[1]{Ref.~\cite{#1}}% +\providecommand{\degC}{{\ensuremath{{}^{\mathrm{o}}}}} + +% +\providecommand{\TT}{{\ensuremath{{2\theta}}}}% +\providecommand{\TTz}{{\ensuremath{{{{\ensuremath{{2\theta}}}}_{0}}}}}% +\providecommand{\TTe}{{\ensuremath{{{{\ensuremath{{2\theta}}}}_{e}}}}}% +\providecommand{\TTB}{{\ensuremath{{{{\ensuremath{{2\theta}}}}_{B}}}}} + + + + + +\pagecolor[gray]{.7} + +\usepackage[]{inputenc} + + + +\makeatletter + +\makeatletter +\count@=\the\catcode`\_ \catcode`\_=8 +\newenvironment{tex2html_wrap}{}{}% +\catcode`\<=12\catcode`\_=\count@ +\newcommand{\providedcommand}[1]{\expandafter\providecommand\csname #1\endcsname}% +\newcommand{\renewedcommand}[1]{\expandafter\providecommand\csname #1\endcsname{}% + \expandafter\renewcommand\csname #1\endcsname}% +\newcommand{\newedenvironment}[1]{\newenvironment{#1}{}{}\renewenvironment{#1}}% +\let\newedcommand\renewedcommand +\let\renewedenvironment\newedenvironment +\makeatother +\let\mathon=$ +\let\mathoff=$ +\ifx\AtBeginDocument\undefined \newcommand{\AtBeginDocument}[1]{}\fi +\newbox\sizebox +\setlength{\hoffset}{0pt}\setlength{\voffset}{0pt} +\addtolength{\textheight}{\footskip}\setlength{\footskip}{0pt} +\addtolength{\textheight}{\topmargin}\setlength{\topmargin}{0pt} +\addtolength{\textheight}{\headheight}\setlength{\headheight}{0pt} +\addtolength{\textheight}{\headsep}\setlength{\headsep}{0pt} +\setlength{\textwidth}{349pt} +\newwrite\lthtmlwrite +\makeatletter +\let\realnormalsize=\normalsize +\global\topskip=2sp +\def\preveqno{}\let\real@float=\@float \let\realend@float=\end@float +\def\@float{\let\@savefreelist\@freelist\real@float} +\def\liih@math{\ifmmode$\else\bad@math\fi} +\def\end@float{\realend@float\global\let\@freelist\@savefreelist} +\let\real@dbflt=\@dbflt \let\end@dblfloat=\end@float +\let\@largefloatcheck=\relax +\let\if@boxedmulticols=\iftrue +\def\@dbflt{\let\@savefreelist\@freelist\real@dbflt} +\def\adjustnormalsize{\def\normalsize{\mathsurround=0pt \realnormalsize + \parindent=0pt\abovedisplayskip=0pt\belowdisplayskip=0pt}% + \def\phantompar{\csname par\endcsname}\normalsize}% +\def\lthtmltypeout#1{{\let\protect\string \immediate\write\lthtmlwrite{#1}}}% +\newcommand\lthtmlhboxmathA{\adjustnormalsize\setbox\sizebox=\hbox\bgroup\kern.05em }% +\newcommand\lthtmlhboxmathB{\adjustnormalsize\setbox\sizebox=\hbox to\hsize\bgroup\hfill }% +\newcommand\lthtmlvboxmathA{\adjustnormalsize\setbox\sizebox=\vbox\bgroup % + \let\ifinner=\iffalse \let\)\liih@math }% +\newcommand\lthtmlboxmathZ{\@next\next\@currlist{}{\def\next{\voidb@x}}% + \expandafter\box\next\egroup}% +\newcommand\lthtmlmathtype[1]{\gdef\lthtmlmathenv{#1}}% +\newcommand\lthtmllogmath{\dimen0\ht\sizebox \advance\dimen0\dp\sizebox + \ifdim\dimen0>.95\vsize + \lthtmltypeout{% +*** image for \lthtmlmathenv\space is too tall at \the\dimen0, reducing to .95 vsize ***}% + \ht\sizebox.95\vsize \dp\sizebox\z@ \fi + \lthtmltypeout{l2hSize % +:\lthtmlmathenv:\the\ht\sizebox::\the\dp\sizebox::\the\wd\sizebox.\preveqno}}% +\newcommand\lthtmlfigureA[1]{\let\@savefreelist\@freelist + \lthtmlmathtype{#1}\lthtmlvboxmathA}% +\newcommand\lthtmlpictureA{\bgroup\catcode`\_=8 \lthtmlpictureB}% +\newcommand\lthtmlpictureB[1]{\lthtmlmathtype{#1}\egroup + \let\@savefreelist\@freelist \lthtmlhboxmathB}% +\newcommand\lthtmlpictureZ[1]{\hfill\lthtmlfigureZ}% +\newcommand\lthtmlfigureZ{\lthtmlboxmathZ\lthtmllogmath\copy\sizebox + \global\let\@freelist\@savefreelist}% +\newcommand\lthtmldisplayA{\bgroup\catcode`\_=8 \lthtmldisplayAi}% +\newcommand\lthtmldisplayAi[1]{\lthtmlmathtype{#1}\egroup\lthtmlvboxmathA}% +\newcommand\lthtmldisplayB[1]{\edef\preveqno{(\theequation)}% + \lthtmldisplayA{#1}\let\@eqnnum\relax}% +\newcommand\lthtmldisplayZ{\lthtmlboxmathZ\lthtmllogmath\lthtmlsetmath}% +\newcommand\lthtmlinlinemathA{\bgroup\catcode`\_=8 \lthtmlinlinemathB} +\newcommand\lthtmlinlinemathB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA + \vrule height1.5ex width0pt }% +\newcommand\lthtmlinlineA{\bgroup\catcode`\_=8 \lthtmlinlineB}% +\newcommand\lthtmlinlineB[1]{\lthtmlmathtype{#1}\egroup\lthtmlhboxmathA}% +\newcommand\lthtmlinlineZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % + \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetinline} +\newcommand\lthtmlinlinemathZ{\egroup\expandafter\ifdim\dp\sizebox>0pt % + \expandafter\centerinlinemath\fi\lthtmllogmath\lthtmlsetmath} +\newcommand\lthtmlindisplaymathZ{\egroup % + \centerinlinemath\lthtmllogmath\lthtmlsetmath} +\def\lthtmlsetinline{\hbox{\vrule width.1em \vtop{\vbox{% + \kern.1em\copy\sizebox}\ifdim\dp\sizebox>0pt\kern.1em\else\kern.3pt\fi + \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} +\def\lthtmlsetmath{\hbox{\vrule width.1em\kern-.05em\vtop{\vbox{% + \kern.1em\kern0.8 pt\hbox{\hglue.17em\copy\sizebox\hglue0.8 pt}}\kern.3pt% + \ifdim\dp\sizebox>0pt\kern.1em\fi \kern0.8 pt% + \ifdim\hsize>\wd\sizebox \hrule depth1pt\fi}}} +\def\centerinlinemath{% + \dimen1=\ifdim\ht\sizebox<\dp\sizebox \dp\sizebox\else\ht\sizebox\fi + \advance\dimen1by.5pt \vrule width0pt height\dimen1 depth\dimen1 + \dp\sizebox=\dimen1\ht\sizebox=\dimen1\relax} + +\def\lthtmlcheckvsize{\ifdim\ht\sizebox<\vsize + \ifdim\wd\sizebox<\hsize\expandafter\hfill\fi \expandafter\vfill + \else\expandafter\vss\fi}% +\providecommand{\selectlanguage}[1]{}% +\makeatletter \tracingstats = 1 +\providecommand{\Beta}{\textrm{B}} +\providecommand{\Mu}{\textrm{M}} +\providecommand{\Kappa}{\textrm{K}} +\providecommand{\Rho}{\textrm{R}} +\providecommand{\Epsilon}{\textrm{E}} +\providecommand{\Chi}{\textrm{X}} +\providecommand{\Iota}{\textrm{J}} +\providecommand{\omicron}{\textrm{o}} +\providecommand{\Zeta}{\textrm{Z}} +\providecommand{\Eta}{\textrm{H}} +\providecommand{\Nu}{\textrm{N}} +\providecommand{\Omicron}{\textrm{O}} +\providecommand{\Tau}{\textrm{T}} +\providecommand{\Alpha}{\textrm{A}} + + +\begin{document} +\pagestyle{empty}\thispagestyle{empty}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength hsize=\the\hsize}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength vsize=\the\vsize}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength hoffset=\the\hoffset}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength voffset=\the\voffset}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength topmargin=\the\topmargin}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength topskip=\the\topskip}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength headheight=\the\headheight}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength headsep=\the\headsep}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength parskip=\the\parskip}\lthtmltypeout{}% +\lthtmltypeout{latex2htmlLength oddsidemargin=\the\oddsidemargin}\lthtmltypeout{}% +\makeatletter +\if@twoside\lthtmltypeout{latex2htmlLength evensidemargin=\the\evensidemargin}% +\else\lthtmltypeout{latex2htmlLength evensidemargin=\the\oddsidemargin}\fi% +\lthtmltypeout{}% +\makeatother +\setcounter{page}{1} +\onecolumn + +% !!! IMAGES START HERE !!! + +\stepcounter{chapter} +\stepcounter{section} +\stepcounter{section} +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2621}% +\includegraphics[width=\textwidth]{multi_detector}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsection} +\stepcounter{section} +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2627}% +\includegraphics[width=\textwidth]{data_receiver}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{section} +\stepcounter{section} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2637}% +$ d$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2640}% +$ \Updownarrow$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2642}% +$ \Rightarrow$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmldisplayA{displaymath2644}% +\begin{displaymath}\textrm{\textbf{MEASUREMENTS}} \\ + \left\Updownarrow \, + \begin{array}{l} \\ + % \textrm{Measurement loop} \\ + \begin{array}{l} %\\ + \Rightarrow \, \textrm{Start script} \\ + \\ +\textrm{\textbf{SCAN0}} + \left\Updownarrow + \, + \begin{array}{l} \\ + \Rightarrow \, \textrm{Scan0 script} \\ + % \textrm{Scan 0 level} \\ + \\ +\par +\textrm{\textbf{SCAN1}} \left\Updownarrow + \, + \begin{array}{l} \\ + % \textrm{Scan 1 level} \\ + \begin{array}{l} %\\ + \Rightarrow \, \textrm{Scan1 script} \\ + \Rightarrow \, \textrm{Script before} \\ + \\ +\begin{array}{l} \\ + \textrm{\textbf{POSITIONS}} \left\Updownarrow \, +\begin{array}{l} \\ + \Rightarrow \, \textrm{Header before script} \\ + \\ +\par +\textrm{\textbf{CYCLES}} \left\Updownarrow \, + \begin{array}{l} \\ + \\ +\textrm{\textbf{FRAMES}} \left\Updownarrow \right. \\ + \\ +\\ + \end{array} + \right. \\ + \\ +\Rightarrow \, \textrm{Header after script}\\ + \\ + \end{array} + \right. \\ +\\ +\\ +\\ + \end{array} +\par +\\ + % \\ +\Rightarrow \, \textrm{Script after} \\ +\end{array} + % \right. \\ + \\ +\\ + \end{array} + \right. \\ +\\ + \\ +\\ + \end{array} + \right. \\ + \\ +\Rightarrow \, \textrm{Stop script} \\ +\\ + \end{array} + % \right. \\ + \\ + \end{array} +\right. +\end{displaymath}% +\lthtmldisplayZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2667}% +\includegraphics[width=\textwidth]{images/normal_acquisition.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2671}% +\includegraphics[width=\textwidth]{images/gated_acquisition.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2675}% +\includegraphics[width=\textwidth]{images/trigger_acquisition.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2679}% +\includegraphics[width=\textwidth]{images/ro_trigger_acquisition.eps}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +\stepcounter{section} +\stepcounter{section} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2690}% +$ (108602\&0xFFFFFFFE)>>1 = 54301$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2692}% +$ (108602\&0x1) =0$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsection} +\stepcounter{subsection} +\stepcounter{chapter} +\stepcounter{section} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2698}% +\includegraphics[width=\textwidth]{images/settings}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2703}% +\includegraphics[width=\textwidth]{images/thr_scan_expl}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2707}% +\includegraphics[width=\textwidth]{images/thr_scan_fluo}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2712}% +$ E_0$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2716}% +$ E_t=E_0/2$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2720}% +$ E_f$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2724}% +$ E_t$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2738}% +$ E_fE_f+3$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2744}% +$ E_t4$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2767}% +\includegraphics[width=\textwidth]{images/sample_with_fluorescence}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2773}% +\includegraphics[width=\textwidth]{images/bad_ff_col}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2778}% +\includegraphics[width=\textwidth]{images/FFSetup}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2785}% +$ Vthreshold=7$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2787}% +$ Counts=500$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2789}% +$ Resolution=4$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2791}% +$ \pm$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2792}% +\includegraphics[width=\textwidth]{images/noise_thresholdscanuntrimmed}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2796}% +\includegraphics[width=\textwidth]{images/trimbitdistribution}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2800}% +\includegraphics[width=\textwidth]{images/trimbitplot}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +{\newpage\clearpage +\lthtmlpictureA{tex2html_wrap2804}% +\includegraphics[width=\textwidth]{images/noise_thresholdscantrimmed}% +\lthtmlpictureZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +\stepcounter{subsection} +{\newpage\clearpage +\lthtmlinlinemathA{tex2html_wrap_inline2813}% +$ \cdot$% +\lthtmlinlinemathZ +\lthtmlcheckvsize\clearpage} + +\stepcounter{section} +\stepcounter{section} +\stepcounter{subsection} + +\end{document} diff --git a/manual/docs/html/slsDetectors-FAQ/img1.png b/manual/docs/html/slsDetectors-FAQ/img1.png new file mode 100644 index 000000000..3c64b751f Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img1.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img10.png b/manual/docs/html/slsDetectors-FAQ/img10.png new file mode 100644 index 000000000..062161f8c Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img10.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img11.png b/manual/docs/html/slsDetectors-FAQ/img11.png new file mode 100644 index 000000000..5a2c4b41e Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img11.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img12.png b/manual/docs/html/slsDetectors-FAQ/img12.png new file mode 100644 index 000000000..0c7129068 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img12.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img13.png b/manual/docs/html/slsDetectors-FAQ/img13.png new file mode 100644 index 000000000..77ca19e83 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img13.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img14.png b/manual/docs/html/slsDetectors-FAQ/img14.png new file mode 100644 index 000000000..2c8a090c5 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img14.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img15.png b/manual/docs/html/slsDetectors-FAQ/img15.png new file mode 100644 index 000000000..3d666e3eb Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img15.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img16.png b/manual/docs/html/slsDetectors-FAQ/img16.png new file mode 100644 index 000000000..f3596cb7e Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img16.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img17.png b/manual/docs/html/slsDetectors-FAQ/img17.png new file mode 100644 index 000000000..64d3a5e2d Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img17.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img18.png b/manual/docs/html/slsDetectors-FAQ/img18.png new file mode 100644 index 000000000..3d6c03b5b Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img18.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img19.png b/manual/docs/html/slsDetectors-FAQ/img19.png new file mode 100644 index 000000000..04166b530 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img19.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img2.png b/manual/docs/html/slsDetectors-FAQ/img2.png new file mode 100644 index 000000000..249cebaf1 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img2.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img20.png b/manual/docs/html/slsDetectors-FAQ/img20.png new file mode 100644 index 000000000..3f6f99e7c Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img20.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img21.png b/manual/docs/html/slsDetectors-FAQ/img21.png new file mode 100644 index 000000000..c3b280d38 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img21.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img22.png b/manual/docs/html/slsDetectors-FAQ/img22.png new file mode 100644 index 000000000..b6de65457 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img22.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img23.png b/manual/docs/html/slsDetectors-FAQ/img23.png new file mode 100644 index 000000000..3c67b42f3 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img23.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img24.png b/manual/docs/html/slsDetectors-FAQ/img24.png new file mode 100644 index 000000000..4c204ab04 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img24.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img25.png b/manual/docs/html/slsDetectors-FAQ/img25.png new file mode 100644 index 000000000..6ec9442e2 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img25.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img26.png b/manual/docs/html/slsDetectors-FAQ/img26.png new file mode 100644 index 000000000..7d75095cc Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img26.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img27.png b/manual/docs/html/slsDetectors-FAQ/img27.png new file mode 100644 index 000000000..75bd6668e Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img27.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img28.png b/manual/docs/html/slsDetectors-FAQ/img28.png new file mode 100644 index 000000000..d0b65f192 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img28.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img29.png b/manual/docs/html/slsDetectors-FAQ/img29.png new file mode 100644 index 000000000..6c99c1b5a Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img29.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img3.png b/manual/docs/html/slsDetectors-FAQ/img3.png new file mode 100644 index 000000000..3b34cb9ec Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img3.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img30.png b/manual/docs/html/slsDetectors-FAQ/img30.png new file mode 100644 index 000000000..56b9408fa Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img30.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img31.png b/manual/docs/html/slsDetectors-FAQ/img31.png new file mode 100644 index 000000000..fb6eb7f09 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img31.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img32.png b/manual/docs/html/slsDetectors-FAQ/img32.png new file mode 100644 index 000000000..3cdc901b6 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img32.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img33.png b/manual/docs/html/slsDetectors-FAQ/img33.png new file mode 100644 index 000000000..c1d00fa56 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img33.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img34.png b/manual/docs/html/slsDetectors-FAQ/img34.png new file mode 100644 index 000000000..9422ec396 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img34.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img35.png b/manual/docs/html/slsDetectors-FAQ/img35.png new file mode 100644 index 000000000..06dd084ae Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img35.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img36.png b/manual/docs/html/slsDetectors-FAQ/img36.png new file mode 100644 index 000000000..da71ce5ef Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img36.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img4.png b/manual/docs/html/slsDetectors-FAQ/img4.png new file mode 100644 index 000000000..77916ac9c Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img4.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img5.png b/manual/docs/html/slsDetectors-FAQ/img5.png new file mode 100644 index 000000000..728ba17a8 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img5.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img6.png b/manual/docs/html/slsDetectors-FAQ/img6.png new file mode 100644 index 000000000..96347d069 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img6.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img7.png b/manual/docs/html/slsDetectors-FAQ/img7.png new file mode 100644 index 000000000..d3f238a91 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img7.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img8.png b/manual/docs/html/slsDetectors-FAQ/img8.png new file mode 100644 index 000000000..ca122242a Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img8.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/img9.png b/manual/docs/html/slsDetectors-FAQ/img9.png new file mode 100644 index 000000000..0f10a1d65 Binary files /dev/null and b/manual/docs/html/slsDetectors-FAQ/img9.png differ diff --git a/manual/docs/html/slsDetectors-FAQ/index.html b/manual/docs/html/slsDetectors-FAQ/index.html new file mode 100644 index 000000000..c73dfec23 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/index.html @@ -0,0 +1,163 @@ + + + + + +SLS Detectors +Frequently Asked Questions + + + + + + + + + + + + + + + + +next +up +previous + +contents +
+ Next: Contents +   Contents +
+
+ + +

+ +

SLS Detectors +
+Frequently Asked Questions

+

Anna Bergamaschi +

+

Date: August 22, 2017

+ +
+ +

+ + + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/internals.pl b/manual/docs/html/slsDetectors-FAQ/internals.pl new file mode 100644 index 000000000..80213a9a4 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/internals.pl @@ -0,0 +1,102 @@ +# LaTeX2HTML 2008 (1.71) +# Associate internals original text with physical files. + + +$key = q/sec:usersFunc/; +$ref_files{$key} = "$dir".q|node12.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:timing/; +$ref_files{$key} = "$dir".q|node10.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:gating/; +$ref_files{$key} = "$dir".q|node10.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:improvetrimming/; +$ref_files{$key} = "$dir".q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:multidet/; +$ref_files{$key} = "$dir".q|node4.html|; +$noresave{$key} = "$nosave"; + +$key = q/eq:acqflow/; +$ref_files{$key} = "$dir".q|node9.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:autotiming/; +$ref_files{$key} = "$dir".q|node10.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:samplefluo/; +$ref_files{$key} = "$dir".q|node16.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:settings/; +$ref_files{$key} = "$dir".q|node15.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscanfluo/; +$ref_files{$key} = "$dir".q|node16.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:dataFormat/; +$ref_files{$key} = "$dir".q|node13.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:datareceiver/; +$ref_files{$key} = "$dir".q|node5.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:sync/; +$ref_files{$key} = "$dir".q|node11.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:badff/; +$ref_files{$key} = "$dir".q|node17.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:trig/; +$ref_files{$key} = "$dir".q|node10.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:ffsetup/; +$ref_files{$key} = "$dir".q|node17.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:trimdistribution/; +$ref_files{$key} = "$dir".q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thresholdscanuntrimmed/; +$ref_files{$key} = "$dir".q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:trimdir/; +$ref_files{$key} = "$dir".q|node6.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:trimplot/; +$ref_files{$key} = "$dir".q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thresholdscantrimmed/; +$ref_files{$key} = "$dir".q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:noisetrim/; +$ref_files{$key} = "$dir".q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:encal/; +$ref_files{$key} = "$dir".q|node19.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscan/; +$ref_files{$key} = "$dir".q|node16.html|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/manual/docs/html/slsDetectors-FAQ/labels.pl b/manual/docs/html/slsDetectors-FAQ/labels.pl new file mode 100644 index 000000000..c3f8dd611 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/labels.pl @@ -0,0 +1,205 @@ +# LaTeX2HTML 2008 (1.71) +# Associate labels original text with physical files. + + +$key = q/sec:usersFunc/; +$external_labels{$key} = "$URL/" . q|node12.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:timing/; +$external_labels{$key} = "$URL/" . q|node10.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:gating/; +$external_labels{$key} = "$URL/" . q|node10.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:improvetrimming/; +$external_labels{$key} = "$URL/" . q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:multidet/; +$external_labels{$key} = "$URL/" . q|node4.html|; +$noresave{$key} = "$nosave"; + +$key = q/eq:acqflow/; +$external_labels{$key} = "$URL/" . q|node9.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:autotiming/; +$external_labels{$key} = "$URL/" . q|node10.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:samplefluo/; +$external_labels{$key} = "$URL/" . q|node16.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:settings/; +$external_labels{$key} = "$URL/" . q|node15.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscanfluo/; +$external_labels{$key} = "$URL/" . q|node16.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:dataFormat/; +$external_labels{$key} = "$URL/" . q|node13.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:datareceiver/; +$external_labels{$key} = "$URL/" . q|node5.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:sync/; +$external_labels{$key} = "$URL/" . q|node11.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:badff/; +$external_labels{$key} = "$URL/" . q|node17.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:trig/; +$external_labels{$key} = "$URL/" . q|node10.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:ffsetup/; +$external_labels{$key} = "$URL/" . q|node17.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:trimdistribution/; +$external_labels{$key} = "$URL/" . q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thresholdscanuntrimmed/; +$external_labels{$key} = "$URL/" . q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:trimdir/; +$external_labels{$key} = "$URL/" . q|node6.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:trimplot/; +$external_labels{$key} = "$URL/" . q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thresholdscantrimmed/; +$external_labels{$key} = "$URL/" . q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:noisetrim/; +$external_labels{$key} = "$URL/" . q|node18.html|; +$noresave{$key} = "$nosave"; + +$key = q/sec:encal/; +$external_labels{$key} = "$URL/" . q|node19.html|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscan/; +$external_labels{$key} = "$URL/" . q|node16.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: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|2.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/fig:samplefluo/; +$external_latex_labels{$key} = q|2.4|; +$noresave{$key} = "$nosave"; + +$key = q/fig:settings/; +$external_latex_labels{$key} = q|2.1|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscanfluo/; +$external_latex_labels{$key} = q|2.3|; +$noresave{$key} = "$nosave"; + +$key = q/sec:dataFormat/; +$external_latex_labels{$key} = q|1.11|; +$noresave{$key} = "$nosave"; + +$key = q/fig:datareceiver/; +$external_latex_labels{$key} = q|1.2|; +$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|2.5|; +$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|2.6|; +$noresave{$key} = "$nosave"; + +$key = q/fig:trimdistribution/; +$external_latex_labels{$key} = q|2.8|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thresholdscanuntrimmed/; +$external_latex_labels{$key} = q|2.7|; +$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|2.9|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thresholdscantrimmed/; +$external_latex_labels{$key} = q|2.10|; +$noresave{$key} = "$nosave"; + +$key = q/sec:noisetrim/; +$external_latex_labels{$key} = q|2.4.1|; +$noresave{$key} = "$nosave"; + +$key = q/sec:encal/; +$external_latex_labels{$key} = q|2.5|; +$noresave{$key} = "$nosave"; + +$key = q/fig:thrscan/; +$external_latex_labels{$key} = q|2.2|; +$noresave{$key} = "$nosave"; + +1; + diff --git a/manual/docs/html/slsDetectors-FAQ/node1.html b/manual/docs/html/slsDetectors-FAQ/node1.html new file mode 100644 index 000000000..5c3393658 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node1.html @@ -0,0 +1,150 @@ + + + + + +Contents + + + + + + + + + + + + + + + + + + + +next + +up + +previous +
+ Next: SLS Detectors Software + Up: SLS Detectors Frequently Asked + Previous: SLS Detectors Frequently Asked +
+
+ +
+ +

+Contents +

+ + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node10.html b/manual/docs/html/slsDetectors-FAQ/node10.html new file mode 100644 index 000000000..3db2c7c28 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node10.html @@ -0,0 +1,201 @@ + + + + + +How can I synchronize my detector with the experiment? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: How can several controllers + Up: SLS Detectors Software + Previous: Which is the sequence +   Contents +
+
+ + +

+
+How can I synchronize my detector with the experiment? +

+ +

+The timing of the detector is always defined by an active detection time followed by a dead time during which the detector is read out. This read out time as a fixed duration depending on the detector type and its configuration (e.g. dynamic range) which limits the maximum frame rate achievable. +
+In the following is a list of the main parameters involved in the acquisition timing: +

+
Exposure time
+
is the time during which the detector is detecting X-rays for each image (ignored is the timing mode is gating). +
+
Period
+
is the period of the images acquired. If it is shorter than the exposure time plus readout time, it will be ignored. +
+
Delay after trigger
+
can be set as a delay between the trigger signal and the start of the detection time. +
+
Number of gates
+
is used only in gating mode and is the number of times that the gate is toggled before the detector is read out. Useful for stroboscopic measurements with gate period shorter than the minim acquisition period of the detector, otherwise can be left to 1. +
+
Number of frames
+
is the number of images to be acquired per cycle. Frames and cycles have the same meaning except in trigger mode, when frames means the number of images per trigger. The total number of images is frames time cycles. +
+
Number of cycles
+
is the number of times that the frames are acquired. Frames and cycles have the same meaning except in trigger mode, when cycles means the number of triggers that will be accepted. The total number of images is frames time cycles. +
+
Number of probes
+
is used in stoboscopic measurements when the period is longer than the minimum acquisition period, but shorter than the frame rate. +
+In this case the data can be summed in firmware. +
+Currently it is implemented for Mythen only. If probes is set to 0, works normallyreturning an image for each readout, otherwise set number of cycles to 1. The maximum number of probes that can be set is 3. The detector will return a number of image equal to the number of probes, where all frames are going to be accumulated. The total number of readouts is number of frames time probes and for probes=1 the detector will return one image where all frames have been summed, for probes=2 two images where every second frame has been summed (each image accumulates the number of frames), for probes=3 three images where every third image has been summed (each image accumulates the number of frames). +
+The returned images will always have 32 bit dynamic range, while the dynamic range if the detector defines the bit depth of the counters in rder to limit the readout time, if necessary. +
+The probes counter waorks also in trigger and gating modes. +
+
+ +

+ +

+ + + +
Figure 1.3: +Auto timing: the detection time is defined by the exposure time and the period by period (if longer than exposure time plus readout time). The total number of images is frames (in the example 3) times cycles (in the example 2), and in this case there is no difference between the acquisition of the two.
+
+\includegraphics[width=\textwidth]{images/normal_acquisition.eps} + +
+
+ +

+ +

+ + + +
Figure 1.4: +Gating mode: the detector acquires for a number of gates define by the user (in this case 4) before being read out, independently on the timing of the gates. The detector remains insensitive during the readout time and then starts being active again. External gates given during the readout time are ignored. The total number of images is frames (in the example 3) times cycles (in the example 2), and in this case there is no difference between the acquisition of the two. The polarity of the external gate signal can be defined by the user through the external signal flag (in the example active high).
+
+\includegraphics[width=\textwidth]{images/gated_acquisition.eps} + +
+
+ +

+ +

+ + + +
Figure 1.5: +Trigger mode: the external trigger signal defines the start of the beginning of the acquisition, which starts after the delay set by the user. For each trigger, the number of frames is acquired (in the example 3) and all trigger signals ignored. The number of trigger accepted is given by the number of cycles (in the example 2). The polarity of the external trigger signal can be defined by the user through the external signal flag (in the example rising edge).
+
+\includegraphics[width=\textwidth]{images/trigger_acquisition.eps} + +
+
+ +

+ +

+ + + +
Figure 1.6: +Read Out Trigger mode: the external trigger signal defines the beginning of the readout. The exposure time works as a time out for the waiting time for the trigger signal. The number of trigger accepted is given by the number of cycles (in the example 3) and it does not make sense to program more than one frame. The polarity of the external trigger signal can be defined by the user through the external signal flag (in the example rising edge).
+
+\includegraphics[width=\textwidth]{images/ro_trigger_acquisition.eps} + +
+
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: How can several controllers + Up: SLS Detectors Software + Previous: Which is the sequence +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node11.html b/manual/docs/html/slsDetectors-FAQ/node11.html new file mode 100644 index 000000000..31a82a217 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node11.html @@ -0,0 +1,109 @@ + + + + + +How can several controllers be synchronized? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: How can the detector + Up: SLS Detectors Software + Previous: How can I synchronize +   Contents +
+
+ + +

+
+How can several controllers be synchronized? +

+If you are not performing time resolved measurements, you will probably not need any synchronization of the controllers: they will be started sequentially by the software and their acquisition will have a jitter of a few ms. +
+In the case you need a precise synchronization, on the other hand, hardware connection is required between the controllers through the external IO signals. The external signals used for this synchronization should be configured as sync with the extsig command. +
+In this case a master controller should be defined for the acquisition which will the send the synchronization signal to the other controllers, while the other controllers will use them as inputs. +
+The type of synchronization can begating or trigger depending if the synchronization signal will gate the slave detectors or trigegr the beginning of the acquisition. There are no particular reasons to chose one or the other method, except if the user finds out that one is more stable than the other. +
+Normally the configuration of the synchronization is configured inside the configuration file and should not be changed dynamically by the user. +
+

+After the configuration, the synchronization of the controllers will be completely transparent for the user, who will simply have to setup the timing parameters of the detector as a whole. + +

+


+ + +next + +up + +previous + +contents +
+ Next: How can the detector + Up: SLS Detectors Software + Previous: How can I synchronize +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node12.html b/manual/docs/html/slsDetectors-FAQ/node12.html new file mode 100644 index 000000000..981a4d31e --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node12.html @@ -0,0 +1,109 @@ + + + + + +How can the detector movement and position and I0 readout be customized for my beamline? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: In which data format + Up: SLS Detectors Software + Previous: How can several controllers +   Contents +
+
+ + +

+
+How can the detector movement and position and I0 readout be customized for my beamline? +

+ +

+The easiest way to allow the software to perform all the necessary normalization and angular conversion steps, is enable it to move your detector and read the encoder position and the value of the ionization chamber. +
+These functions are defines as callbacks and can be redifined by registering your own functions. This is normally a good method if you use the API or are willing to write your main client program. +
+Otherwise the simpleast way is to edit the file +
slsDetectorSoftware/usersFunctions/usersFunctions.cpp +
+where the default functions performing these actions are implemented and modify them to interface with your beamline hardware. The functions are written in C and are very simple to implement for anyone with some programming knowledge. +
+A simple high-level solution in case you need to maintain the software for several beamlines and don't want to recompile for all of them is to call external scripts. + +

+


+ + +next + +up + +previous + +contents +
+ Next: In which data format + Up: SLS Detectors Software + Previous: How can several controllers +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node13.html b/manual/docs/html/slsDetectors-FAQ/node13.html new file mode 100644 index 000000000..9fc22f332 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node13.html @@ -0,0 +1,193 @@ + + + + + +In which data format are written the data? + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: Single photon counting detectors + Up: SLS Detectors Software + Previous: How can the detector +   Contents +
+
+ + +Subsections + + + +
+ +

+
+In which data format are written the data? +

+ +

+For MYTHEN the data are writen in ASCII fomat, one file per frame, in columns, either channel number - counts for the .raw files or angle (or channel number)-counts-error for the .dat files. + +

+For the other detectors the files are written in binary format, and must be decoded depending on the detector. + +

+ +

+GOTTHARD +

+Each file contains 100 frames. +
+
Normal mode
+
Each frame is split into 2 packets of 1286 bytes each, where actual data is 1280 bytes each. Both the packets (incl header and footer) are written one after the other into the file. + +

+Representation of each packet: + +

    +
  • The first 4 bytes represents a number from which, the frame number and packet number can be derived. +If the number was 108601, increment it by 1 to get 108602. +
    +Then this +$ (108602\&0xFFFFFFFE)>>1 = 54301$ + is the frame number +and +$ (108602\&0x1) =0$ + is the packet number. +
    +0 is the packet on the left and 1 is the packet on the right. +
    +On a side note, when you use the data call back, we also give you the derived frame number as an argument. + +

    +

  • +
  • Data of 1280 bytes. 16 bits per pixel. + +

    +

  • +
  • 2 bytes of insignificant footer. +
  • +
+ +

+

+
Short Frame Mode
+
One Frame has only one packet of 518 bytes, where actual data is 512 bytes. + +
    +
  • first 4 bytes is the frame number. There is no packet number or increment required herecompared to the normal mode. +
  • +
  • Data of 512 bytes. +
  • +
  • 2 bytes of insignificant footer. +
  • +
+ +

+

+
+ +

+ +

+EIGER +

+ +

+ +

+JUNGFRAU +

+ +

+


+ + +next + +up + +previous + +contents +
+ Next: Single photon counting detectors + Up: SLS Detectors Software + Previous: How can the detector +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node14.html b/manual/docs/html/slsDetectors-FAQ/node14.html new file mode 100644 index 000000000..f137ab431 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node14.html @@ -0,0 +1,115 @@ + + + + + +Single photon counting detectors + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: Which detector settings should + Up: SLS Detectors Frequently Asked + Previous: In which data format +   Contents +
+
+ + +

+Single photon counting detectors +

+ +

+


+ +Subsections + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node15.html b/manual/docs/html/slsDetectors-FAQ/node15.html new file mode 100644 index 000000000..808b9963e --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node15.html @@ -0,0 +1,152 @@ + + + + + +Which detector settings should I choose? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: How do I chose + Up: Single photon counting detectors + Previous: Single photon counting detectors +   Contents +
+
+ + +Subsections + + + +
+ +

+Which detector settings should I choose? +

+ +

+The choice of the operation settings is very important in order to obtain good quality data. +
+Normally slower settings will reduce the electronics noise and therefore it is possible to work at lower energies, but will saturate for high photon fluxes. +
+On the other hand, faster settings will allow to work with higher photon intensities without pileup, but not to access lower energies because of an higher electronics noise. +
+Therefore it is extremely important to chose adequate settings for the detector depending on the X-ray energy and expected maximum count rate. +In the following is a description of the energy and intensity range coverd by the different settings for each detector. + +

+ +

+MYTHEN +

+ +

+Normally the user can follow these rules: + +

    +
  1. If the X-ray energy is lower than 8 keV the High gain setting should be used. Since it is a slow mode of operation it is necessary to take care that the maximum count rate is lower than 100 kcounts/s for all channels (use filters to reduce the beam intensisty). +
  2. +
  3. For energies higher than 8 keV, the Standard setting is normally fine if the count rate can be kept lower than 300 kcounts/s for all channels (use filters to reduce the beam intensisty). + +

    +

  4. +
  5. In case a larger count rate is required in order to keep the acquisition time shorter, the Fast setting must be selected. However the maximum count rate should never exceed 1 Mcounts/s for all channels. +
  6. +
+ +

+ +

+ + + +
Figure 2.1: +Plot indicating the reccomended choice of detector settings as a function of the X-ray energy and maximum count rate per channel..
+
+\includegraphics[width=\textwidth]{images/settings} + +
+
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: How do I chose + Up: Single photon counting detectors + Previous: Single photon counting detectors +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node16.html b/manual/docs/html/slsDetectors-FAQ/node16.html new file mode 100644 index 000000000..54a82ef1b --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node16.html @@ -0,0 +1,311 @@ + + + + + +How do I chose the comparator threshold? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: How does the flat + Up: Single photon counting detectors + Previous: Which detector settings should +   Contents +
+
+ + +

+How do I chose the comparator threshold? +

+ +

+ +

+ + + +
Figure 2.2: +Number of counts as a function of the threshold detected in an ideal case.
+
+\includegraphics[width=\textwidth]{images/thr_scan_expl} + +
+
+ +

+ +

+ + + +
Figure 2.3: +Number of counts as a function of the threshold detected in presence of fluorescent radiation
+
+\includegraphics[width=\textwidth]{images/thr_scan_fluo} + +
+
+ +

+Once selected the settings, the threshold should be selected. +Figure 2.2 shows the number of counts as a function of the threshold value in the ideal case of monoenergetix X-rays of energy $ E_0$ +=10 keV. +For thresholds larger than the X-ray energy the detector should always count 0 and for lower thresholds it should always count all the photons. However the curve is smoothed around $ E_0$ + because of the electronic noise (ENC) and is not perfectly flat for lower energies because the photons absorbed in the region between two strips distribute their energy between them and it is not flully collected by a single channel (charge sharing). +
+In order to count once al X-rays the threshold should be set at half of the X-ray energy $ E_t=E_0/2$ +: if the threshold would be higher some photons would not be counted, leading to a loss of efficiency, while if it would be lower some photons would be counted twice leading to a loss of spatial resolution. + +

+Since the detector threshold can't be precisely set at the same value for all channels but there will always be some spread of the order of 200 eV (threshold dispersion) there will always be some fluctuations on the number of counts between channels, which however should be corrected by the flat field correction. + +

+The choice of the threshold should also depend from considerations regarding the emission of fluorescent radiation from the sample. +
+Figure 2.3 shows how the curve of the counts would look like for monochromatic X-rays of energy $ E_0$ + in presence of radiation of energy $ E_f$ + emitted by the sample. The curve would show a second step at $ E_f$ +. + +

+Since the fluorecence emission is not present in the flat field data, the difference of counts between the channels due to the fluorescent radiation cannot be corrected and the threshold $ E_t$ + should be set at an energy larger than $ E_f$ +. This also helps to cut down the background. +
+The difference of counts between the channels will be particularly large if the threshold is set in some ``steep'' part of the curve i.e. close to $ E_f$ + or to $ E_0$ + (but in this case it would be corrected by the flat field, at cost of loss of efficiency). +Because of the presence of the electronic noise, $ E_t$ + should be at least 3 keV larger than $ E_f$ +. + +

+Here is a short list of rules to select the appropriate working threshold in order of importance (and eventually modify the X-ray energy): + +

    +
  1. List the fluorescent emission lines $ E_f$ + that you expect from your sample. +
  2. +
  3. If there is no fluorescent emission ($ E_f<E_0$ +) $ E_t=E_0/2$ + +
  4. +
  5. If there is fluorescent emission + +
      +
    1. $ E_t>E_f+3$ + keV +
    2. +
    3. $ E_t<E_0-3$ + keV +
    4. +
    +If the range where both requirements are satisfied is large, try to increase the distance of $ E_t$ + from $ E_f$ + up to 5 keV and then set $ E_t$ + as close as possible to the ideal value $ E_t=E_0/2$ + +
  6. +
  7. If it is not possible to satisfy the previous minimal requirements: + +
      +
    1. If you need high quality data and you can sacrifice detector efficiency (a lot!) $ E_t>E_f+3$ + keV +
    2. +
    3. If you need fast measurments and you can sacrifice detector uniformity (difficult to say how much) and increase the background $ E_t<E_f-3$ + keV. Remember that $ E_t$ + is klimited by the electronic noise $ E_t>4$ + keV (3 keV for High gain settings). +
    4. +
    5. Consider to change $ E_0$ + to values lower than $ E_f$ + or at least 6-8 keV larger than $ E_f$ + +
    6. +
    +
  8. +
+ +

+ +

+ + + +
Figure 2.4: +Example of data from a sample emitting fluorescent light and detector threshold set at a value close to the emission line. The background data cannot be properly flat field corrected.
+
+\includegraphics[width=\textwidth]{images/sample_with_fluorescence} + +
+
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: How does the flat + Up: Single photon counting detectors + Previous: Which detector settings should +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node17.html b/manual/docs/html/slsDetectors-FAQ/node17.html new file mode 100644 index 000000000..da506b2b9 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node17.html @@ -0,0 +1,177 @@ + + + + + +How does the flat field correction work? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: What happens when I + Up: Single photon counting detectors + Previous: How do I chose +   Contents +
+
+ + +Subsections + + + +
+ +

+How does the flat field correction work? +

+ +

+ +

+Why isn't my flat-field flat? +

+ +

+The main reasons of a non flat flat-field can be: + +

    +
  • The scattering from the glass rod is not uniform over the angular range. In this case you should take the flat field dynamically i.e. scanning the detector in front of the cylinder with the small window, as we do at the SLS. In this case when you shift the detector, the shape of the illumination remains in the same angular position (and shifts in channel number). Of course it depends a lot on the energy and on the geometry of the flat field acquisition. + +
    + + + +
    Figure 2.5: +Example of a very bad flat field data set with highlights of some of the reasons which can cause the non-flat behavior for the MYTHEN detector. Similar effects can be visible also in 2D.
    +
    +\includegraphics[width=\textwidth]{images/bad_ff_col} + +
    +
    + +

    +

  • +
  • The entrance window for the X-rays is deformed (we also have this problem at the SLS). In this case when you move the detector the "mountain" moves with it in angle (And remains still in channel number). However this should correct without problems with the flat field correction, even in case of fluorescent emission. Should appear at all energies. +
  • +
  • Differences of efficiency between the modules i.e. mainly bad energy calibration. You normally see really steps at the transition between modules. Sometimes you have some groups of strips withing a module that are not properly trimmed and look as smallish peaks or valleys in the flat field. When you move the detector, these steps or peaks move in angle and remain still in channel number. +These differences can slightly change as a function of the energy (probably more evident at lower energies) but should normally always be there for the same settings. +These differences get much worse in presence of fluorescent emission, but normally correct properly with flat field correction. +
  • +
+ +

+ +

+Dynamic acquisition of the flat field +

+ +

+In case it is not possible to uniformely illuminate the detector due to its large dimensions, one of the solutions is to scan it in front of an illuminated are with a uniform speed such that the integrated number of counts during the exposure time is the same for all channels. +
+

+To do that, at the SLS we have optimized the dynamic acquisition of the flat fiel with the MYTHEN detector using a setup similar to the one sketched in figure 2.6. +It is important that the scanning range of the detector is chose such that the detector is not illuminated both at the beginning and at the end of the acquisition. Moreover the movement of the detector should be as uniform as possible. To avoid this kind of systematic errors we normally sum two flat field images taken in the two opposite directions of translation. +
+

+Also take care that your sample does not emit fluorescent light at the chosen energy (e.g. a glass rod works at all energies, but heavier materials can be chosen to increase the efficiency at higher energies taking care that the fluorescence emission is negligible). + +

+ +

+ + + +
Figure 2.6: +Sketch of the experimental setup for a dynamic acquisition of the flat field.
+
+\includegraphics[width=\textwidth]{images/FFSetup} + +
+
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: What happens when I + Up: Single photon counting detectors + Previous: How do I chose +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node18.html b/manual/docs/html/slsDetectors-FAQ/node18.html new file mode 100644 index 000000000..499a3508d --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node18.html @@ -0,0 +1,264 @@ + + + + + +What happens when I trim the detector? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: In what consists the + Up: Single photon counting detectors + Previous: How does the flat +   Contents +
+
+ + +Subsections + + + +
+ +

+What happens when I trim the detector? +

+ +

+General remarks about trimming. + +

+ +

+MYTHEN +

+ +

+Trimming with noise +
+

+The first step in the trimming procedure is to trim with noise (this is often sufficient). This has to be done for all the settings which are foreseen to be used (highgain, standard and fast). +
+The procedure for the noise trimming is as follows: + +

    +
  1. In the Initialization tab click on the settings for which you want to trim (e.g. standard) +
  2. +
  3. In the Initialization tab click on the advanced radio button to make the trimming accessible. +
  4. +
  5. In the Acquisition tab set the acquisition time to 100 ms, the repetion to 1 and the delay between frames to 0. +
  6. +
  7. For noise trimming usually the default parameters +$ Vthreshold=7$ +, +$ Counts=500$ +, +$ Resolution=4$ + work. +
    +However, to verify the threshold setting it is best to make a threshold scan. To do this go to the Data tab, in the Data display section select the 2D color and type advanced option. In the Acquisition tab select your data directory. Set the number of positions to 0. Select Scan, Type threshold. Typical values for the range are 500 to 900 with a step size of 10. Then click on the start button to perform the threshold scan. After the threhold scan has finished an image similar to the one in 2.7 should be shown. Depending on the system the number of modules may vary. If the plot is similar to the one in 2.10 the noise trim files did already exist and have been loaded when selecting the settings. In this case you don't need to trim with noise again. +
    +Set the parameter Vthreshold in the Trimming box (Initialization tab) 10-30 DAC units below the onset of the noise for the module with the lowest threshold offset. Since the modules have differences in the offset and gain the onset of the noise varies. +
    +You can usually leave the remaining parameters unchanged (Counts/pixel=500; Resolution=4). +
  8. +
  9. Select the directory where the noise trim files should be written and the filename, to wich will be attached the extension given by the module serial number (.snxxx). If you want the trimfiles to be loaded authomatically when the global settings are selected, select the default directory specified in the config file (or in the ``trimbits/beamline'' directory for the older software versions). +Click on Trim to start the noise trimming process. After the trimming has finished look at the plot and the distribution of the trim bits. The distribution should be around 32$ \pm$ +5 and should look gaussian. An example distribution is shown in figure 2.8 and an example plot in 2.9. If the distribution is too much off center change the counts/pixel, if it is too narrow reduce the resolution (set it to 3), if it is too wide increase it (set it to 5). Make sure not too many channels have a trim value of 0 or 63. +
  10. +
  11. Execute the treshold scan again to verify the trimming was done properly. A plot similar tho the one in figure 2.10 should appear. +
  12. +
+ +

+ +

+ + + +
Figure 2.7: +The untrimmed threshold scan.
+
+\includegraphics[width=\textwidth]{images/noise_thresholdscanuntrimmed} + +
+
+ +

+ +

+ + + +
Figure 2.8: +The distribution of the trimbits.
+
+\includegraphics[width=\textwidth]{images/trimbitdistribution} + +
+
+ +

+ +

+ + + +
Figure 2.9: +The trimbits for all the channels.
+
+\includegraphics[width=\textwidth]{images/trimbitplot} + +
+
+ +

+ +

+ + + +
Figure 2.10: +The trimmed threshold scan.
+
+\includegraphics[width=\textwidth]{images/noise_thresholdscantrimmed} + +
+
+ +

+Improve the trimming using X-rays +
+

+The improvement of the trimming acquired with noise is not essential: at 12 keV an untrimmed module has a threshold dispersion which is about 1.4 keV and is already reduced to 200 eV at 12 keV by the noise trimming. At lower energies the noise trimming will be more effective, while the threshold dispesion will be still larger at higher energies. The trimming improvement reduces the threshold dispersion to 140 eV at 12 keV and is expected to be almost constant at all energies. For this reason it is suggested to perform the trimming improvement only when a small threshold dispersion is really important (e.g. to avoid flat field corrections or in presence of fluorescent lines close to the threshold value) and it will probably be not worthy at lower energies (i.e. threshold lower than 6 keV and X-ray energy lower than 12 keV). +The procedure for the trimming improvement is as follows: + +

    +
  1. Select the settings of the detector and load the noise trimming file +
  2. +
  3. Set the threshold at half of the X-ray energy (better if the detector has already been calibrated in energy like explained in 2.5) +
  4. +
  5. Illuminate the detector with a flat field. This is very important to obtain a good trimming. +
  6. +
  7. Select the acquisition time in the acquisition tab so that there are at least 1000 counts/strip per frame (the more counts, the better trimming). Set the repetions to 1 and the delay between frames to 0. +
  8. +
  9. Go to expert mode by clicking on advanced in the initialization tab, settings box +
  10. +
  11. In the trimming box select the directory where the noise trim files should be written and the filename, to wich will be attached the extension given by the module serial number (.snxxx). +
  12. +
  13. Select the improve method +Start the trimming +
  14. +
+If the trimming is correctly performed and the illumination is flat enough, the same trimming can be used every time you will measure at this same energy. +The authomatic loading of energy-specific trim files is not yet implemented. + +

+


+ + +next + +up + +previous + +contents +
+ Next: In what consists the + Up: Single photon counting detectors + Previous: How does the flat +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node19.html b/manual/docs/html/slsDetectors-FAQ/node19.html new file mode 100644 index 000000000..14f36488a --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node19.html @@ -0,0 +1,185 @@ + + + + + +In what consists the energy calibration of the detector? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: Why should I change + Up: Single photon counting detectors + Previous: What happens when I +   Contents +
+
+ + +Subsections + + + +
+ +

+
+In what consists the energy calibration of the detector? +

+ +

+General remarks about DAC to energy conversion + +

+ +

+MYTHEN +

+ +

+Since the conversion between the threshold DAC units and energy depends on the gain and offset of the channels the energy calibration has to be done for all settings (high gain, standard and fast). For each setting follow this procedure: + +

    +
  • Select the setting in the Initialization tab. +
  • +
  • Enter in expert mode by clicking the Advanced radiobutton in the Global settings box in the Initialization tab. +
  • +
  • If the trimfiles are in the correct location and with the correct name, they should be loaded by default every time you select the corresponding settings in the global settings box in the initialization tab 2.1. +If the trim files do not yet exist generate them as explained in section 2.4.1. +
  • +
  • Execute a threshold scan of the detector with at least three different energies. The more monochromatic are the X-rays, the better the calibration will be (i.e. scattered X-rays are better than the fluorescent emission). +
    +The scan should range from where all modules count 0 (estimate 850-20$ \cdot$ +energy(keV) DAcu) and where all modules start having a lot of noise (usually 800 DACu) with a step of 1 or 2 DACu. The acquisition time should be chosen so that there are at least 1000 counts per strip on the plateau. +
  • +
  • Open the file root/CalAllModules.C for editing. Change the value of the following global variables according to your needs: + +
      +
    • nmod is the number of modules of your system. +
    • +
    • nscan is the number of different threshold scans you acquired. +
    • +
    • en is the array with the energies at which you acquired the scans, in keV. +
    • +
    • een is the array with the errors on the energies at which you acquired the scans, in keV. It is usually small, but can be some hundreds eV in case of dirty fluorescent samples. +
    • +
    • fn is the array containing the location and root file name of your data. +
    • +
    • run is the array containing the run index of your data. +
    • +
    • startscan is the array containing the threshold value at which you started the scans. +
    • +
    • stopscan is the array containing the threshold value at which you finished the scans. +
    • +
    • stepscan is the array containing the threshold step of the scans. +
    • +
    • ave is the array containing the average number of counts per strip on the plateau (it must not be too precise). +
    • +
    • sn is the array containing the list of the serial number of the modules to be calibrated. It is important that the list is in the right order, so that the optput calibration files have the extension .snxxx corresponding to the right module. +
    • +
    • of is the location and root file name of the calibration file. The directory should already exist and the extension .snxxx will be attached to the output file. +
    • +
    +
  • +
  • Launch root, which you should have already installed on your linux PC +
  • +
  • Execute the following commands in order to load the macros needed for the calibration: +
    +root$ .L root/NewMythenMacros.C++
    +root$ .L root/CalAllModules.C++
    +
    +You should get a lot of warnings, but no errors. +
  • +
  • Execute the following command in order to run the calibration: +
    +root$ EnCalModules()
    +root$
    +
    +Reading and analyzing the data takes some time, but, after a while, a canvas should open where the plots of the median of the counts of every module as a function of the threshold should be shown for each energy, fitted with a modified erf function in order to find the inflextion point. The last plot of the canvas should represent the inflexion points as a function of the energies, and by fitting it with a straight line it is possible to calculate the offset and gain for each module i.e. calibrate it as a function of the energy. Please check that this automated fitting procedure succeeds. In case you see many fitting errors you should try to check wether the variable you edited in root/CalAllModules.C are all correct or try to edit the fitting procedures in the two root macro files (sorry!). +
  • +
  • Copy the calibration file you obtained to calibration/settings.snxxx 2.2 By doing this the correct threshold for each module will be calculated every time you change the threhsold energy in the global settings box in the initialization tab, you have loaded some default settings and you are not in expert mode. +
  • +
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: Why should I change + Up: Single photon counting detectors + Previous: What happens when I +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node2.html b/manual/docs/html/slsDetectors-FAQ/node2.html new file mode 100644 index 000000000..dc8788743 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node2.html @@ -0,0 +1,117 @@ + + + + + +SLS Detectors Software + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: Which programs can I + Up: SLS Detectors Frequently Asked + Previous: Contents +   Contents +
+
+ + +

+SLS Detectors Software +

+ +

+


+ +Subsections + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node20.html b/manual/docs/html/slsDetectors-FAQ/node20.html new file mode 100644 index 000000000..e9484edf3 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node20.html @@ -0,0 +1,69 @@ + + + + + +Why should I change the dynamic range of the counters? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: When should I enable + Up: Single photon counting detectors + Previous: In what consists the +   Contents +
+
+ + +

+Why should I change the dynamic range of the counters? +

+ +

+


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node21.html b/manual/docs/html/slsDetectors-FAQ/node21.html new file mode 100644 index 000000000..f66e4ffa4 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node21.html @@ -0,0 +1,81 @@ + + + + + +When should I enable rate correction + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: About this document ... + Up: Single photon counting detectors + Previous: Why should I change +   Contents +
+
+ + +Subsections + + + +
+ +

+When should I enable rate correction +

+ +

+How can I choose the dead time? +

+ +

+


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node22.html b/manual/docs/html/slsDetectors-FAQ/node22.html new file mode 100644 index 000000000..1c0bcabc3 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node22.html @@ -0,0 +1,79 @@ + + + + + +About this document ... + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Up: SLS Detectors Frequently Asked + Previous: When should I enable +   Contents +
+
+ + +

+About this document ... +

+ SLS Detectors +
+Frequently Asked Questions

+This document was generated using the +LaTeX2HTML translator Version 2008 (1.71) +

+Copyright © 1993, 1994, 1995, 1996, +Nikos Drakos, +Computer Based Learning Unit, University of Leeds. +
+Copyright © 1997, 1998, 1999, +Ross Moore, +Mathematics Department, Macquarie University, Sydney. +

+The command line arguments were:
+ latex2html -split 4 slsDetectors-FAQ.tex +

+The translation was initiated by Thattil Dhanya on 2017-08-22 +


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node3.html b/manual/docs/html/slsDetectors-FAQ/node3.html new file mode 100644 index 000000000..118eb82c3 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node3.html @@ -0,0 +1,116 @@ + + + + + +Which programs can I use to control my detector? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: How can I control + Up: SLS Detectors Software + Previous: SLS Detectors Software +   Contents +
+
+ + +

+Which programs can I use to control my detector? +

+ +

+The complete software package is composed of several programs which can be installed (or locally compiled) depending on the needs: + +

+ +

    +
  • The slsDetector shared and static libraries which are necessary for all user interfaces. +
    +The class slsDetectorUsers can be used as API from your acquisition software (see separate documentation). +
  • +
  • The command line interfaces (sls_detector_put, sls_detector_get, sls_detector_acquire, sls_detector_help), which are provided to communicate with the detectors using the command line and eventually to the data receiver +
  • +
  • The data receiver (slsReceiver), which can be run on a different machine, receives the data from the detector and interfaces to the control software via TCP/IP for defining e.g. the file name, output path and return status and progress of the acquisition +
  • +
  • The graphical user interface (slsDetectorGUI) which provides a user friendly way of operating the detectors with online data preview +
  • +
  • The calibration wizards (energyCalibrationWizard, angularCalibrationWizard) to analyze the data and produce the energy or angular calibration files +
  • +
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: How can I control + Up: SLS Detectors Software + Previous: SLS Detectors Software +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node4.html b/manual/docs/html/slsDetectors-FAQ/node4.html new file mode 100644 index 000000000..2c07018fb --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node4.html @@ -0,0 +1,164 @@ + + + + + +How can I control many detectors in parallel or independently? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: How can I configure + Up: SLS Detectors Software + Previous: Which programs can I +   Contents +
+
+ + +Subsections + + + +
+ +

+How can I control many detectors in parallel or independently? +

+ +

+For most users the detector will be composed by a single module. Therefore all configurations of the detector will refere to that single entity. + +

+However, for some experiments it is necessary to concatenate the data from several detector controllers, and sometimes (e.g. MYTHEN) each controller can control many modules. This should be transparent to the user since most parameters will be identical for all controllers (e.g. exposure time, energy threshold etc.), except for the configurations specific to the controller (e.g. hardware configuration). +
+In principle it is possible to combine controllers of different type (e.g. MYTHEN, GOTTHARD, EIGER) but the user should then evaluate if it really makes sense to control such different systems in parallel. + +

+In other cases, several SLS detectors will independently acquire data during the same experiment. In this case it will be necessary to be able to seperately control them. + +

+The detectors can be controlled in parallel from several PCs (clients). However it is important the the configurations match on all of the them such that no conflict arise. Eventually a detector can be locked to a specific control PC, still different users interfaces (command line, GUI) can be used in parallel. + +

+A sketch of a possible complex detector configuration is shown in figure 1.1 + +

+For this reason and index is assigned to each detector. If a single detector is used, as in most cases, the index will be omitted and defaults to 0. +
+To control the other detectors the index cannot be omitted! +
+

+An index will also be assigned to each controller within a detector. However the user normally will not need to address single controllers, except for the most advanced settings which can be left to configuration files. +
+

+Finally each module within a controller has an internal index. However in general it is not required that the user is aware of the system architecture and, if needed (rarely), the modules can simply be addressed sequentially starting from controller 0. + +

+ +

+ + + +
Figure 1.1: +Scketch of a possible complex system architecture composed of several detector, each consisting in many controllers eventually controlling several modules.
\includegraphics[width=\textwidth]{multi_detector}
+
+ +

+ +

+Examples +

+ +

+For MYTHEN, if one needs to control 6 modules, the system can either be composed by and MCS6 with 6 modules (1 detector, 1 controller, 6 modules), or by 6 MCS1 (1 detector, 6 controller, 1 module each). After apppropriate configuration of the system, the interface to the user will be the same for both systems. + +

+For GOTTHARD, one module corresponds to one controller. A detector will have the smae number of controllers and modules. + +

+For EIGER, one module consists in two controllers. Fo a multi-module system, the number of controllers will increase accordingly, but should be left to a configuration file. + +

+You will need to configure more than one detector, only in case you want to operate several detectors independently. + +

+


+ + +next + +up + +previous + +contents +
+ Next: How can I configure + Up: SLS Detectors Software + Previous: Which programs can I +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node5.html b/manual/docs/html/slsDetectors-FAQ/node5.html new file mode 100644 index 000000000..532d9feeb --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node5.html @@ -0,0 +1,139 @@ + + + + + +How can I configure the data receiver? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: What are settings and + Up: SLS Detectors Software + Previous: How can I control +   Contents +
+
+ + +

+How can I configure the data receiver? +

+ +

+For slower acquisitions, the detector will return the data to the control PC over TCP/IP (e.g. MYTHEN). + +

+However, for faster frame rates (e.g. GOTTHARD, EIGER) the controllers will return the data to a data receiver i.e. a process specifically designed to receive the data from the controller over a GBit network and save them to disk. +
+The data receiver can run on any machine (e.g. a file server) accessible by both the control PC and the detector controller, as sketched in figure 1.2. A data receiver process must be configured for each controller. Normally, to avoid performance loss it is better if different data receivers run on different machines. + +

+ +

+ + + +
Figure 1.2: +Scketch of the communication between the control PC, the detector and the data receiver.
\includegraphics[width=\textwidth]{data_receiver}
+
+ +

+To setup the system, you should configure: +

+
Client-Detector TCP/IP connection
+
i.e. for each controller hostname or IP address (hostname) and communication port (port, use default). +
+
Client-Receiver TCP/IP connection
+
i.e. hostname or IP address of the data receiver (rx_hostname) and communication port (textitrx_tcpport, use default). +
+
Detector-Receiver UDP connection
+
i.e. for each controller IP address of the receiver network interface (rx_udpip) and communication port (rx_udpport) used for receiveing the data. By detfault the IP address of the TCP/IP receiver interface will be used also for the UDP conenction. Editing the UDP network interfaces and ports is useful if several controller are sending data to a single receiver (not reccomended to avoid performance loss). +
+A MAC (detectormac) and IP address (detectorudpip) should also be assigned to the controller network interface used for the UDP communication, but the default values can normally be used unless firewalls are defined between the detectors and the receiver. +
+
+All these configurations are normally left to the configuration file and should not be changed dynamically by the user. + +

+After starting the data receiver process and correctly configuring the client and the detector, this architecture should be completely transparent for the user, except that the output file path must be properly configured from the client for the data receiver machine (easiest is that the disk is mounted for both machines in the same location). +
+The client will take care of communicating with the data receiver and the detector. A feedback about the progress of the acquisition and a preview of the data being acquired can also be obtained by the client from the data receiver. + +

+


+ + +next + +up + +previous + +contents +
+ Next: What are settings and + Up: SLS Detectors Software + Previous: How can I control +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node6.html b/manual/docs/html/slsDetectors-FAQ/node6.html new file mode 100644 index 000000000..fd8cda925 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node6.html @@ -0,0 +1,149 @@ + + + + + +What are settings and calibration files for? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: How should a configuration + Up: SLS Detectors Software + Previous: How can I configure +   Contents +
+
+ + +Subsections + + + +
+ +

+
+What are settings and calibration files for? +

+ +

+The analog characteristics of the detector have to be initialized in order to define the noise and the dynamic range which need to be used for the measurements. These parameters have a different meaning for analog or digital detectors, but in both cases some predefined voltage levels and current (we call them settings) must be laoded to the detector. Moreover, there are some parameters that are custom to single detectors or modules (e.g. the trimbits). All these settings are stored in some settings file, which are organized in a settingsdir with a definite architecture, where the software will look for the files to load to the detector whaen changing its settings. + +

+In addition to that, in a single photon counting detector the threshold is set as a voltage level for the comparator, but for the user it is useful to have a direct conversion to the energy level. For this, after a proper calibration of the detector (see specific documentation) calibration file are generated in order to convert threshold in volts to keV. Also in this case the directory caldir where the calibration files are stored must be defined ad organized with a proper architecture, suche that the software can find the calibration coefficients for settings the threshold. +
+Normally settingsdir and caldir can be the same, but have been left separate for flexibility. + +

+The settingsdir and caldir should be properly configured for your detector either in a configuration file (for use with text clients, GUI or API) or dynamically (works only for the text clients). + +

+In the following, the architecture of the settingsdir and caldir is described for the different detectors. + +

+ +

+MYTHEN +

+For mythen, an example of settingsdir and caldir is given in the software package by the directory trimdir. +Since these directories are customized by producing trimbit files and calibration for each detector, make sure not to overwrite yours every time you upgrade the software. + +

+settingsdir should contain three subdirectories standard, fast and highgain containing respectively the trimfiles standard.trim, fast.trim and highgain.trim which contain the correct voltage settings for the detector although all the individual channel thresholds set to 0. The original files contained in the package should be used, infact in case of error the detector would not recognize the correct settings. +
+The default trimbit files for each file will be stored in the directory according to the settings with the name noise.snxxx where xxx is the module serial number. +
+

+caldir should contain three subdirectories standard, fast and highgain containing respectively the trimfiles standard.cal, fast.cal and highgain.cal which contain an average calibration of the modules for the diffrent settings. However this can different from the correct one for each individual module even of several kev and therefore it is very important to perform an energy calibration on a module basis. +
+The default calibration files for each file will be stored in the directory according to the settings with the name calibration.snxxx where xxx is the module serial number. + +

+ +

+GOTTHARD +

+A settingsdir should be configured, as the directory settings in this software package. +
+It must contain the subdirectories dynamicgain, gain1, gain2, gain3, highgain, lowgain, mediumgain, and veryhighgain in order to properly configure the GOTTHARD detector using the various gain settings. + +

+


+ + +next + +up + +previous + +contents +
+ Next: How should a configuration + Up: SLS Detectors Software + Previous: How can I configure +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node7.html b/manual/docs/html/slsDetectors-FAQ/node7.html new file mode 100644 index 000000000..a85e85c6d --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node7.html @@ -0,0 +1,77 @@ + + + + + +How should a configuration file look like? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: What is the meaning + Up: SLS Detectors Software + Previous: What are settings and +   Contents +
+
+ + +

+How should a configuration file look like? +

+ +

+A configuration file is a list of command necessary to properly configure your detector systems, with default valuee for some parameters and other settings that the users should normally not change dinamically. +For this reason most of the commands present in the configuration file cannot be modified when using the API. +
+The syntax of the configuration file is exactly the same as in the comman line interface, therefore you can refere to that documentation to edit the files. +
+The configuration files look different for the different detector types. Examples of configuration files can be found in the examples directory. + +

+


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node8.html b/manual/docs/html/slsDetectors-FAQ/node8.html new file mode 100644 index 000000000..4918c0fc3 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node8.html @@ -0,0 +1,86 @@ + + + + + +What is the meaning of the file name? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: Which is the sequence + Up: SLS Detectors Software + Previous: How should a configuration +   Contents +
+
+ + +

+What is the meaning of the file name? +

+The final file name will be: +
outdir/prefix[_d$ d$ +][_Sv0][_sv1][_pp][_ff]_i.ext +
+where: +
outdir is the output directory path; +
prefix is the chosen prefix for the file name; +
d is the detector index, in case of data receiver and more than one detector; +
v0 is the scan0 variable with the desired precision, if scan0 is enabled; +
v1 is the scan1 variable with the desired precision, if scan1 is enabled; +
p is the position index, if different positions are configured; +
f is the frame index of the first frame stored in the file, if many frames and cycles are configured; +
i is the file index; +
ext is the file extension e.g. .raw for MYTHEN raw data, .dat for MYTHEN processed data. + +

+


+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/node9.html b/manual/docs/html/slsDetectors-FAQ/node9.html new file mode 100644 index 000000000..769d3a41e --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/node9.html @@ -0,0 +1,343 @@ + + + + + +Which is the sequence of the acquisition flow? + + + + + + + + + + + + + + + + + + + +next + +up + +previous + +contents +
+ Next: How can I synchronize + Up: SLS Detectors Software + Previous: What is the meaning +   Contents +
+
+ + +

+Which is the sequence of the acquisition flow? +

+ +

+The software gives the possibility to setup several loops, actions and scan utilities which are then handled during the acquisition. +The software will also take care to generate the file names and increment the indexes accordingly. +
+

+Figure 1.7 shows in which sequence the various scripts and loops are executed when calling the acquire command. The loops are drawn using the +$ \Updownarrow$ + symbol, while the scripts using the +$ \Rightarrow$ +. + +

+

+

+
+\begin{displaymath}\textrm{\textbf{MEASUREMENTS}} \\
+\left\Updownarrow \,
+\be...
+...
+\\
+\end{array}
+% \right. \\
+\\
+\end{array}
+\right.
+\end{displaymath} +

+

+ +

+If you prefere to handle the acquisition from your acquisition enviroment, simply leave al scripts and scans disabled and call the acquition from your acquisition enviroment. +
+Only the frames and cycles loops are defined in firmware and guarantee a precise timing of the acquisition which cannot replaced by any other method (you can synchronize to your beamline by hardware connection of the IO signals as described in 1.8). + +

+Hereafter a description of the meaning of the various loops: +

+
Measurement loop
+
executes offline several times the entire sequence of the acquisition. At the end of each measurement the file index is incremented. + +

+

+
Scan 0 loop
+
is a high level scan loop which can be used e.g to loop on an enviroment variable (temperature, humidity...) or even to change sample. +
+The list of steps or range of the scan0 variable must be set as scan0steps or scan0range. For small steps of the scan variable, avoid overwriting of the files specifying all the necessary digits in the filename by properly setting the precision with scan0prec. + +

+

+
Scan 1 loop
+
is a low level scan loop which can be used e.g to loop on an enviroment variable (temperature, humidity...) or to move the sample in case of radiation damage. +
+The list of steps or range of the scan1 variable must be set as scan1steps or scan1range. For small steps of the scan variable, avoid overwriting of the files specifying all the necessary digits in the filename by properly setting the precision with scan1prec. + +

+

+
Position loop
+
The detector is moved in the angular positions specified by the positions command. +
+The command for moving the detector should be defined as described in 1.10. +
+All data acquired during a position loop will be merged together, unless the number of positions is set to 0. In this case single frames will be converted to angle without merging. +
+Avoid using the position loop together with many frames/cycles. + +

+

+
Cycles loop
+
is executed in real time and defines e.g. the number of triggers that will be accepted. The total number of images will be given by frames times cycles. + +

+

+
Frames loop
+
is executed in real time and defines e.g. the images acquired per trigger. The total number of images will be given by frames times cycles. +
+
+ +

+Executing a script simply consists in a system call with the arguments specified below. The various scripts are executed only if they are enabled and different than none. +
+The scripts must be executable and the capability of parsing the arguments passed by the acquition program is left to the user writing the scripts. some example scripts writte in awk can be found in the examples directory. +
+Hereafter a short description of how the scripts are called and with which options: +

+
Start script
+
is executed at the very beginning of the measurement and can be used e.g. to initialize all the devices needed for the acquisition or open the beamline valves. The script is executed as: +
+script nrun=i par=p +
+where i is the file index and p is the start script parameter. + +

+

+
Scan0 script
+
There are a few predefined scan modes i.e. threshold changing the detector threshold in DAC units, energy chaning the calibrated detector threshold in eV, trimbits chaning the trimbits of the detector (advanced: do not use) and position changing the detector position (if the motor movement is correctly setup as described in 1.10). Otherwise the scan0script is executed as: +
+script nrun=i fn=fn var=v par=p +
+where i is the file index, fn is the file name, v is the value of the scan0 variable at the present step of the scan0 loop and p is the scan 0 script parameter. + +

+

+
Scan1 script
+
There are a few predefined scan modes i.e. threshold changing the detector threshold in DAC units, energy chaning the calibrated detector threshold in eV, trimbits chaning the trimbits of the detector (advanced: do not use) and position changing the detector position (if the motor movement is correctly setup as described in 1.10). Otherwise the scan1script is executed as: +
+script nrun=i fn=fn var=v par=p +
+where i is the file index, fn is the file name, v is the value of the scan1 variable at the present step of the scan1 loop and p is the scan 1 script parameter. + +

+

+
Script before
+
is called just before the beginning of the data taking and can be used e.g. to open the shutter. + The script is executed as: +
+script nrun=i fn=fn par=p sv0=v0 sv1=v1 p0=p0 p1=p1 +
+where i is the file index, fn is the file name, p is the script before parameter, v0 and v1 are the values of the scan0 and scan1 variables at the present step of the scan loops and p0 and p1 are the scan0 and scan1 script parameters. + +

+

+
Header before script
+
is called before every step of the data taking (i.e. for each position, but at the beginning of the frames train if several acquisition have been programmed in real time) and can e.g. be used to dump the exact settings of the detector and beamline to reproduce or analyze the data offline. + The script is executed as: +
+script nrun=i fn=fn par=p +
+where i is the file index, fn is the file name, and p is the header before parameter. + +

+

+
Header after script
+
is called after every step of the data taking (i.e. for each position, but at the end of the frames train if several acquisition have been programmed in real time) and can e.g. be used to dump the exact settings of the detector and beamline to reproduce or analyze the data offline. + The script is executed as: +
+script nrun=i fn=fn par=p +
+where i is the file index, fn is the file name, and p is the header after parameter. + +

+

+
Script after
+
is called just after the end of the data taking and can be used e.g. to close the shutter. + The script is executed as: +
+script nrun=i fn=fn par=p sv0=v0 sv1=v1 p0=p0 p1=p1 +
+where i is the file index, fn is the file name, p is the script after parameter, v0 and v1 are the values of the scan0 and scan1 variables at the present step of the scan loops and p0 and p1 are the scan0 and scan1 script parameters. + +

+

+
Stop script
+
is executed at the very end of the measurement and can be used e.g. to switch off all devices. The script is executed as: +
+script nrun=i par=p +
+where i si the file index and p is the stop script parameter. + +

+

+
+ +

+


+ + +next + +up + +previous + +contents +
+ Next: How can I synchronize + Up: SLS Detectors Software + Previous: What is the meaning +   Contents + +
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/html/slsDetectors-FAQ/slsDetectors-FAQ.css b/manual/docs/html/slsDetectors-FAQ/slsDetectors-FAQ.css new file mode 100644 index 000000000..d1824aff4 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/slsDetectors-FAQ.css @@ -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 */ diff --git a/manual/docs/html/slsDetectors-FAQ/slsDetectors-FAQ.html b/manual/docs/html/slsDetectors-FAQ/slsDetectors-FAQ.html new file mode 100644 index 000000000..c73dfec23 --- /dev/null +++ b/manual/docs/html/slsDetectors-FAQ/slsDetectors-FAQ.html @@ -0,0 +1,163 @@ + + + + + +SLS Detectors +Frequently Asked Questions + + + + + + + + + + + + + + + + +next +up +previous + +contents +
+ Next: Contents +   Contents +
+
+ + +

+ +

SLS Detectors +
+Frequently Asked Questions

+

Anna Bergamaschi +

+

Date: August 22, 2017

+ +
+ +

+ + + + + +

+
+Thattil Dhanya +2017-08-22 +
+ + diff --git a/manual/docs/pdf/angularCalibrationHowTo.pdf b/manual/docs/pdf/angularCalibrationHowTo.pdf new file mode 100644 index 000000000..e2edd5a86 Binary files /dev/null and b/manual/docs/pdf/angularCalibrationHowTo.pdf differ diff --git a/manual/docs/pdf/energyCalibrationHowTo.pdf b/manual/docs/pdf/energyCalibrationHowTo.pdf new file mode 100644 index 000000000..889fbcd4a Binary files /dev/null and b/manual/docs/pdf/energyCalibrationHowTo.pdf differ diff --git a/manual/docs/pdf/slsDetectorClientDocs.pdf b/manual/docs/pdf/slsDetectorClientDocs.pdf new file mode 100644 index 000000000..f21b1d744 Binary files /dev/null and b/manual/docs/pdf/slsDetectorClientDocs.pdf differ diff --git a/manual/docs/pdf/slsDetectorClientHowTo.pdf b/manual/docs/pdf/slsDetectorClientHowTo.pdf new file mode 100644 index 000000000..4ea86cddf Binary files /dev/null and b/manual/docs/pdf/slsDetectorClientHowTo.pdf differ diff --git a/manual/docs/pdf/slsDetectorGuiHowTo.pdf b/manual/docs/pdf/slsDetectorGuiHowTo.pdf new file mode 100644 index 000000000..0ce8b75aa Binary files /dev/null and b/manual/docs/pdf/slsDetectorGuiHowTo.pdf differ diff --git a/manual/docs/pdf/slsDetectorInstall.pdf b/manual/docs/pdf/slsDetectorInstall.pdf new file mode 100644 index 000000000..c72b93cd3 Binary files /dev/null and b/manual/docs/pdf/slsDetectorInstall.pdf differ diff --git a/manual/docs/pdf/slsDetectorUsersDocs.pdf b/manual/docs/pdf/slsDetectorUsersDocs.pdf new file mode 100644 index 000000000..6e5da910e Binary files /dev/null and b/manual/docs/pdf/slsDetectorUsersDocs.pdf differ diff --git a/manual/docs/pdf/slsDetectors-FAQ.pdf b/manual/docs/pdf/slsDetectors-FAQ.pdf new file mode 100644 index 000000000..b28427d9a Binary files /dev/null and b/manual/docs/pdf/slsDetectors-FAQ.pdf differ diff --git a/manual/manual-api/Makefile b/manual/manual-api/Makefile index ac5451e01..81090292f 100644 --- a/manual/manual-api/Makefile +++ b/manual/manual-api/Makefile @@ -7,12 +7,29 @@ LDFLAG_REC = -L$(LIBDIR) -lSlsReceiver -L/usr/lib64/ -pthread DESTDIR ?= ../docs -#all: detUser detReceiver -all: docs +all: docs detUser detReceiver +#all: docs -docs: - doxygen slsDetectorUsers.doxy +docs: createdocs docspdf docshtml removedocs +createdocs: slsDetectorUsers.doxy slsDetectorUsers.h detectorData.h slsReceiverUsers.h mainClient.cpp mainReceiver.cpp + doxygen slsDetectorUsers.doxy + +docspdf: + cd slsDetectorUsersDocs/latex && make + $(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR)) + $(shell test -d $(DESTDIR)/pdf || mkdir -p $(DESTDIR)/pdf) + mv slsDetectorUsersDocs/latex/refman.pdf $(DESTDIR)/pdf/slsDetectorUsersDocs.pdf + +docshtml: + $(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR)) + $(shell test -d $(DESTDIR)/html || mkdir -p $(DESTDIR)/html) + $(shell test -d $(DESTDIR)/html/slsDetectorUsersDocs && rm -r $(DESTDIR)/html/slsDetectorUsersDocs) + mv slsDetectorUsersDocs/html $(DESTDIR)/html/slsDetectorUsersDocs + +removedocs: + rm -rf slsDetectorUsersDocs; + detUser:$(SRC_DET) echo "creating client" g++ -o detUser $(SRC_DET) $(INCLUDES) $(LDFLAG_DET) -lm -lstdc++ @@ -22,7 +39,11 @@ detReceiver:$(SRC_REC) g++ -o detReceiver $(SRC_REC) $(INCLUDES) $(LDFLAG_REC) -lm -lstdc++ clean: - echo "cleaning" + echo "cleaning for manual-api" rm -rf detUser detReceiver slsDetectorUsersDocs + rm -rf slsDetectorUsersDocs + rm -rf $(DESTDIR)/html/slsDetectorUsersDocs + rm -rf $(DESTDIR)/pdf/slsDetectorUsersDocs.pdf + diff --git a/manual/manual-api/ansi.h b/manual/manual-api/ansi.h new file mode 120000 index 000000000..a122db0ad --- /dev/null +++ b/manual/manual-api/ansi.h @@ -0,0 +1 @@ +../../slsReceiverSoftware/include/ansi.h \ No newline at end of file diff --git a/manual/manual-api/detReceiver b/manual/manual-api/detReceiver index 6a3d95a90..dca3dbbe2 100755 Binary files a/manual/manual-api/detReceiver and b/manual/manual-api/detReceiver differ diff --git a/manual/manual-api/detUser b/manual/manual-api/detUser index 617abb4e7..e52c5ad17 100755 Binary files a/manual/manual-api/detUser and b/manual/manual-api/detUser differ diff --git a/manual/manual-api/mainClient.cpp b/manual/manual-api/mainClient.cpp index 15838ba86..e7310e1a3 100644 --- a/manual/manual-api/mainClient.cpp +++ b/manual/manual-api/mainClient.cpp @@ -7,28 +7,28 @@ You can compile it linking it to the slsDetector library gcc mainClient.cpp -L lib -l SlsDetector -lm -pthread where lib is the location of libSlsDetector.so +gcc mainClient.cpp -L . -l SlsDetector -lm -pthread -o users */ #include #include "slsDetectorUsers.h" #include "detectorData.h" - +#include /** Definition of the data callback which simply prints out the number of points received and teh frame number */ -int dataCallback(detectorData *pData, int iframe, void *pArg) +int dataCallback(detectorData *pData, int iframe, int isubframe, void *pArg) { std::cout << "dataCallback: " << pData->npoints << " " << pData->npy << "Frame number: " << iframe << std::endl; } /**example of a main program using the slsDetectorUsers class */ -int main(int argc, char *argv[]) { +int main(int argc, char **argv) { int id=0; - int status; - /** if specified, argv[2] is used as detector ID (default is 0)*/ - if (argc>=3) - id=atoi(argv[2]); + /** if specified, argv[3] is used as detector ID (default is 0)*/ + if (argc>=4) + id=atoi(argv[3]); @@ -37,61 +37,39 @@ int main(int argc, char *argv[]) { /** if specified, argv[1] is used as detector config file (necessary at least the first time it is called to properly configure advanced settings in the shared memory)*/ - if (argc>=2) + if (argc>=2){ pDetector->readConfigurationFile(argv[1]); - - /** Setting the detector online (should be by default */ - pDetector->setOnline(1); - - /** Load setup file if argv[2] specified */ - if (argc>=3) - pDetector->retrieveDetectorSetup( argv[2]); - else{ - /** defining the detector size */ - int minX, minY=0, sizeX, sizeY=1; - pDetector->getDetectorSize(minX, minY, sizeX, sizeY); - std::cout << "X: Start=" << minX << ", Size= " << sizeX << std::endl; - std::cout << "Y: Start=" << minY << ", Size= " << sizeY << std::endl; - pDetector->setDetectorSize(0,0,7680,1); - std::cout << pDetector->getDetectorDeveloper() << std::endl; - + cout<<"Detector configured" << endl; + } /** registering data callback */ - pDetector->registerDataCallback(&dataCallback, NULL); + //pDetector->registerDataCallback(&dataCallback, NULL); + //pDetector->enableDataStreamingFromReceiver(1); /** checking detector status and exiting if not idle */ - status = pDetector->getDetectorStatus(); + int status = pDetector->getDetectorStatus(); if (status != 0){ std::cout << "Detector not ready: " << slsDetectorUsers::runStatusType(status) << std::endl; return 1; } - /** checking and setting detector settings */ - std::cout << "settings: " << slsDetectorUsers::getDetectorSettings(pDetector->setSettings()) << std::endl; - pDetector->setSettings(slsDetectorUsers::getDetectorSettings("veryhighgain")); - std::cout << "settings: " << slsDetectorUsers::getDetectorSettings(pDetector->setSettings()) << std::endl; - - /** Settings exposure time to 10ms */ - pDetector->setExposureTime(10000000); - - /** Settings exposure time to 100ms */ - pDetector->setExposurePeriod(100000000); - - /** Settingsnumber of frames to 30 */ - pDetector->setNumberOfFrames(30); -} + /** load detector settings */ + if (argc>=3){ + pDetector->retrieveDetectorSetup(argv[2]); + cout<<"Detector measurement set-up done" << endl; + } /** start measurement */ pDetector->startMeasurement(); - - while (1) { + cout<<"started measurement"<getDetectorStatus(); + status = pDetector->getDetectorStatus(); if (status == 0 || status == 1|| status == 3) break; - } - - char *temp[] = {"receiver", NULL}; + }*/ + cout<<"measurement finished"<getCommand(1,temp,0) << std::endl; + delete pDetector; diff --git a/manual/manual-api/mainReceiver.cpp b/manual/manual-api/mainReceiver.cpp index c0727dfa5..69cda2fa5 100644 --- a/manual/manual-api/mainReceiver.cpp +++ b/manual/manual-api/mainReceiver.cpp @@ -1,103 +1,205 @@ /* A simple server in the internet domain using TCP - The port number is passed as an argument -*/ - -/** -\file mainReceiver.cpp - - -This file is an example of how to implement the slsDetectorUsers class -You can compile it linking it to the slsDetector library - -gcc mainReceiver.cpp -L lib -l SlsDetector -lm -pthread - -where lib is the location of libSlsDetector.so - -*/ + The port number is passed as an argument */ +#include "sls_receiver_defs.h" #include "slsReceiverUsers.h" - #include +#include +#include //SIGINT +#include //system + +//#include "utilities.h" +//#include "logger.h" + +#include //wait +#include //wait + +#include using namespace std; - -int main(int argc, char *argv[]) { - int ret = 0; +#define NUM_RECEIVERS 2 +#define START_TCP_PORT 1954 +#define PRINT_IN_COLOR(c,f, ...) printf ("\033[%dm" f RESET, 30 + c+1, ##__VA_ARGS__) - /* - Instantiate the slsReceieverUsers class - The port number is passed as an argument -*/ - slsReceiverUsers *receiver = new slsReceiverUsers(argc, argv, ret); - - /* - return if could not open TCP socket for interfacing to client - */ - if(ret==1) - return -1; - - - /*register callbacks */ +pid_t childPid[NUM_RECEIVERS]; +bool keeprunning; +int numrunning; - /* - callback arguments are - filepath - filename - fileindex - datasize - - return value is - 0 raw data ready callback takes care of open,close,write file - 1 callback writes file, we have to open, close it - 2 we open, close, write file, callback does not do anything + +void sigChildExitedHandler(int sig) { + pid_t pid = wait(NULL); + bprintf(GRAY, "\nChild Process Pid %d exited.\n", pid); + numrunning--; +} - registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg); - */ - - //receiver->registerCallBackStartAcquisition(func,arg); +void sigInterruptHandler(int p){ + keeprunning = false; +} +int StartAcq(char* filepath, char* filename, uint64_t fileindex, uint32_t datasize, void*p){ + bprintf(BLUE, "#### StartAcq: filepath:%s filename:%s fileindex:%llu datasize:%u ####\n", + filepath, filename, fileindex, datasize); - /* - callback argument is - total farmes caught - registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg); - */ - - - //receiver->registerCallBackAcquisitionFinished(func,arg); - - - - /* - args to raw data ready callback are - framenum - datapointer - file descriptor - guidatapointer (NULL, no data required) - - NEVER DELETE THE DATA POINTER - REMEMBER THAT THE CALLBACK IS BLOCKING - - registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg); - - */ - - //receiver->registerCallBackRawDataReady(func,arg); - - - /* start receiver to listen for commands from the client (and data from detectors when expected */ - receiver->start(); - - /** sleep for 10 s*/ - usleep(10000000); - - /** stop udp socket and tcp socket and thread */ - receiver->stop(); - + bprintf(BLUE, "--StartAcq: returning 0\n"); return 0; } + +void AcquisitionFinished(uint64_t frames, void*p){ + bprintf(BLUE, "#### AcquisitionFinished: frames:%llu ####\n",frames); +} + + +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 (xCoord, + "#### %d GetData: ####\n" + "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); + +} + + + +int main(int argc, char *argv[]) { + + // set default child process pid values + for (int i = 0; i < NUM_RECEIVERS; ++i) + childPid[i] = -1; + + keeprunning = true; + numrunning = 0; + + // Catch signal SIGINT to close files and call destructors properly + struct sigaction sa; + 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, NULL) == -1) { + bprintf(RED, "Could not set handler function for SIGINT\n"); + } + + // wait for all the SIGCHILD signals + struct sigaction asa; + asa.sa_flags=0; // no flags + asa.sa_handler=sigChildExitedHandler; // handler function + sigemptyset(&asa.sa_mask); // dont block additional signals during invocation of handler + if (sigaction(SIGCHLD, &asa, NULL) == -1) { + bprintf(RED, "Could not set handler function for SICHILD\n"); + } + + + int narg= 3; + + for (int i = 0; i < NUM_RECEIVERS; ++i) { + + childPid[i] = fork(); + + // fork failed + if (childPid[i] < 0) { + bprintf(RED,"fork() failed. Killing all the receiver objects\n"); + raise(SIGINT); + } + + // child process + else if (childPid[i] == 0) { + bprintf(BLUE,"Starting Receiver %d with pid %ld\n", i, (long)getpid()); + + char temp[10]; + sprintf(temp,"%d",START_TCP_PORT + i); + char* args[] = {(char*)"ignored", (char*)"--rx_tcpport", temp}; + int ret = slsReceiverDefs::OK; + slsReceiverUsers *receiver = new slsReceiverUsers(narg, args, ret); + if(ret==slsReceiverDefs::FAIL){ + delete receiver; + exit(EXIT_FAILURE); + } + + //register callbacks + //remember to set file write enable to 0 (using the client) if we should not write files and + //you will write data using the callbacks + + /** + * Call back for start acquisition + * callback arguments are + * filepath + * filename + * fileindex + * datasize + * + * return value is insignificant at the moment + * we write depending on file write enable + * users get data to write depending on call backs registered + */ + bprintf(BLUE, "Registering StartAcq()\n"); + receiver->registerCallBackStartAcquisition(StartAcq, NULL); + + /** + * Call back for acquisition finished + * callback argument is + * total frames caught + */ + bprintf(BLUE, "Registering AcquisitionFinished()\n"); + receiver->registerCallBackAcquisitionFinished(AcquisitionFinished, NULL); + + /** + * Call back for raw data + * args to raw data ready callback are + * frameNumber is the frame number + * expLength is the subframe number (32 bit eiger) or real time exposure time in 100ns (others) + * packetNumber is the packet number + * bunchId is the bunch id from beamline + * timestamp is the time stamp with 10 MHz clock + * modId is the unique module id (unique even for left, right, top, bottom) + * xCoord is the x coordinate in the complete detector system + * yCoord is the y coordinate in the complete detector system + * zCoord is the z coordinate in the complete detector system + * debug is for debugging purposes + * roundRNumber is the round robin set number + * detType is the detector type see :: detectorType + * version is the version number of this structure format + * dataPointer is the pointer to the data + * dataSize in bytes is the size of the data in bytes + */ + bprintf(BLUE, "Registering GetData() \n"); + receiver->registerCallBackRawDataReady(GetData,NULL); + + + //start tcp server thread + if (receiver->start() == slsReceiverDefs::FAIL){ + delete receiver; + exit(EXIT_FAILURE); + } + + while(keeprunning) + usleep(1 * 1000 * 1000); + delete receiver; + exit(EXIT_SUCCESS); + } + + // parent process + else + numrunning++; + + } + + cout << "Ready ... " << endl; + bprintf(GRAY, "\n[ Press \'Ctrl+c\' to exit ]\n"); + + // wait for all child processes to exit + while(numrunning) + usleep(1 * 1000 * 1000); + cout << "Goodbye!" << endl; + return 0; +} + diff --git a/manual/manual-api/slsDetectorUsersDocs/html/annotated.html b/manual/manual-api/slsDetectorUsersDocs/html/annotated.html deleted file mode 100644 index 35ac5597f..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/annotated.html +++ /dev/null @@ -1,29 +0,0 @@ - - -Class List - - - - - - -

Class List

Here are the classes, structs, unions and interfaces with brief descriptions: - - - -
detectorDataData structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.)
slsDetectorUsersClass for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc
slsReceiverUsersClass for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data
-
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData-members.html b/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData-members.html deleted file mode 100644 index 8d9df94aa..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData-members.html +++ /dev/null @@ -1,34 +0,0 @@ - - -Member List - - - - - - -

detectorData Member List

This is the complete list of members for detectorData, including all inherited members.

- - - - - - - - - -
anglesdetectorData
detectorData(double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1)detectorData [inline]
errorsdetectorData
fileNamedetectorData
npointsdetectorData
npydetectorData
progressIndexdetectorData
valuesdetectorData
~detectorData()detectorData [inline]


Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData.html b/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData.html deleted file mode 100644 index eb3220214..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData.html +++ /dev/null @@ -1,316 +0,0 @@ - - -detectorData Class Reference - - - - - - -

detectorData Class Reference

data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) -More... -

-#include <detectorData.h> -

-List of all members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

 detectorData (double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1)
 The constructor.
 ~detectorData ()
 The destructor deletes also the arrays pointing to data/errors/angles if not NULL.

Public Attributes

double * values
 pointer to the data
double * errors
 pointer to the errors
double * angles
 pointer to the angles (NULL if no angular conversion)
double progressIndex
 file index
char fileName [1000]
 file name
int npoints
 number of points
int npy
 dimensions in y coordinate
-


Detailed Description

-data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) -

- -

-Definition at line 9 of file detectorData.h.


Constructor & Destructor Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
detectorData::detectorData (double *  val = NULL,
double *  err = NULL,
double *  ang = NULL,
double  p_ind = -1,
const char *  fname = "",
int  np = -1,
int  ny = 1 
) [inline]
-
-
- -

-The constructor. -

-

Parameters:
- - - - - - - - -
val pointer to the data
err pointer to errors
ang pointer to the angles
f_ind file index
fname file name to which the data are saved
np number of points in x coordinate defaults to the number of detector channels (1D detector)
ny dimension in y (1D detector)
-
- -

-Definition at line 20 of file detectorData.h. -

-References fileName. -

-

- -

-
- - - - - - - - -
detectorData::~detectorData (  )  [inline]
-
-
- -

-The destructor deletes also the arrays pointing to data/errors/angles if not NULL. -

- -

-Definition at line 25 of file detectorData.h. -

-References angles, errors, and values. -

-

-


Member Data Documentation

- -
-
- - - - -
double* detectorData::angles
-
-
- -

-pointer to the angles (NULL if no angular conversion) -

- -

-Definition at line 29 of file detectorData.h. -

-Referenced by ~detectorData(). -

-

- -

-
- - - - -
double* detectorData::errors
-
-
- -

-pointer to the errors -

- -

-Definition at line 28 of file detectorData.h. -

-Referenced by ~detectorData(). -

-

- -

-
- - - - -
char detectorData::fileName[1000]
-
-
- -

-file name -

- -

-Definition at line 31 of file detectorData.h. -

-Referenced by detectorData(). -

-

- -

-
- - - - -
int detectorData::npoints
-
-
- -

-number of points -

- -

-Definition at line 32 of file detectorData.h. -

-Referenced by dataCallback(). -

-

- -

-
- - - - -
int detectorData::npy
-
-
- -

-dimensions in y coordinate -

- -

-Definition at line 33 of file detectorData.h. -

-Referenced by dataCallback(). -

-

- -

-
- - - - -
double detectorData::progressIndex
-
-
- -

-file index -

- -

-Definition at line 30 of file detectorData.h. -

-

- -

-
- - - - -
double* detectorData::values
-
-
- -

-pointer to the data -

- -

-Definition at line 25 of file detectorData.h. -

-Referenced by ~detectorData(). -

-

-


The documentation for this class was generated from the following file: -
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers-members.html b/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers-members.html deleted file mode 100644 index 024c4128c..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers-members.html +++ /dev/null @@ -1,95 +0,0 @@ - - -Member List - - - - - - -

slsDetectorUsers Member List

This is the complete list of members for slsDetectorUsers, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
addFrame(double *data, double pos, double i0, double t, string fname, double var)slsDetectorUsers [virtual]
dumpDetectorSetup(string const fname)slsDetectorUsers
enableAngularConversion(int i=-1)slsDetectorUsers
enableCountRateCorrection(int i=-1)slsDetectorUsers
enableFlatFieldCorrection(int i=-1)slsDetectorUsers
enablePixelMaskCorrection(int i=-1)slsDetectorUsers
enableWriteToFile(int i=-1)slsDetectorUsers
finalizeDataset(double *a, double *v, double *e, int &np)slsDetectorUsers [virtual]
getBeamEnergy()slsDetectorUsers
getCommand(int narg, char *args[], int pos=-1)slsDetectorUsers
getDetectorDeveloper()slsDetectorUsers
getDetectorFirmwareVersion()slsDetectorUsers
getDetectorSerialNumber()slsDetectorUsers
getDetectorSettings(string s)slsDetectorUsers [inline, static]
getDetectorSettings(int s)slsDetectorUsers [inline, static]
getDetectorSize(int &x0, int &y0, int &nx, int &ny)slsDetectorUsers
getDetectorSoftwareVersion()slsDetectorUsers
getDetectorStatus()slsDetectorUsers
getDetectorType()slsDetectorUsers
getFileIndex()slsDetectorUsers
getFileName()slsDetectorUsers
getFilePath()slsDetectorUsers
getFlatFieldCorrectionDir()slsDetectorUsers
getFlatFieldCorrectionFile()slsDetectorUsers
getMaximumDetectorSize(int &nx, int &ny)slsDetectorUsers
getModuleFirmwareVersion()slsDetectorUsers
getModuleSerialNumber(int imod=-1)slsDetectorUsers
getPositions(double *pos=NULL)slsDetectorUsers
getThisSoftwareVersion()slsDetectorUsers
getThresholdEnergy()slsDetectorUsers
getTimingMode(int f)slsDetectorUsers [inline, static]
getTimingMode(string s)slsDetectorUsers [inline, static]
initDataset(int refresh)slsDetectorUsers [virtual]
putCommand(int narg, char *args[], int pos=-1)slsDetectorUsers
readConfigurationFile(string const fname)slsDetectorUsers
registerAcquisitionFinishedCallback(int(*func)(double, int, void *), void *pArg)slsDetectorUsers
registerConnectChannelsCallback(int(*func)(void *), void *arg)slsDetectorUsers
registerDataCallback(int(*userCallback)(detectorData *d, int f, void *), void *pArg)slsDetectorUsers
registerDisconnectChannelsCallback(int(*func)(void *), void *arg)slsDetectorUsers
registerGetI0Callback(double(*func)(int, void *), void *arg)slsDetectorUsers
registerGetPositionCallback(double(*func)(void *), void *arg)slsDetectorUsers
registerGoToPositionCallback(int(*func)(double, void *), void *arg)slsDetectorUsers
registerGoToPositionNoWaitCallback(int(*func)(double, void *), void *arg)slsDetectorUsers
registerRawDataCallback(int(*userCallback)(double *p, int n, void *), void *pArg)slsDetectorUsers
retrieveDetectorSetup(string const fname)slsDetectorUsers
runStatusType(int s)slsDetectorUsers [inline, static]
setBeamEnergy(int e_eV)slsDetectorUsers
setBitDepth(int i=-1)slsDetectorUsers
setDelayAfterTrigger(double t=-1, bool inseconds=false)slsDetectorUsers
setDetectorSize(int x0=-1, int y0=-1, int nx=-1, int ny=-1)slsDetectorUsers
setExposurePeriod(double t=-1, bool inseconds=false)slsDetectorUsers
setExposureTime(double t=-1, bool inseconds=false)slsDetectorUsers
setFileIndex(int i)slsDetectorUsers
setFileName(string s)slsDetectorUsers
setFilePath(string s)slsDetectorUsers
setFlatFieldCorrectionDir(string dir)slsDetectorUsers
setFlatFieldCorrectionFile(string fname="")slsDetectorUsers
setNumberOfCycles(int64_t t=-1)slsDetectorUsers
setNumberOfFrames(int64_t t=-1)slsDetectorUsers
setNumberOfGates(int64_t t=-1)slsDetectorUsers
setOnline(int const online=-1)slsDetectorUsers
setPositions(int nPos, double *pos)slsDetectorUsers
setReceiverMode(int n=-1)slsDetectorUsers
setSettings(int isettings=-1)slsDetectorUsers
setThresholdEnergy(int e_eV)slsDetectorUsers
setTimingMode(int pol=-1)slsDetectorUsers
slsDetectorUsers(int id=0)slsDetectorUsers
startMeasurement()slsDetectorUsers
stopMeasurement()slsDetectorUsers
~slsDetectorUsers()slsDetectorUsers [virtual]


Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers.html b/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers.html deleted file mode 100644 index b5349be75..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers.html +++ /dev/null @@ -1,2372 +0,0 @@ - - -slsDetectorUsers Class Reference - - - - - - -

slsDetectorUsers Class Reference

Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc. -More... -

-#include <slsDetectorUsers.h> -

-List of all members. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

 slsDetectorUsers (int id=0)
 default constructor
virtual ~slsDetectorUsers ()
 virtual destructor
string getDetectorDeveloper ()
 useful to define subset of working functions
int setOnline (int const online=-1)
 sets the onlineFlag
void startMeasurement ()
 start measurement and acquires
int stopMeasurement ()
 stop measurement
int getDetectorStatus ()
 get run status
string getFilePath ()
 returns the default output files path
string setFilePath (string s)
 sets the default output files path
string getFileName ()
string setFileName (string s)
 sets the default output files path
int getFileIndex ()
int setFileIndex (int i)
 sets the default output file index
string getFlatFieldCorrectionDir ()
 get flat field corrections file directory
string setFlatFieldCorrectionDir (string dir)
 set flat field corrections file directory
string getFlatFieldCorrectionFile ()
 get flat field corrections file name
int setFlatFieldCorrectionFile (string fname="")
 set flat field correction file
int enableFlatFieldCorrection (int i=-1)
 enable/disable flat field corrections (without changing file name)
int enableCountRateCorrection (int i=-1)
 enable/disable count rate corrections
int enablePixelMaskCorrection (int i=-1)
 enable/disable bad channel corrections
int enableAngularConversion (int i=-1)
 enable/disable angular conversion
int enableWriteToFile (int i=-1)
int setPositions (int nPos, double *pos)
 set positions for the acquisition
int getPositions (double *pos=NULL)
 get positions for the acquisition
int setDetectorSize (int x0=-1, int y0=-1, int nx=-1, int ny=-1)
 sets the detector size
int getDetectorSize (int &x0, int &y0, int &nx, int &ny)
 gets detector size
int getMaximumDetectorSize (int &nx, int &ny)
 setsthe maximum detector size
int setBitDepth (int i=-1)
 set/get dynamic range
int setSettings (int isettings=-1)
 set detector settings
int getThresholdEnergy ()
 get threshold energy
int setThresholdEnergy (int e_eV)
 set threshold energy
int getBeamEnergy ()
 get beam energy -- only for dectris!
int setBeamEnergy (int e_eV)
 set beam energy -- only for dectris!
double setExposureTime (double t=-1, bool inseconds=false)
 set/get exposure time value
double setExposurePeriod (double t=-1, bool inseconds=false)
 set/get exposure period
double setDelayAfterTrigger (double t=-1, bool inseconds=false)
 set/get delay after trigger
int64_t setNumberOfGates (int64_t t=-1)
 set/get number of gates
int64_t setNumberOfFrames (int64_t t=-1)
 set/get number of frames i.e. number of exposure per trigger
int64_t setNumberOfCycles (int64_t t=-1)
 set/get number of cycles i.e. number of triggers
int setTimingMode (int pol=-1)
 set/get the external communication mode
int readConfigurationFile (string const fname)
 Reads the configuration file -- will contain all the informations needed for the configuration (e.g. for a PSI detector caldir, settingsdir, angconv, badchannels, hostname etc.).
int dumpDetectorSetup (string const fname)
 Reads the parameters from the detector and writes them to file.
int retrieveDetectorSetup (string const fname)
 Loads the detector setup from file.
string getDetectorType ()
 useful for data plotting etc.
int setReceiverMode (int n=-1)
 sets the mode by which gui requests data from receiver
void registerDataCallback (int(*userCallback)(detectorData *d, int f, void *), void *pArg)
 register calbback for accessing detector final data
void registerRawDataCallback (int(*userCallback)(double *p, int n, void *), void *pArg)
 register callback for accessing raw data - if the rawDataCallback is registered, no filewriting/postprocessing will be carried on automatically by the software - the raw data are deleted by the software
virtual void initDataset (int refresh)
 function to initalize a set of measurements (reset binning if angular conversion, reset summing otherwise) - can be overcome by the user's functions thanks to the virtual property
virtual void addFrame (double *data, double pos, double i0, double t, string fname, double var)
 adds frame to merging/summation - can be overcome by the user's functions thanks to the virtual property
virtual void finalizeDataset (double *a, double *v, double *e, int &np)
 finalizes the data set returning the array of angles, values and errors to be used as final data - can be overcome by the user's functions thanks to the virtual property
int64_t getModuleFirmwareVersion ()
int64_t getModuleSerialNumber (int imod=-1)
int64_t getDetectorFirmwareVersion ()
int64_t getDetectorSerialNumber ()
int64_t getDetectorSoftwareVersion ()
int64_t getThisSoftwareVersion ()
void registerAcquisitionFinishedCallback (int(*func)(double, int, void *), void *pArg)
 register calbback for accessing detector final data
void registerGetPositionCallback (double(*func)(void *), void *arg)
 register calbback for reading detector position
void registerConnectChannelsCallback (int(*func)(void *), void *arg)
 register callback for connecting to the epics channels
void registerDisconnectChannelsCallback (int(*func)(void *), void *arg)
 register callback to disconnect the epics channels
void registerGoToPositionCallback (int(*func)(double, void *), void *arg)
 register callback for moving the detector
void registerGoToPositionNoWaitCallback (int(*func)(double, void *), void *arg)
 register callback for moving the detector without waiting
void registerGetI0Callback (double(*func)(int, void *), void *arg)
 register calbback reading to I0
string putCommand (int narg, char *args[], int pos=-1)
 sets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf
string getCommand (int narg, char *args[], int pos=-1)
 gets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf

Static Public Member Functions

static string runStatusType (int s)
 returns string from run status index
static int getDetectorSettings (string s)
 returns detector settings string from index
static string getDetectorSettings (int s)
 returns detector settings string from index
static string getTimingMode (int f)
 returns external communication mode string from index
static int getTimingMode (string s)
 returns external communication mode string from index
-


Detailed Description

-Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc. -

- -

-Definition at line 84 of file slsDetectorUsers.h.


Constructor & Destructor Documentation

- -
-
- - - - - - - - - -
slsDetectorUsers::slsDetectorUsers (int  id = 0  ) 
-
-
- -

-default constructor -

- -

-

- -

-
- - - - - - - - -
virtual slsDetectorUsers::~slsDetectorUsers (  )  [virtual]
-
-
- -

-virtual destructor -

- -

-

-


Member Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
virtual void slsDetectorUsers::addFrame (double *  data,
double  pos,
double  i0,
double  t,
string  fname,
double  var 
) [virtual]
-
-
- -

-adds frame to merging/summation - can be overcome by the user's functions thanks to the virtual property -

-

Parameters:
- - - - - - - -
data pointer to the raw data
pos encoder position
i0 beam monitor readout for intensity normalization (if 0 not performed)
t exposure time in seconds, required only if rate corrections
fname file name (unused since filewriting would be performed by the user)
var optional parameter - unused.
-
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::dumpDetectorSetup (string const   fname  ) 
-
-
- -

-Reads the parameters from the detector and writes them to file. -

-

Parameters:
- - -
fname file to write to
-
-
Returns:
OK or FAIL
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::enableAngularConversion (int  i = -1  ) 
-
-
- -

-enable/disable angular conversion -

-

Parameters:
- - -
i 0 disables, 1 enables, -1 gets
-
-
Returns:
0 if angular conversion disabled, 1 if enabled
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::enableCountRateCorrection (int  i = -1  ) 
-
-
- -

-enable/disable count rate corrections -

-

Parameters:
- - -
i 0 disables, 1 enable, -1 gets
-
-
Returns:
0 if count corrections disabled, 1 if enabled
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::enableFlatFieldCorrection (int  i = -1  ) 
-
-
- -

-enable/disable flat field corrections (without changing file name) -

-

Parameters:
- - -
i 0 disables, 1 enables, -1 gets
-
-
Returns:
0 if ff corrections disabled, 1 if enabled
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::enablePixelMaskCorrection (int  i = -1  ) 
-
-
- -

-enable/disable bad channel corrections -

-

Parameters:
- - -
i 0 disables, 1 enables, -1 gets
-
-
Returns:
0 if bad channels corrections disabled, 1 if enabled
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::enableWriteToFile (int  i = -1  ) 
-
-
- -

-Enable write file function included -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
virtual void slsDetectorUsers::finalizeDataset (double *  a,
double *  v,
double *  e,
int &  np 
) [virtual]
-
-
- -

-finalizes the data set returning the array of angles, values and errors to be used as final data - can be overcome by the user's functions thanks to the virtual property -

-

Parameters:
- - - - - -
a pointer to the array of angles - can be null if no angular coversion is required
v pointer to the array of values
e pointer to the array of errors
np reference returning the number of points
-
- -
-

- -

-
- - - - - - - - -
int slsDetectorUsers::getBeamEnergy (  ) 
-
-
- -

-get beam energy -- only for dectris! -

-

Returns:
current beam energy
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
string slsDetectorUsers::getCommand (int  narg,
char *  args[],
int  pos = -1 
)
-
-
- -

-gets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf -

-

Parameters:
- - - - -
narg value to be set
args value to be set
pos position of detector in multislsdetector list
-
-
Returns:
answer string
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - -
string slsDetectorUsers::getDetectorDeveloper (  ) 
-
-
- -

-useful to define subset of working functions -

-

Returns:
"PSI" or "Dectris"
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - -
int64_t slsDetectorUsers::getDetectorFirmwareVersion (  ) 
-
-
- -

-get get Detector Firmware Version

Returns:
id
- -
-

- -

-
- - - - - - - - -
int64_t slsDetectorUsers::getDetectorSerialNumber (  ) 
-
-
- -

-get get Detector Serial Number

Returns:
id
- -
-

- -

-
- - - - - - - - - -
static string slsDetectorUsers::getDetectorSettings (int  s  )  [inline, static]
-
-
- -

-returns detector settings string from index -

-

Parameters:
- - -
s settings index
-
-
Returns:
standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain, undefined when wrong index
- -

-Definition at line 589 of file slsDetectorUsers.h. -

-

- -

-
- - - - - - - - - -
static int slsDetectorUsers::getDetectorSettings (string  s  )  [inline, static]
-
-
- -

-returns detector settings string from index -

-

Parameters:
- - -
s can be standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain
-
-
Returns:
setting index (-1 unknown string)
- -

-Definition at line 575 of file slsDetectorUsers.h. -

-Referenced by main(). -

-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
int slsDetectorUsers::getDetectorSize (int &  x0,
int &  y0,
int &  nx,
int &  ny 
)
-
-
- -

-gets detector size -

-

Parameters:
- - - - - -
x0 horizontal position origin in channel number
y0 vertical position origin in channel number
nx number of channels in horiziontal
ny number of channels in vertical
-
-
Returns:
OK/FAIL
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - -
int64_t slsDetectorUsers::getDetectorSoftwareVersion (  ) 
-
-
- -

-get get Detector Software Version

Returns:
id
- -
-

- -

-
- - - - - - - - -
int slsDetectorUsers::getDetectorStatus (  ) 
-
-
- -

-get run status -

-

Returns:
status mask
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - -
string slsDetectorUsers::getDetectorType (  ) 
-
-
- -

-useful for data plotting etc. -

-

Returns:
Mythen, Eiger, Gotthard etc.
- -
-

- -

-
- - - - - - - - -
int slsDetectorUsers::getFileIndex (  ) 
-
-
- -

-

Returns:
the default output file index
- -
-

- -

-
- - - - - - - - -
string slsDetectorUsers::getFileName (  ) 
-
-
- -

-

Returns:
the default output files root name
- -
-

- -

-
- - - - - - - - -
string slsDetectorUsers::getFilePath (  ) 
-
-
- -

-returns the default output files path -

- -

-

- -

-
- - - - - - - - -
string slsDetectorUsers::getFlatFieldCorrectionDir (  ) 
-
-
- -

-get flat field corrections file directory -

-

Returns:
flat field correction file directory
- -
-

- -

-
- - - - - - - - -
string slsDetectorUsers::getFlatFieldCorrectionFile (  ) 
-
-
- -

-get flat field corrections file name -

-

Returns:
flat field correction file name
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
int slsDetectorUsers::getMaximumDetectorSize (int &  nx,
int &  ny 
)
-
-
- -

-setsthe maximum detector size -

-

Parameters:
- - - - - -
x0 horizontal position origin in channel number
y0 vertical position origin in channel number
nx number of channels in horiziontal
ny number of channels in vertical
-
-
Returns:
OK/FAIL
- -
-

- -

-
- - - - - - - - -
int64_t slsDetectorUsers::getModuleFirmwareVersion (  ) 
-
-
- -

-get get Module Firmware Version

Returns:
id
- -
-

- -

-
- - - - - - - - - -
int64_t slsDetectorUsers::getModuleSerialNumber (int  imod = -1  ) 
-
-
- -

-get get Module Serial Number

Parameters:
- - -
imod module number
-
-
Returns:
id
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::getPositions (double *  pos = NULL  ) 
-
-
- -

-get positions for the acquisition -

-

Parameters:
- - -
pos array which will contain the encoder positions
-
-
Returns:
number of positions
- -
-

- -

-
- - - - - - - - -
int64_t slsDetectorUsers::getThisSoftwareVersion (  ) 
-
-
- -

-get this Software Version

Returns:
id
- -
-

- -

-
- - - - - - - - -
int slsDetectorUsers::getThresholdEnergy (  ) 
-
-
- -

-get threshold energy -

-

Returns:
current threshold value for imod in ev (-1 failed)
- -
-

- -

-
- - - - - - - - - -
static int slsDetectorUsers::getTimingMode (string  s  )  [inline, static]
-
-
- -

-returns external communication mode string from index -

-

Parameters:
- - -
f index for communication mode
-
-
Returns:
auto, trigger, ro_trigger, gating, triggered_gating, unknown when wrong mode
- -

-Definition at line 625 of file slsDetectorUsers.h. -

-

- -

-
- - - - - - - - - -
static string slsDetectorUsers::getTimingMode (int  f  )  [inline, static]
-
-
- -

-returns external communication mode string from index -

-

Parameters:
- - -
f index for communication mode
-
-
Returns:
auto, trigger, ro_trigger, gating, triggered_gating, unknown when wrong mode
- -

-Definition at line 609 of file slsDetectorUsers.h. -

-

- -

-
- - - - - - - - - -
virtual void slsDetectorUsers::initDataset (int  refresh  )  [virtual]
-
-
- -

-function to initalize a set of measurements (reset binning if angular conversion, reset summing otherwise) - can be overcome by the user's functions thanks to the virtual property -

-

Parameters:
- - -
refresh if 1, all parameters like ffcoefficients, badchannels, ratecorrections etc. are reset (should be called at least onece with this option), if 0 simply reset merging/ summation
-
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - -
string slsDetectorUsers::putCommand (int  narg,
char *  args[],
int  pos = -1 
)
-
-
- -

-sets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf -

-

Parameters:
- - - - -
narg value to be set
args value to be set
pos position of detector in multislsdetector list
-
-
Returns:
answer string
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::readConfigurationFile (string const   fname  ) 
-
-
- -

-Reads the configuration file -- will contain all the informations needed for the configuration (e.g. for a PSI detector caldir, settingsdir, angconv, badchannels, hostname etc.). -

-

Parameters:
- - -
fname file name
-
-
Returns:
OK or FAIL
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsDetectorUsers::registerAcquisitionFinishedCallback (int(*)(double, int, void *)  func,
void *  pArg 
)
-
-
- -

-register calbback for accessing detector final data -

-

Parameters:
- - -
func function to be called at the end of the acquisition. gets detector status and progress index as arguments
-
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsDetectorUsers::registerConnectChannelsCallback (int(*)(void *)  func,
void *  arg 
)
-
-
- -

-register callback for connecting to the epics channels -

-

Parameters:
- - -
func function for connecting to the epics channels
-
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsDetectorUsers::registerDataCallback (int(*)(detectorData *d, int f, void *)  userCallback,
void *  pArg 
)
-
-
- -

-register calbback for accessing detector final data -

-

Parameters:
- - -
userCallback function for plotting/analyzing the data. Its arguments are the data structure d and the frame number f.
-
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsDetectorUsers::registerDisconnectChannelsCallback (int(*)(void *)  func,
void *  arg 
)
-
-
- -

-register callback to disconnect the epics channels -

-

Parameters:
- - -
func function to disconnect the epics channels
-
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsDetectorUsers::registerGetI0Callback (double(*)(int, void *)  func,
void *  arg 
)
-
-
- -

-register calbback reading to I0 -

-

Parameters:
- - -
func function for reading the I0 (called with parameter 0 before the acquisition, 1 after and the return value used as I0)
-
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsDetectorUsers::registerGetPositionCallback (double(*)(void *)  func,
void *  arg 
)
-
-
- -

-register calbback for reading detector position -

-

Parameters:
- - -
func function for reading the detector position
-
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsDetectorUsers::registerGoToPositionCallback (int(*)(double, void *)  func,
void *  arg 
)
-
-
- -

-register callback for moving the detector -

-

Parameters:
- - -
func function for moving the detector
-
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsDetectorUsers::registerGoToPositionNoWaitCallback (int(*)(double, void *)  func,
void *  arg 
)
-
-
- -

-register callback for moving the detector without waiting -

-

Parameters:
- - -
func function for moving the detector
-
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsDetectorUsers::registerRawDataCallback (int(*)(double *p, int n, void *)  userCallback,
void *  pArg 
)
-
-
- -

-register callback for accessing raw data - if the rawDataCallback is registered, no filewriting/postprocessing will be carried on automatically by the software - the raw data are deleted by the software -

-

Parameters:
- - -
userCallback function for postprocessing and saving the data - p is the pointer to the data, n is the number of channels
-
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::retrieveDetectorSetup (string const   fname  ) 
-
-
- -

-Loads the detector setup from file. -

-

Parameters:
- - -
fname file to read from
-
-
Returns:
OK or FAIL
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - - -
static string slsDetectorUsers::runStatusType (int  s  )  [inline, static]
-
-
- -

-returns string from run status index -

-

Parameters:
- - -
s run status index
-
-
Returns:
string error, waiting, running, data, finished or unknown when wrong index
- -

-Definition at line 557 of file slsDetectorUsers.h. -

-Referenced by main(). -

-

- -

-
- - - - - - - - - -
int slsDetectorUsers::setBeamEnergy (int  e_eV  ) 
-
-
- -

-set beam energy -- only for dectris! -

-

Parameters:
- - -
e_eV beam in eV
-
-
Returns:
current beam energyin ev (-1 failed)
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::setBitDepth (int  i = -1  ) 
-
-
- -

-set/get dynamic range -

-

Parameters:
- - -
i dynamic range (-1 get)
-
-
Returns:
current dynamic range
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
double slsDetectorUsers::setDelayAfterTrigger (double  t = -1,
bool  inseconds = false 
)
-
-
- -

-set/get delay after trigger -

-

Parameters:
- - - -
t time in ns (-1 gets)
inseconds true if the value is in s, else ns
-
-
Returns:
timer set value in ns, or s if specified
- -
-

- -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
int slsDetectorUsers::setDetectorSize (int  x0 = -1,
int  y0 = -1,
int  nx = -1,
int  ny = -1 
)
-
-
- -

-sets the detector size -

-

Parameters:
- - - - - -
x0 horizontal position origin in channel number (-1 unchanged)
y0 vertical position origin in channel number (-1 unchanged)
nx number of channels in horiziontal (-1 unchanged)
ny number of channels in vertical (-1 unchanged)
-
-
Returns:
OK/FAIL
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - - - - - - - - - - - -
double slsDetectorUsers::setExposurePeriod (double  t = -1,
bool  inseconds = false 
)
-
-
- -

-set/get exposure period -

-

Parameters:
- - - -
t time in ns (-1 gets)
inseconds true if the value is in s, else ns
-
-
Returns:
timer set value in ns, or s if specified
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - - - - - - - - - - - -
double slsDetectorUsers::setExposureTime (double  t = -1,
bool  inseconds = false 
)
-
-
- -

-set/get exposure time value -

-

Parameters:
- - - -
t time in sn (-1 gets)
inseconds true if the value is in s, else ns
-
-
Returns:
timer set value in ns, or s if specified
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - - -
int slsDetectorUsers::setFileIndex (int  i  ) 
-
-
- -

-sets the default output file index -

-

Parameters:
- - -
i file index
-
-
Returns:
the default output file index
- -
-

- -

-
- - - - - - - - - -
string slsDetectorUsers::setFileName (string  s  ) 
-
-
- -

-sets the default output files path -

-

Parameters:
- - -
s file name
-
-
Returns:
the default output files root name
- -
-

- -

-
- - - - - - - - - -
string slsDetectorUsers::setFilePath (string  s  ) 
-
-
- -

-sets the default output files path -

-

Parameters:
- - -
s file path
-
-
Returns:
file path
- -
-

- -

-
- - - - - - - - - -
string slsDetectorUsers::setFlatFieldCorrectionDir (string  dir  ) 
-
-
- -

-set flat field corrections file directory -

-

Parameters:
- - -
dir flat field correction file directory
-
-
Returns:
flat field correction file directory
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::setFlatFieldCorrectionFile (string  fname = ""  ) 
-
-
- -

-set flat field correction file -

-

Parameters:
- - -
fname name of the flat field file (or "" if disable)
-
-
Returns:
0 if disable (or file could not be read), >0 otherwise
- -
-

- -

-
- - - - - - - - - -
int64_t slsDetectorUsers::setNumberOfCycles (int64_t  t = -1  ) 
-
-
- -

-set/get number of cycles i.e. number of triggers -

-

Parameters:
- - -
t number of frames (-1 gets)
-
-
Returns:
number of frames
- -
-

- -

-
- - - - - - - - - -
int64_t slsDetectorUsers::setNumberOfFrames (int64_t  t = -1  ) 
-
-
- -

-set/get number of frames i.e. number of exposure per trigger -

-

Parameters:
- - -
t number of frames (-1 gets)
-
-
Returns:
number of frames
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - - -
int64_t slsDetectorUsers::setNumberOfGates (int64_t  t = -1  ) 
-
-
- -

-set/get number of gates -

-

Parameters:
- - -
t number of gates (-1 gets)
-
-
Returns:
number of gates
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::setOnline (int const   online = -1  ) 
-
-
- -

-sets the onlineFlag -

-

Parameters:
- - -
online can be: -1 returns wether the detector is in online (1) or offline (0) state; 0 detector in offline state; 1 detector in online state
-
-
Returns:
0 (offline) or 1 (online)
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - - - - - - - - - - - -
int slsDetectorUsers::setPositions (int  nPos,
double *  pos 
)
-
-
- -

-set positions for the acquisition -

-

Parameters:
- - - -
nPos number of positions
pos array with the encoder positions
-
-
Returns:
number of positions
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::setReceiverMode (int  n = -1  ) 
-
-
- -

-sets the mode by which gui requests data from receiver -

-

Parameters:
- - -
n is 0 for random requests for fast acquisitions and greater than 0 for nth read requests
-
-
Returns:
the mode set in the receiver
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::setSettings (int  isettings = -1  ) 
-
-
- -

-set detector settings -

-

Parameters:
- - -
isettings settings index (-1 gets)
-
-
Returns:
current settings
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - - -
int slsDetectorUsers::setThresholdEnergy (int  e_eV  ) 
-
-
- -

-set threshold energy -

-

Parameters:
- - -
e_eV threshold in eV
-
-
Returns:
current threshold value for imod in ev (-1 failed)
- -
-

- -

-
- - - - - - - - - -
int slsDetectorUsers::setTimingMode (int  pol = -1  ) 
-
-
- -

-set/get the external communication mode -

-

Parameters:
- - -
pol value to be set
-
-
See also:
getTimingMode
-
Returns:
current external communication mode
- -
-

- -

-
- - - - - - - - -
void slsDetectorUsers::startMeasurement (  ) 
-
-
- -

-start measurement and acquires -

-

Returns:
OK/FAIL
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - -
int slsDetectorUsers::stopMeasurement (  ) 
-
-
- -

-stop measurement -

-

Returns:
OK/FAIL
- -
-

-


The documentation for this class was generated from the following file: -
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers-members.html b/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers-members.html deleted file mode 100644 index 87b08ce16..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers-members.html +++ /dev/null @@ -1,35 +0,0 @@ - - -Member List - - - - - - -

slsReceiverUsers Member List

This is the complete list of members for slsReceiverUsers, including all inherited members.

- - - - - - - - - - -
closeFile(int p)slsReceiverUsers
getReceiverVersion()slsReceiverUsers
receiverslsReceiverUsers [static]
registerCallBackAcquisitionFinished(void(*func)(int nf, void *), void *arg)slsReceiverUsers
registerCallBackRawDataReady(void(*func)(int framenumber, char *datapointer, int datasize, FILE *filedescriptor, char *guidatapointer, void *), void *arg)slsReceiverUsers
registerCallBackStartAcquisition(int(*func)(char *filepath, char *filename, int fileindex, int datasize, void *), void *arg)slsReceiverUsers
slsReceiverUsers(int argc, char *argv[], int &success)slsReceiverUsers
start()slsReceiverUsers
stop()slsReceiverUsers
~slsReceiverUsers()slsReceiverUsers


Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers.html b/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers.html deleted file mode 100644 index b8db2c7d7..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers.html +++ /dev/null @@ -1,332 +0,0 @@ - - -slsReceiverUsers Class Reference - - - - - - -

slsReceiverUsers Class Reference

Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data. -More... -

-#include <slsReceiverUsers.h> -

-List of all members. - - - - - - - - - - - - - - - - - - - - - - - -

Public Member Functions

 slsReceiverUsers (int argc, char *argv[], int &success)
 ~slsReceiverUsers ()
void closeFile (int p)
int start ()
void stop ()
int64_t getReceiverVersion ()
void registerCallBackStartAcquisition (int(*func)(char *filepath, char *filename, int fileindex, int datasize, void *), void *arg)
void registerCallBackAcquisitionFinished (void(*func)(int nf, void *), void *arg)
void registerCallBackRawDataReady (void(*func)(int framenumber, char *datapointer, int datasize, FILE *filedescriptor, char *guidatapointer, void *), void *arg)

Static Public Attributes

static slsReceiverTCPIPInterface * receiver
-


Detailed Description

-Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data. -

-slsReceiverUsers is a class that can be instantiated in the users software to receive the data from the detectors. Callbacks can be defined for processing and/or saving data -

- -

-Definition at line 21 of file slsReceiverUsers.h.


Constructor & Destructor Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
slsReceiverUsers::slsReceiverUsers (int  argc,
char *  argv[],
int &  success 
)
-
-
- -

-Constructor reads config file, creates socket, assigns function table

Parameters:
- - - - -
argc from command line
argv from command line
succecc socket creation was successfull
-
- -
-

- -

-
- - - - - - - - -
slsReceiverUsers::~slsReceiverUsers (  ) 
-
-
- -

-Destructor -

-

-


Member Function Documentation

- -
-
- - - - - - - - - -
void slsReceiverUsers::closeFile (int  p  ) 
-
-
- -

-Close File and exits receiver server -

-

- -

-
- - - - - - - - -
int64_t slsReceiverUsers::getReceiverVersion (  ) 
-
-
- -

-get get Receiver Version

Returns:
id
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsReceiverUsers::registerCallBackAcquisitionFinished (void(*)(int nf, void *)  func,
void *  arg 
)
-
-
- -

-register callback for end of acquisition

Parameters:
- - -
func end of acquisition callback. Argument nf is total frames caught
-
-
Returns:
nothing
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsReceiverUsers::registerCallBackRawDataReady (void(*)(int framenumber, char *datapointer, int datasize, FILE *filedescriptor, char *guidatapointer, void *)  func,
void *  arg 
)
-
-
- -

-register callback to be called when data are available (to process and/or save the data).

Parameters:
- - -
func raw data ready callback. arguments are framenum datapointer datasize file descriptor guidatapointer (NULL, no data required)
-
-
Returns:
nothing
- -
-

- -

-
- - - - - - - - - - - - - - - - - - -
void slsReceiverUsers::registerCallBackStartAcquisition (int(*)(char *filepath, char *filename, int fileindex, int datasize, void *)  func,
void *  arg 
)
-
-
- -

-register calbback for starting the acquisition

Parameters:
- - -
func callback to be called when starting the acquisition. Its arguments are filepath filename fileindex data size
-
-
Returns:
0 callback takes care of open,close,write file; 1 callback writes file, we have to open, close it; 2 we open, close, write file, callback does not do anything
- -
-

- -

-
- - - - - - - - -
int slsReceiverUsers::start (  ) 
-
-
- -

-starts listening on the TCP port for client comminication

Returns:
0 for success or 1 for FAIL in creating TCP server
- -

-Referenced by main(). -

-

- -

-
- - - - - - - - -
void slsReceiverUsers::stop (  ) 
-
-
- -

-stops listening to the TCP & UDP port and exit receiver program -

-Referenced by main(). -

-

-


Member Data Documentation

- -
-
- - - - -
slsReceiverTCPIPInterface* slsReceiverUsers::receiver [static]
-
-
- -

- -

-Definition at line 87 of file slsReceiverUsers.h. -

-

-


The documentation for this class was generated from the following file: -
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h-source.html b/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h-source.html deleted file mode 100644 index 735528619..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h-source.html +++ /dev/null @@ -1,46 +0,0 @@ - - -detectorData.h Source File - - - - - - -

detectorData.h

Go to the documentation of this file.
00001 
-00002 #include <unistd.h>
-00003 #include <cstring>
-00004 #ifndef DETECTOR_DATA_H
-00005 #define DETECTOR_DATA_H
-00006 
-00009 class detectorData {
-00010  public:
-00020   detectorData(double *val=NULL, double *err=NULL, double *ang=NULL,  double p_ind=-1, const char *fname="", int np=-1, int ny=1) : values(val), errors(err), angles(ang),  progressIndex(p_ind), npoints(np), npy(ny){strcpy(fileName,fname);};
-00025     ~detectorData() {if (values) delete [] values; if (errors) delete [] errors; if (angles) delete [] angles;};
-00026     //private:
-00027     double *values; 
-00028     double *errors; 
-00029     double *angles;
-00030     double progressIndex;
-00031     char fileName[1000];
-00032     int npoints;
-00033     int npy;
-00034 };
-00035 
-00036 
-00037 #endif
-

Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h.html b/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h.html deleted file mode 100644 index 7f295694e..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h.html +++ /dev/null @@ -1,35 +0,0 @@ - - -detectorData.h File Reference - - - - - - -

detectorData.h File Reference

#include <unistd.h>
-#include <cstring>
- -

-Go to the source code of this file. - - - - - -

Classes

class  detectorData
 data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) More...
-


Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/doxygen.css b/manual/manual-api/slsDetectorUsersDocs/html/doxygen.css deleted file mode 100644 index 5d583694e..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/doxygen.css +++ /dev/null @@ -1,358 +0,0 @@ -BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { - font-family: Geneva, Arial, Helvetica, sans-serif; -} -BODY,TD { - font-size: 90%; -} -H1 { - text-align: center; - font-size: 160%; -} -H2 { - font-size: 120%; -} -H3 { - font-size: 100%; -} -CAPTION { font-weight: bold } -DIV.qindex { - width: 100%; - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -DIV.nav { - width: 100%; - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -DIV.navtab { - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} -TD.navtab { - font-size: 70%; -} -A.qindex { - text-decoration: none; - font-weight: bold; - color: #1A419D; -} -A.qindex:visited { - text-decoration: none; - font-weight: bold; - color: #1A419D -} -A.qindex:hover { - text-decoration: none; - background-color: #ddddff; -} -A.qindexHL { - text-decoration: none; - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - border: 1px double #9295C2; -} -A.qindexHL:hover { - text-decoration: none; - background-color: #6666cc; - color: #ffffff; -} -A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } -A.el { text-decoration: none; font-weight: bold } -A.elRef { font-weight: bold } -A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} -A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} -A.codeRef:link { font-weight: normal; color: #0000FF} -A.codeRef:visited { font-weight: normal; color: #0000FF} -A:hover { text-decoration: none; background-color: #f2f2ff } -DL.el { margin-left: -1cm } -.fragment { - font-family: monospace, fixed; - font-size: 95%; -} -PRE.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - margin-top: 4px; - margin-bottom: 4px; - margin-left: 2px; - margin-right: 8px; - padding-left: 6px; - padding-right: 6px; - padding-top: 4px; - padding-bottom: 4px; -} -DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } - -DIV.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} -DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } -BODY { - background: white; - color: black; - margin-right: 20px; - margin-left: 20px; -} -TD.indexkey { - background-color: #e8eef2; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TD.indexvalue { - background-color: #e8eef2; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TR.memlist { - background-color: #f0f0f0; -} -P.formulaDsp { text-align: center; } -IMG.formulaDsp { } -IMG.formulaInl { vertical-align: middle; } -SPAN.keyword { color: #008000 } -SPAN.keywordtype { color: #604020 } -SPAN.keywordflow { color: #e08000 } -SPAN.comment { color: #800000 } -SPAN.preprocessor { color: #806020 } -SPAN.stringliteral { color: #002080 } -SPAN.charliteral { color: #008080 } -.mdescLeft { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.mdescRight { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.memItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplParams { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - color: #606060; - background-color: #FAFAFA; - font-size: 80%; -} -.search { color: #003399; - font-weight: bold; -} -FORM.search { - margin-bottom: 0px; - margin-top: 0px; -} -INPUT.search { font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -TD.tiny { font-size: 75%; -} -a { - color: #1A41A8; -} -a:visited { - color: #2A3798; -} -.dirtab { padding: 4px; - border-collapse: collapse; - border: 1px solid #84b0c7; -} -TH.dirtab { background: #e8eef2; - font-weight: bold; -} -HR { height: 1px; - border: none; - border-top: 1px solid black; -} - -/* Style for detailed member documentation */ -.memtemplate { - font-size: 80%; - color: #606060; - font-weight: normal; -} -.memnav { - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} -.memitem { - padding: 4px; - background-color: #eef3f5; - border-width: 1px; - border-style: solid; - border-color: #dedeee; - -moz-border-radius: 8px 8px 8px 8px; -} -.memname { - white-space: nowrap; - font-weight: bold; -} -.memdoc{ - padding-left: 10px; -} -.memproto { - background-color: #d5e1e8; - width: 100%; - border-width: 1px; - border-style: solid; - border-color: #84b0c7; - font-weight: bold; - -moz-border-radius: 8px 8px 8px 8px; -} -.paramkey { - text-align: right; -} -.paramtype { - white-space: nowrap; -} -.paramname { - color: #602020; - font-style: italic; -} -/* End Styling for detailed member documentation */ - -/* for the tree view */ -.ftvtree { - font-family: sans-serif; - margin:0.5em; -} -.directory { font-size: 9pt; font-weight: bold; } -.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } -.directory > h3 { margin-top: 0; } -.directory p { margin: 0px; white-space: nowrap; } -.directory div { display: none; margin: 0px; } -.directory img { vertical-align: -30%; } - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/files.html b/manual/manual-api/slsDetectorUsersDocs/html/files.html deleted file mode 100644 index e515abe87..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/files.html +++ /dev/null @@ -1,31 +0,0 @@ - - -File Index - - - - - - -

File List

Here is a list of all files with brief descriptions: - - - - - -
detectorData.h [code]
mainClient.cpp [code]
mainReceiver.cpp [code]
slsDetectorUsers.h [code]
slsReceiverUsers.h [code]
-
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/functions.html b/manual/manual-api/slsDetectorUsersDocs/html/functions.html deleted file mode 100644 index 9eba86848..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/functions.html +++ /dev/null @@ -1,165 +0,0 @@ - - -Class Members - - - - - - -
- -
-
- -
- -

-Here is a list of all class members with links to the classes they belong to: -

-

- a -

-

- c -

-

- d -

-

- e -

-

- f -

-

- g -

-

- i -

-

- n -

-

- p -

-

- r -

-

- s -

-

- v -

-

- ~ -

-
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/functions_func.html b/manual/manual-api/slsDetectorUsersDocs/html/functions_func.html deleted file mode 100644 index 02750ac7a..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/functions_func.html +++ /dev/null @@ -1,151 +0,0 @@ - - -Class Members - Functions - - - - - - -
- -
-
- -
- -

-  -

-

- a -

-

- c -

-

- d -

-

- e -

-

- f -

-

- g -

-

- i -

-

- p -

-

- r -

-

- s -

-

- ~ -

-
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/functions_vars.html b/manual/manual-api/slsDetectorUsersDocs/html/functions_vars.html deleted file mode 100644 index f54722cbb..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/functions_vars.html +++ /dev/null @@ -1,43 +0,0 @@ - - -Class Members - Variables - - - - - - -
- -
-  -

-

-
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/globals.html b/manual/manual-api/slsDetectorUsersDocs/html/globals.html deleted file mode 100644 index add1a9719..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/globals.html +++ /dev/null @@ -1,36 +0,0 @@ - - -Class Members - - - - - - -
- -
-Here is a list of all file members with links to the files they belong to: -

-

-
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/globals_func.html b/manual/manual-api/slsDetectorUsersDocs/html/globals_func.html deleted file mode 100644 index 1e6e34efc..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/globals_func.html +++ /dev/null @@ -1,36 +0,0 @@ - - -Class Members - - - - - - -
- -
-  -

-

-
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/index.html b/manual/manual-api/slsDetectorUsersDocs/html/index.html deleted file mode 100644 index 709537162..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/index.html +++ /dev/null @@ -1,49 +0,0 @@ - - -Main Page - - - - - -

-

-

API for SLS detectors data acquisition

-

-


-

-Although the SLS detectors group delvelops several types of detectors (1/2D, counting/integrating etc.) it is common interest of the group to use a common platfor for data acquisition

-The architecture of the acquisitions system is intended as follows:

    -
  • A socket server running on the detector (or more than one in some special cases)
  • -
  • C++ classes common to all detectors for client-server communication. These can be supplied to users as libraries and embedded also in acquisition systems which are not developed by the SLS
  • -
  • the possibility of using a Qt-based graphical user interface (with eventually root analisys capabilities)
  • -
  • the possibility of running all commands from command line. In order to ensure a fast operation of this so called "text client" the detector parameters should not be re-initialized everytime. For this reason a shared memory block is allocated where the main detector flags and parameters are stored
  • -
  • a Root library for data postprocessing and detector calibration (energy, angle).
  • -
-slsDetectorUsers is a class to control the detector which should be instantiated by the users in their acquisition software (EPICS, spec etc.). A callback for dislaying the data can be registered. More advanced configuration functions are not implemented and can be written in a configuration file tha can be read/written.

-slsReceiverUsers is a class to receive the data for detectors with external data receiver (e.g. GOTTHARD). Callbacks can be registered to process the data or save them in specific formats.

-detectorData is a structure containing the data and additional information which is used to return the data e.g. to the GUI for displaying them.

-You can find examples of how this classes can be instatiated in mainClient.cpp and mainReceiver.cpp

-

Authors:
Anna Bergamaschi, Dhanya Maliakal
-
Version:
0.2

Currently supported detectors

-
-
    -
  • MYTHEN
  • -
  • GOTTHARD controls
  • -
  • GOTTHARD data receiver

    Coming soon

    -
  • -
-
    -
  • EIGER
  • -
-
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp-source.html b/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp-source.html deleted file mode 100644 index 1d3567347..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp-source.html +++ /dev/null @@ -1,97 +0,0 @@ - - -mainClient.cpp Source File - - - - - - -

mainClient.cpp

Go to the documentation of this file.
00001 
-00013 #include <iostream>  
-00014 #include "slsDetectorUsers.h"
-00015 #include "detectorData.h"
-00016 
-00017 
-00019 int dataCallback(detectorData *pData, int iframe, void *pArg)
-00020 {
-00021   std::cout  << "dataCallback: " << pData->npoints  << " "  << pData->npy  << "Frame number: " << iframe << std::endl; 
-00022 }
-00023 
-00024 
-00026 int main(int argc,  char *argv[]) {
-00027   int id=0;
-00028   int status;
-00030   if (argc>=3)
-00031     id=atoi(argv[2]);
-00032   
-00033 
-00034 
-00036   slsDetectorUsers *pDetector = new  slsDetectorUsers (id); 
-00037 
-00038   
-00040   if (argc>=2)
-00041     pDetector->readConfigurationFile(argv[1]);
-00042  
-00044    pDetector->setOnline(1);
-00045 
-00047    if (argc>=3)
-00048            pDetector->retrieveDetectorSetup( argv[2]);
-00049    else{
-00051     int minX, minY=0, sizeX, sizeY=1;
-00052     pDetector->getDetectorSize(minX, minY, sizeX,  sizeY); 
-00053     std::cout  << "X: Start=" << minX << ", Size= "  << sizeX  << std::endl; 
-00054     std::cout  << "Y: Start=" << minY << ", Size= "  << sizeY  << std::endl; 
-00055     pDetector->setDetectorSize(0,0,7680,1);
-00056     std::cout  <<  pDetector->getDetectorDeveloper()  << std::endl; 
-00057 
-00059     pDetector->registerDataCallback(&dataCallback, NULL); 
-00060 
-00062     status = pDetector->getDetectorStatus();
-00063     if (status  !=  0){
-00064       std::cout << "Detector not ready: " << slsDetectorUsers::runStatusType(status) << std::endl; 
-00065       return 1; 
-00066     }
-00067 
-00069     std::cout  << "settings: "  << slsDetectorUsers::getDetectorSettings(pDetector->setSettings()) << std::endl; 
-00070     pDetector->setSettings(slsDetectorUsers::getDetectorSettings("veryhighgain"));
-00071     std::cout  << "settings: "  << slsDetectorUsers::getDetectorSettings(pDetector->setSettings()) << std::endl; 
-00072 
-00074      pDetector->setExposureTime(10000000); 
-00075 
-00077      pDetector->setExposurePeriod(100000000);
-00078  
-00080      pDetector->setNumberOfFrames(30);
-00081 }
-00083      pDetector->startMeasurement(); 
-00084 
-00085      while (1) {
-00086        usleep(100000); 
-00087         status = pDetector->getDetectorStatus();
-00088         if (status  == 0 || status == 1|| status == 3)
-00089           break; 
-00090      }
-00091 
-00092      char *temp[] = {"receiver", NULL};
-00094         std::cout << "answer to a get command:" << pDetector->getCommand(1,temp,0) << std::endl;
-00095     
-00096      delete pDetector; 
-00097      
-00098      return 0; 
-00099 }
-00100 
-

Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp.html b/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp.html deleted file mode 100644 index 7e0d1ea4b..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp.html +++ /dev/null @@ -1,132 +0,0 @@ - - -mainClient.cpp File Reference - - - - - - -

mainClient.cpp File Reference

#include <iostream>
-#include "slsDetectorUsers.h"
-#include "detectorData.h"
- -

-Go to the source code of this file. - - - - - - -

Functions

int dataCallback (detectorData *pData, int iframe, void *pArg)
int main (int argc, char *argv[])
-


Detailed Description

-This file is an example of how to implement the slsDetectorUsers class You can compile it linking it to the slsDetector library

-gcc mainClient.cpp -L lib -l SlsDetector -lm -lpthread

-where lib is the location of libSlsDetector.so -

-Definition in file mainClient.cpp.


Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
int dataCallback (detectorData pData,
int  iframe,
void *  pArg 
)
-
-
- -

-Definition of the data callback which simply prints out the number of points received and teh frame number -

-Definition at line 19 of file mainClient.cpp. -

-References detectorData::npoints, and detectorData::npy. -

-Referenced by main(). -

-

- -

-
- - - - - - - - - - - - - - - - - - -
int main (int  argc,
char *  argv[] 
)
-
-
- -

-example of a main program using the slsDetectorUsers class -

-if specified, argv[2] is used as detector ID (default is 0)

-slsDetectorUsers is instantiated

-if specified, argv[1] is used as detector config file (necessary at least the first time it is called to properly configure advanced settings in the shared memory)

-Setting the detector online (should be by default

-Load setup file if argv[2] specified

-defining the detector size

-registering data callback

-checking detector status and exiting if not idle

-checking and setting detector settings

-Settings exposure time to 10ms

-Settings exposure time to 100ms

-Settingsnumber of frames to 30

-start measurement

-returning when acquisition is finished or data are avilable -

-Definition at line 26 of file mainClient.cpp. -

-References dataCallback(), slsDetectorUsers::getCommand(), slsDetectorUsers::getDetectorDeveloper(), slsDetectorUsers::getDetectorSettings(), slsDetectorUsers::getDetectorSize(), slsDetectorUsers::getDetectorStatus(), slsDetectorUsers::readConfigurationFile(), slsDetectorUsers::registerDataCallback(), slsDetectorUsers::retrieveDetectorSetup(), slsDetectorUsers::runStatusType(), slsDetectorUsers::setDetectorSize(), slsDetectorUsers::setExposurePeriod(), slsDetectorUsers::setExposureTime(), slsDetectorUsers::setNumberOfFrames(), slsDetectorUsers::setOnline(), slsDetectorUsers::setSettings(), and slsDetectorUsers::startMeasurement(). -

-

-


Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp-source.html b/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp-source.html deleted file mode 100644 index 0a9de8685..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp-source.html +++ /dev/null @@ -1,112 +0,0 @@ - - -mainReceiver.cpp Source File - - - - - - -

mainReceiver.cpp

Go to the documentation of this file.
00001 /* A simple server in the internet domain using TCP
-00002    The port number is passed as an argument 
-00003 */
-00004 
-00018 #include "slsReceiverUsers.h"
-00019 
-00020 
-00021 #include <iostream>
-00022 using namespace std;
-00023 
-00024 
-00025 int main(int argc, char *argv[]) {
-00026   int ret = 0;
-00027 
-00028 
-00029   /*
-00030       Instantiate the slsReceieverUsers class
-00031       The port number is passed as an argument
-00032 */
-00033   slsReceiverUsers *receiver = new slsReceiverUsers(argc, argv, ret);
-00034   
-00035   /*
-00036       return if could not open TCP socket for interfacing to client 
-00037   */
-00038   if(ret==1)
-00039     return -1;
-00040   
-00041 
-00042   /*register callbacks */
-00043 
-00044 
-00045         /*
-00046            callback arguments are
-00047            filepath
-00048            filename
-00049            fileindex
-00050            datasize
-00051            
-00052            return value is 
-00053            0 raw data ready callback takes care of open,close,write file
-00054            1 callback writes file, we have to open, close it
-00055            2 we open, close, write file, callback does not do anything
-00056 
-00057 
-00058            registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg);
-00059         */
-00060         
-00061         //receiver->registerCallBackStartAcquisition(func,arg);
-00062 
-00063 
-00064         /*
-00065           callback argument is
-00066           total farmes caught
-00067           registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg);
-00068         */
-00069         
-00070         
-00071         //receiver->registerCallBackAcquisitionFinished(func,arg);
-00072         
-00073 
-00074 
-00075         /*
-00076           args to raw data ready callback are
-00077           framenum
-00078           datapointer
-00079           file descriptor
-00080           guidatapointer (NULL, no data required)
-00081           
-00082           NEVER DELETE THE DATA POINTER
-00083           REMEMBER THAT THE CALLBACK IS BLOCKING
-00084 
-00085           registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg);
-00086 
-00087         */
-00088         
-00089         //receiver->registerCallBackRawDataReady(func,arg);
-00090 
-00091 
-00092   /* start receiver to listen for commands from the client (and data from detectors when expected */
-00093   receiver->start();
-00094 
-00096   usleep(10000000);
-00097 
-00099   receiver->stop();
-00100   
-00101   return 0;
-00102 }
-00103 
-

Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp.html b/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp.html deleted file mode 100644 index 35c837ff0..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp.html +++ /dev/null @@ -1,73 +0,0 @@ - - -mainReceiver.cpp File Reference - - - - - - -

mainReceiver.cpp File Reference

#include "slsReceiverUsers.h"
-#include <iostream>
- -

-Go to the source code of this file. - - - - -

Functions

int main (int argc, char *argv[])
-


Detailed Description

-This file is an example of how to implement the slsDetectorUsers class You can compile it linking it to the slsDetector library

-gcc mainReceiver.cpp -L lib -l SlsDetector -lm -lpthread

-where lib is the location of libSlsDetector.so -

-Definition in file mainReceiver.cpp.


Function Documentation

- -
-
- - - - - - - - - - - - - - - - - - -
int main (int  argc,
char *  argv[] 
)
-
-
- -

- -

-Definition at line 25 of file mainReceiver.cpp. -

-References slsReceiverUsers::start(), and slsReceiverUsers::stop(). -

-

-


Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/namespaces.html b/manual/manual-api/slsDetectorUsersDocs/html/namespaces.html deleted file mode 100644 index 356cca187..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/namespaces.html +++ /dev/null @@ -1,22 +0,0 @@ - - -Namespace Index - - - - - -

Namespace List

Here is a list of all namespaces with brief descriptions: - -
std
-
Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/namespacestd.html b/manual/manual-api/slsDetectorUsersDocs/html/namespacestd.html deleted file mode 100644 index 1bdaa268c..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/namespacestd.html +++ /dev/null @@ -1,24 +0,0 @@ - - -std Namespace Reference - - - - - -

std Namespace Reference

-

- - -
-


Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h-source.html b/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h-source.html deleted file mode 100644 index c1cac7d20..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h-source.html +++ /dev/null @@ -1,258 +0,0 @@ - - -slsDetectorUsers.h Source File - - - - - - -

slsDetectorUsers.h

Go to the documentation of this file.
00001 #ifndef SLS_DETECTOR_USERS_H
-00002 #define SLS_DETECTOR_USERS_H
-00003 
-00004 
-00005 
-00016 class detectorData;
-00017 class multiSlsDetector;
-00018 class multiSlsDetectorCommand;
-00019 
-00020 
-00021 #include <stdint.h>
-00022 #include <string>
-00023 
-00024 
-00025 using namespace std;
-00026 
-00027 
-00028 
-00029 /*
-00030    \mainpage 
-00031 <CENTER><H1>API for SLS detectors data acquisition</H1></CENTER>
-00032 <HR>
-00033 */
-00084 class slsDetectorUsers
-00085  { 
-00086 
-00087  public:
-00088 
-00090    slsDetectorUsers(int id=0);
-00091 
-00092    
-00094    virtual ~slsDetectorUsers();
-00095 
-00096 
-00097 
-00102    string getDetectorDeveloper();
-00103 
-00104 
-00105 
-00110   int setOnline(int const online=-1);
-00111 
-00116   void startMeasurement();
-00117 
-00122    int stopMeasurement();
-00123  
-00128    int getDetectorStatus();
-00129 
-00133    string getFilePath();
-00134 
-00140    string setFilePath(string s);
-00141 
-00146    string getFileName();  
-00147 
-00154    string setFileName(string s);  
-00155   
-00160    int getFileIndex();
-00161   
-00167    int setFileIndex(int i);
-00168 
-00173    string getFlatFieldCorrectionDir(); 
-00174   
-00180    string setFlatFieldCorrectionDir(string dir);
-00181   
-00186    string getFlatFieldCorrectionFile();
-00187   
-00193    int setFlatFieldCorrectionFile(string fname=""); 
-00194 
-00195   
-00196 
-00202    int enableFlatFieldCorrection(int i=-1);
-00203 
-00209    int enableCountRateCorrection(int i=-1);
-00210 
-00216    int enablePixelMaskCorrection(int i=-1);
-00217 
-00223    int enableAngularConversion(int i=-1);
-00224 
-00227    int enableWriteToFile(int i=-1);
-00228 
-00235    int setPositions(int nPos, double *pos);
-00236   
-00242    int getPositions(double *pos=NULL);
-00243   
-00252    int setDetectorSize(int x0=-1, int y0=-1, int nx=-1, int ny=-1);
-00253 
-00254 
-00263    int getDetectorSize(int &x0, int &y0, int &nx, int &ny);
-00272    int getMaximumDetectorSize(int &nx, int &ny);
-00273 
-00274 
-00280    int setBitDepth(int i=-1);
-00281 
-00282 
-00283  
-00289    int setSettings(int isettings=-1);
-00290    
-00295    int getThresholdEnergy();  
-00296 
-00297 
-00303    int setThresholdEnergy(int e_eV);
-00304 
-00309    int getBeamEnergy();  
-00310 
-00311 
-00317    int setBeamEnergy(int e_eV);
-00318 
-00326    double setExposureTime(double t=-1, bool inseconds=false);
-00327 
-00334    double setExposurePeriod(double t=-1, bool inseconds=false);
-00335 
-00342    double setDelayAfterTrigger(double t=-1, bool inseconds=false);
-00343 
-00349    int64_t setNumberOfGates(int64_t t=-1); 
-00350   
-00356    int64_t setNumberOfFrames(int64_t t=-1);
-00357 
-00363    int64_t setNumberOfCycles(int64_t t=-1);
-00364   
-00365 
-00371    int setTimingMode(int pol=-1);
-00372 
-00378    int readConfigurationFile(string const fname);  
-00379 
-00380 
-00387    int dumpDetectorSetup(string const fname); 
-00394    int retrieveDetectorSetup(string const fname);
-00395 
-00400    string getDetectorType();
-00401 
-00407    int setReceiverMode(int n=-1);
-00408 
-00414    void registerDataCallback(int( *userCallback)(detectorData* d, int f, void*), void *pArg);
-00415 
-00421    void registerRawDataCallback(int( *userCallback)(double* p, int n, void*), void *pArg);
-00422 
-00428   virtual void initDataset(int refresh);
-00429 
-00430 
-00441   virtual void addFrame(double *data, double pos, double i0, double t, string fname, double var);
-00442 
-00451   virtual void finalizeDataset(double *a, double *v, double *e, int &np); 
-00452 
-00457   int64_t getModuleFirmwareVersion();
-00458 
-00464   int64_t getModuleSerialNumber(int imod=-1);
-00465 
-00470   int64_t getDetectorFirmwareVersion();
-00471 
-00476   int64_t getDetectorSerialNumber();
-00477 
-00482   int64_t getDetectorSoftwareVersion();
-00483 
-00488   int64_t getThisSoftwareVersion();
-00489 
-00495    void registerAcquisitionFinishedCallback(int( *func)(double,int, void*), void *pArg);
-00496   
-00502    void registerGetPositionCallback( double (*func)(void*),void *arg);
-00507    void registerConnectChannelsCallback( int (*func)(void*),void *arg);
-00512    void registerDisconnectChannelsCallback( int (*func)(void*),void *arg);  
-00517    void registerGoToPositionCallback( int (*func)(double,void*),void *arg);
-00522    void registerGoToPositionNoWaitCallback( int (*func)(double,void*),void *arg);
-00527    void registerGetI0Callback( double (*func)(int,void*),void *arg);
-00528 
-00536    string putCommand(int narg, char *args[], int pos=-1);
-00537 
-00545    string getCommand(int narg, char *args[], int pos=-1);
-00546 
-00547   /************************************************************************
-00548 
-00549                            STATIC FUNCTIONS
-00550 
-00551   *********************************************************************/  
-00552 
-00557   static string runStatusType(int s){                                   \
-00558     switch (s) {                                                        \
-00559     case 0:     return string("idle");                                  \
-00560     case 1:       return string("error");                               \
-00561     case 2:      return  string("waiting");                             \
-00562     case 3:      return string("finished");                             \
-00563     case 4:      return string("data");                                 \
-00564     case 5:      return string("running");                              \
-00565     default:       return string("unknown");                            \
-00566     }};
-00567 
-00568 
-00569 
-00575   static int getDetectorSettings(string s){             \
-00576     if (s=="standard") return 0;                        \
-00577     if (s=="fast") return 1;                            \
-00578     if (s=="highgain") return 2;                        \
-00579     if (s=="dynamicgain") return 3;                     \
-00580     if (s=="lowgain") return 4;                         \
-00581     if (s=="mediumgain") return 5;                      \
-00582     if (s=="veryhighgain") return 6;                    \
-00583     return -1;                                   };
-00584 
-00589   static string getDetectorSettings(int s){\
-00590     switch(s) {                                         \
-00591     case 0:      return string("standard");\
-00592     case 1:      return string("fast");\
-00593     case 2:      return string("highgain");\
-00594     case 3:    return string("dynamicgain");    \
-00595     case 4:    return string("lowgain");                \
-00596     case 5:    return string("mediumgain");     \
-00597     case 6:    return string("veryhighgain");                   \
-00598     default:    return string("undefined");                     \
-00599     }};
-00600 
-00601 
-00602 
-00609   static string getTimingMode(int f){   \
-00610     switch(f) {                                          \
-00611     case 0:      return string( "auto");                        \
-00612     case 1: return string("trigger");                   \
-00613     case 2: return string("ro_trigger");                                \
-00614     case 3: return string("gating");                    \
-00615     case 4: return string("triggered_gating");  \
-00616     default:    return string( "unknown");                              \
-00617     }      };
-00618 
-00625   static int getTimingMode(string s){                                   \
-00626     if (s== "auto") return 0;                                           \
-00627     if (s== "trigger") return 1;                                        \
-00628     if (s== "ro_trigger") return 2;                                     \
-00629     if (s== "gating") return 3;                                         \
-00630     if (s== "triggered_gating") return 4;                               \
-00631     return -1;                                                  };
-00632 
-00633  private:
-00634   multiSlsDetector *myDetector;
-00635   multiSlsDetectorCommand *myCmd;
-00636  };
-00637 
-00638 #endif
-

Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h.html b/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h.html deleted file mode 100644 index 504ae97e4..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h.html +++ /dev/null @@ -1,38 +0,0 @@ - - -slsDetectorUsers.h File Reference - - - - - - -

slsDetectorUsers.h File Reference

#include <stdint.h>
-#include <string>
- -

-Go to the source code of this file. - - - - - - - - -

Namespaces

namespace  std

Classes

class  slsDetectorUsers
 Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc. More...
-


Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h-source.html b/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h-source.html deleted file mode 100644 index 519c48057..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h-source.html +++ /dev/null @@ -1,64 +0,0 @@ - - -slsReceiverUsers.h Source File - - - - - - -

slsReceiverUsers.h

Go to the documentation of this file.
00001 
-00002 #ifndef SLS_RECEIVER_USERS_H
-00003 #define SLS_RECEIVER_USERS_H
-00004 
-00005 #include <stdio.h>
-00006 #include <stdint.h>
-00007 
-00008 class slsReceiverTCPIPInterface;
-00009 
-00021 class slsReceiverUsers {
-00022 
-00023 public:
-00031   slsReceiverUsers(int argc, char *argv[], int &success);
-00032 
-00033 
-00035         ~slsReceiverUsers();
-00036 
-00038         void closeFile(int p);
-00039 
-00044         int start();
-00045 
-00047         void stop();
-00048 
-00053         int64_t getReceiverVersion();
-00054 
-00064         void registerCallBackStartAcquisition(int (*func)(char* filepath, char* filename,int fileindex, int datasize, void*),void *arg);
-00065 
-00066 
-00074         void registerCallBackAcquisitionFinished(void (*func)(int nf, void*),void *arg);
-00075         
-00076 
-00077 
-00084         void registerCallBackRawDataReady(void (*func)(int framenumber, char* datapointer, int datasize, FILE* filedescriptor, char* guidatapointer, void*),void *arg);
-00085 
-00086         // made static to close thread files with ctrl+c
-00087         static slsReceiverTCPIPInterface* receiver;
-00088 };
-00089 
-00090 
-00091 #endif
-

Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h.html b/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h.html deleted file mode 100644 index ed81320a5..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h.html +++ /dev/null @@ -1,35 +0,0 @@ - - -slsReceiverUsers.h File Reference - - - - - - -

slsReceiverUsers.h File Reference

#include <stdio.h>
-#include <stdint.h>
- -

-Go to the source code of this file. - - - - - -

Classes

class  slsReceiverUsers
 Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data. More...
-


Generated on Mon May 26 17:07:05 2014 by  - -doxygen 1.4.7
- - diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/FreeSans.ttf b/manual/manual-api/slsDetectorUsersDocs/latex/FreeSans.ttf deleted file mode 100644 index b550b90ba..000000000 Binary files a/manual/manual-api/slsDetectorUsersDocs/latex/FreeSans.ttf and /dev/null differ diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/Makefile b/manual/manual-api/slsDetectorUsersDocs/latex/Makefile deleted file mode 100644 index a67f1b7f6..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -all: clean refman.pdf - -refman.pdf: refman.tex - pdflatex refman.tex - makeindex refman.idx - pdflatex refman.tex - latex_count=5 ; \ - while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ - do \ - echo "Rerunning latex...." ;\ - pdflatex refman.tex ;\ - latex_count=`expr $$latex_count - 1` ;\ - done - - -clean: - rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/annotated.tex b/manual/manual-api/slsDetectorUsersDocs/latex/annotated.tex deleted file mode 100644 index 90a77bb9c..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/annotated.tex +++ /dev/null @@ -1,6 +0,0 @@ -\subsection{Class List} -Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList} -\item\contentsline{section}{\hyperlink{classdetectorData}{detector\-Data} (Data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) )}{\pageref{classdetectorData}}{} -\item\contentsline{section}{\hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} (Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc )}{\pageref{classslsDetectorUsers}}{} -\item\contentsline{section}{\hyperlink{classslsReceiverUsers}{sls\-Receiver\-Users} (Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data )}{\pageref{classslsReceiverUsers}}{} -\end{CompactList} diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/classdetectorData.tex b/manual/manual-api/slsDetectorUsersDocs/latex/classdetectorData.tex deleted file mode 100644 index 29a1d402e..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/classdetectorData.tex +++ /dev/null @@ -1,171 +0,0 @@ -\hypertarget{classdetectorData}{ -\subsection{detector\-Data Class Reference} -\label{classdetectorData}\index{detectorData@{detectorData}} -} -data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) - - -{\tt \#include $<$detector\-Data.h$>$} - -\subsubsection*{Public Member Functions} -\begin{CompactItemize} -\item -\hyperlink{classdetectorData_3f8538f5f634295fc40682b8aed47b31}{detector\-Data} (double $\ast$val=NULL, double $\ast$err=NULL, double $\ast$ang=NULL, double p\_\-ind=-1, const char $\ast$fname=\char`\"{}\char`\"{}, int np=-1, int ny=1) -\begin{CompactList}\small\item\em The constructor. \item\end{CompactList}\item -\hyperlink{classdetectorData_d32a037cc2bd6e8caf4556cbd4b88ec7}{$\sim$detector\-Data} () -\begin{CompactList}\small\item\em The destructor deletes also the arrays pointing to data/errors/angles if not NULL. \item\end{CompactList}\end{CompactItemize} -\subsubsection*{Public Attributes} -\begin{CompactItemize} -\item -double $\ast$ \hyperlink{classdetectorData_0f4e31d65f9616e83a2e5521453d0364}{values} -\begin{CompactList}\small\item\em pointer to the data \item\end{CompactList}\item -double $\ast$ \hyperlink{classdetectorData_29cb1c6bb5635e918ae28505ccd0d8f9}{errors} -\begin{CompactList}\small\item\em pointer to the errors \item\end{CompactList}\item -double $\ast$ \hyperlink{classdetectorData_cc9f9708b9ff2d840208cae843fb4b7a}{angles} -\begin{CompactList}\small\item\em pointer to the angles (NULL if no angular conversion) \item\end{CompactList}\item -double \hyperlink{classdetectorData_976b3287d46aed032487bbeed74132da}{progress\-Index} -\begin{CompactList}\small\item\em file index \item\end{CompactList}\item -char \hyperlink{classdetectorData_91d1e3466878def295a531c01bdeef6b}{file\-Name} \mbox{[}1000\mbox{]} -\begin{CompactList}\small\item\em file name \item\end{CompactList}\item -int \hyperlink{classdetectorData_50aabf6f2c40587f8e915cf4913a2cfe}{npoints} -\begin{CompactList}\small\item\em number of points \item\end{CompactList}\item -int \hyperlink{classdetectorData_c289d259e7fd9445a9c04976a82cb324}{npy} -\begin{CompactList}\small\item\em dimensions in y coordinate \item\end{CompactList}\end{CompactItemize} - - -\subsubsection{Detailed Description} -data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) - - - -Definition at line 9 of file detector\-Data.h. - -\subsubsection{Constructor \& Destructor Documentation} -\hypertarget{classdetectorData_3f8538f5f634295fc40682b8aed47b31}{ -\index{detectorData@{detector\-Data}!detectorData@{detectorData}} -\index{detectorData@{detectorData}!detectorData@{detector\-Data}} -\paragraph[detectorData]{\setlength{\rightskip}{0pt plus 5cm}detector\-Data::detector\-Data (double $\ast$ {\em val} = {\tt NULL}, double $\ast$ {\em err} = {\tt NULL}, double $\ast$ {\em ang} = {\tt NULL}, double {\em p\_\-ind} = {\tt -1}, const char $\ast$ {\em fname} = {\tt \char`\"{}\char`\"{}}, int {\em np} = {\tt -1}, int {\em ny} = {\tt 1})\hspace{0.3cm}{\tt \mbox{[}inline\mbox{]}}}\hfill} -\label{classdetectorData_3f8538f5f634295fc40682b8aed47b31} - - -The constructor. - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em val}]pointer to the data \item[{\em err}]pointer to errors \item[{\em ang}]pointer to the angles \item[{\em f\_\-ind}]file index \item[{\em fname}]file name to which the data are saved \item[{\em np}]number of points in x coordinate defaults to the number of detector channels (1D detector) \item[{\em ny}]dimension in y (1D detector) \end{description} -\end{Desc} - - -Definition at line 20 of file detector\-Data.h. - -References file\-Name.\hypertarget{classdetectorData_d32a037cc2bd6e8caf4556cbd4b88ec7}{ -\index{detectorData@{detector\-Data}!~detectorData@{$\sim$detectorData}} -\index{~detectorData@{$\sim$detectorData}!detectorData@{detector\-Data}} -\paragraph[$\sim$detectorData]{\setlength{\rightskip}{0pt plus 5cm}detector\-Data::$\sim$detector\-Data ()\hspace{0.3cm}{\tt \mbox{[}inline\mbox{]}}}\hfill} -\label{classdetectorData_d32a037cc2bd6e8caf4556cbd4b88ec7} - - -The destructor deletes also the arrays pointing to data/errors/angles if not NULL. - - - -Definition at line 25 of file detector\-Data.h. - -References angles, errors, and values. - -\subsubsection{Member Data Documentation} -\hypertarget{classdetectorData_cc9f9708b9ff2d840208cae843fb4b7a}{ -\index{detectorData@{detector\-Data}!angles@{angles}} -\index{angles@{angles}!detectorData@{detector\-Data}} -\paragraph[angles]{\setlength{\rightskip}{0pt plus 5cm}double$\ast$ \hyperlink{classdetectorData_cc9f9708b9ff2d840208cae843fb4b7a}{detector\-Data::angles}}\hfill} -\label{classdetectorData_cc9f9708b9ff2d840208cae843fb4b7a} - - -pointer to the angles (NULL if no angular conversion) - - - -Definition at line 29 of file detector\-Data.h. - -Referenced by $\sim$detector\-Data().\hypertarget{classdetectorData_29cb1c6bb5635e918ae28505ccd0d8f9}{ -\index{detectorData@{detector\-Data}!errors@{errors}} -\index{errors@{errors}!detectorData@{detector\-Data}} -\paragraph[errors]{\setlength{\rightskip}{0pt plus 5cm}double$\ast$ \hyperlink{classdetectorData_29cb1c6bb5635e918ae28505ccd0d8f9}{detector\-Data::errors}}\hfill} -\label{classdetectorData_29cb1c6bb5635e918ae28505ccd0d8f9} - - -pointer to the errors - - - -Definition at line 28 of file detector\-Data.h. - -Referenced by $\sim$detector\-Data().\hypertarget{classdetectorData_91d1e3466878def295a531c01bdeef6b}{ -\index{detectorData@{detector\-Data}!fileName@{fileName}} -\index{fileName@{fileName}!detectorData@{detector\-Data}} -\paragraph[fileName]{\setlength{\rightskip}{0pt plus 5cm}char \hyperlink{classdetectorData_91d1e3466878def295a531c01bdeef6b}{detector\-Data::file\-Name}\mbox{[}1000\mbox{]}}\hfill} -\label{classdetectorData_91d1e3466878def295a531c01bdeef6b} - - -file name - - - -Definition at line 31 of file detector\-Data.h. - -Referenced by detector\-Data().\hypertarget{classdetectorData_50aabf6f2c40587f8e915cf4913a2cfe}{ -\index{detectorData@{detector\-Data}!npoints@{npoints}} -\index{npoints@{npoints}!detectorData@{detector\-Data}} -\paragraph[npoints]{\setlength{\rightskip}{0pt plus 5cm}int \hyperlink{classdetectorData_50aabf6f2c40587f8e915cf4913a2cfe}{detector\-Data::npoints}}\hfill} -\label{classdetectorData_50aabf6f2c40587f8e915cf4913a2cfe} - - -number of points - - - -Definition at line 32 of file detector\-Data.h. - -Referenced by data\-Callback().\hypertarget{classdetectorData_c289d259e7fd9445a9c04976a82cb324}{ -\index{detectorData@{detector\-Data}!npy@{npy}} -\index{npy@{npy}!detectorData@{detector\-Data}} -\paragraph[npy]{\setlength{\rightskip}{0pt plus 5cm}int \hyperlink{classdetectorData_c289d259e7fd9445a9c04976a82cb324}{detector\-Data::npy}}\hfill} -\label{classdetectorData_c289d259e7fd9445a9c04976a82cb324} - - -dimensions in y coordinate - - - -Definition at line 33 of file detector\-Data.h. - -Referenced by data\-Callback().\hypertarget{classdetectorData_976b3287d46aed032487bbeed74132da}{ -\index{detectorData@{detector\-Data}!progressIndex@{progressIndex}} -\index{progressIndex@{progressIndex}!detectorData@{detector\-Data}} -\paragraph[progressIndex]{\setlength{\rightskip}{0pt plus 5cm}double \hyperlink{classdetectorData_976b3287d46aed032487bbeed74132da}{detector\-Data::progress\-Index}}\hfill} -\label{classdetectorData_976b3287d46aed032487bbeed74132da} - - -file index - - - -Definition at line 30 of file detector\-Data.h.\hypertarget{classdetectorData_0f4e31d65f9616e83a2e5521453d0364}{ -\index{detectorData@{detector\-Data}!values@{values}} -\index{values@{values}!detectorData@{detector\-Data}} -\paragraph[values]{\setlength{\rightskip}{0pt plus 5cm}double$\ast$ \hyperlink{classdetectorData_0f4e31d65f9616e83a2e5521453d0364}{detector\-Data::values}}\hfill} -\label{classdetectorData_0f4e31d65f9616e83a2e5521453d0364} - - -pointer to the data - - - -Definition at line 25 of file detector\-Data.h. - -Referenced by $\sim$detector\-Data(). - -The documentation for this class was generated from the following file:\begin{CompactItemize} -\item -\hyperlink{detectorData_8h}{detector\-Data.h}\end{CompactItemize} diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/classslsDetectorUsers.tex b/manual/manual-api/slsDetectorUsersDocs/latex/classslsDetectorUsers.tex deleted file mode 100644 index 6184abfe5..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/classslsDetectorUsers.tex +++ /dev/null @@ -1,1187 +0,0 @@ -\hypertarget{classslsDetectorUsers}{ -\subsection{sls\-Detector\-Users Class Reference} -\label{classslsDetectorUsers}\index{slsDetectorUsers@{slsDetectorUsers}} -} -Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc. - - -{\tt \#include $<$sls\-Detector\-Users.h$>$} - -\subsubsection*{Public Member Functions} -\begin{CompactItemize} -\item -\hyperlink{classslsDetectorUsers_17323cd635b9e5c2916be3ca30ec748c}{sls\-Detector\-Users} (int id=0) -\begin{CompactList}\small\item\em default constructor \item\end{CompactList}\item -virtual \hyperlink{classslsDetectorUsers_0d1daf6539befe56d6e3df0b24f5d68b}{$\sim$sls\-Detector\-Users} () -\begin{CompactList}\small\item\em virtual destructor \item\end{CompactList}\item -string \hyperlink{classslsDetectorUsers_30c2ba51c33cc914f290a0b7891da4ec}{get\-Detector\-Developer} () -\begin{CompactList}\small\item\em useful to define subset of working functions \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_ee622153ebd6b0dad065d95b07221955}{set\-Online} (int const online=-1) -\begin{CompactList}\small\item\em sets the online\-Flag \item\end{CompactList}\item -void \hyperlink{classslsDetectorUsers_a34810bb0e872fdf929ebe62d8582bd3}{start\-Measurement} () -\begin{CompactList}\small\item\em start measurement and acquires \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_2abc673c45c1fe006f6b0fea6188e3a9}{stop\-Measurement} () -\begin{CompactList}\small\item\em stop measurement \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_c7d0254e38b8fe783204f691a4ee05b2}{get\-Detector\-Status} () -\begin{CompactList}\small\item\em get run status \item\end{CompactList}\item -string \hyperlink{classslsDetectorUsers_81969295c2b08f14e9c3d4fa1f7d4e16}{get\-File\-Path} () -\begin{CompactList}\small\item\em returns the default output files path \item\end{CompactList}\item -string \hyperlink{classslsDetectorUsers_d833e1051299e101a5b5097c598ba9cb}{set\-File\-Path} (string s) -\begin{CompactList}\small\item\em sets the default output files path \item\end{CompactList}\item -string \hyperlink{classslsDetectorUsers_5f30c83e8bf07a92fad0916d43e3799c}{get\-File\-Name} () -\item -string \hyperlink{classslsDetectorUsers_ff4a8ff4852e50d4ec05204cbc7fea9e}{set\-File\-Name} (string s) -\begin{CompactList}\small\item\em sets the default output files path \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_6e3467bf3c0c246f69f85d485d84dd62}{get\-File\-Index} () -\item -int \hyperlink{classslsDetectorUsers_6b92ea7e237c77aa5107d7aabf76fe2d}{set\-File\-Index} (int i) -\begin{CompactList}\small\item\em sets the default output file index \item\end{CompactList}\item -string \hyperlink{classslsDetectorUsers_0b20511a94205abd689f31bd1a2d4c18}{get\-Flat\-Field\-Correction\-Dir} () -\begin{CompactList}\small\item\em get flat field corrections file directory \item\end{CompactList}\item -string \hyperlink{classslsDetectorUsers_65b112dac3d8b94f219f4d64c13cf0f9}{set\-Flat\-Field\-Correction\-Dir} (string dir) -\begin{CompactList}\small\item\em set flat field corrections file directory \item\end{CompactList}\item -string \hyperlink{classslsDetectorUsers_a83083f73523557e6129f33b59f38327}{get\-Flat\-Field\-Correction\-File} () -\begin{CompactList}\small\item\em get flat field corrections file name \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_ad9e6da8683ba2887174505fd3b7d739}{set\-Flat\-Field\-Correction\-File} (string fname=\char`\"{}\char`\"{}) -\begin{CompactList}\small\item\em set flat field correction file \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_94c74499f7653116cd8aff9ec0d14c43}{enable\-Flat\-Field\-Correction} (int i=-1) -\begin{CompactList}\small\item\em enable/disable flat field corrections (without changing file name) \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_82efe2f57758d63d330d78b121f8e77e}{enable\-Count\-Rate\-Correction} (int i=-1) -\begin{CompactList}\small\item\em enable/disable count rate corrections \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_e5bc1c9c8e7e6cb7c9cde06a3133d263}{enable\-Pixel\-Mask\-Correction} (int i=-1) -\begin{CompactList}\small\item\em enable/disable bad channel corrections \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_51f92b69e05e8ee2e0c547ec4a6e97da}{enable\-Angular\-Conversion} (int i=-1) -\begin{CompactList}\small\item\em enable/disable angular conversion \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_6d54a79ae4cfdb808f5db9969537efd3}{enable\-Write\-To\-File} (int i=-1) -\item -int \hyperlink{classslsDetectorUsers_f296c05ee6134fb8d53d08a025e89775}{set\-Positions} (int n\-Pos, double $\ast$pos) -\begin{CompactList}\small\item\em set positions for the acquisition \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_e6e5f06995e3ef110824adc5f8b095e9}{get\-Positions} (double $\ast$pos=NULL) -\begin{CompactList}\small\item\em get positions for the acquisition \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_42c97d03516a2457f8e9a98a16a9a43d}{set\-Detector\-Size} (int x0=-1, int y0=-1, int nx=-1, int ny=-1) -\begin{CompactList}\small\item\em sets the detector size \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_7f4fb3cefff5f0175cd2e4fd57ee1be4}{get\-Detector\-Size} (int \&x0, int \&y0, int \&nx, int \&ny) -\begin{CompactList}\small\item\em gets detector size \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_588a5e1d231cd6778f6f78fdc53b9681}{get\-Maximum\-Detector\-Size} (int \&nx, int \&ny) -\begin{CompactList}\small\item\em setsthe maximum detector size \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_ff667cf0665154cdff5d5f3dbc3526ba}{set\-Bit\-Depth} (int i=-1) -\begin{CompactList}\small\item\em set/get dynamic range \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_31b25d2659d3b244bb10b5516a9fd957}{set\-Settings} (int isettings=-1) -\begin{CompactList}\small\item\em set detector settings \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_fe8029788742125c44383817f89214ca}{get\-Threshold\-Energy} () -\begin{CompactList}\small\item\em get threshold energy \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_1354266fd1bfaccd58992a3f51bbbd1d}{set\-Threshold\-Energy} (int e\_\-e\-V) -\begin{CompactList}\small\item\em set threshold energy \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_c9ea028f75a180534c8d00eeea0727d3}{get\-Beam\-Energy} () -\begin{CompactList}\small\item\em get beam energy -- only for dectris! \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_475938986407804877df4dcece97cc19}{set\-Beam\-Energy} (int e\_\-e\-V) -\begin{CompactList}\small\item\em set beam energy -- only for dectris! \item\end{CompactList}\item -double \hyperlink{classslsDetectorUsers_134225893d41bc97e9f1d645e035a04a}{set\-Exposure\-Time} (double t=-1, bool inseconds=false) -\begin{CompactList}\small\item\em set/get exposure time value \item\end{CompactList}\item -double \hyperlink{classslsDetectorUsers_cac89084aba58ebe81420c7c9ac4217a}{set\-Exposure\-Period} (double t=-1, bool inseconds=false) -\begin{CompactList}\small\item\em set/get exposure period \item\end{CompactList}\item -double \hyperlink{classslsDetectorUsers_99f67fab7edfe68cc8b2300e282ff3f2}{set\-Delay\-After\-Trigger} (double t=-1, bool inseconds=false) -\begin{CompactList}\small\item\em set/get delay after trigger \item\end{CompactList}\item -int64\_\-t \hyperlink{classslsDetectorUsers_61d4acb00c997c5e02be6a191401c4ce}{set\-Number\-Of\-Gates} (int64\_\-t t=-1) -\begin{CompactList}\small\item\em set/get number of gates \item\end{CompactList}\item -int64\_\-t \hyperlink{classslsDetectorUsers_fc82f608bf74d10f3aa866bff94cbbab}{set\-Number\-Of\-Frames} (int64\_\-t t=-1) -\begin{CompactList}\small\item\em set/get number of frames i.e. number of exposure per trigger \item\end{CompactList}\item -int64\_\-t \hyperlink{classslsDetectorUsers_8b741851c4eaef4e29322c99fd17cb3b}{set\-Number\-Of\-Cycles} (int64\_\-t t=-1) -\begin{CompactList}\small\item\em set/get number of cycles i.e. number of triggers \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_e2825524756c4bdf418a6233e137b4d7}{set\-Timing\-Mode} (int pol=-1) -\begin{CompactList}\small\item\em set/get the external communication mode \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_8aeda7c2cbc270c7f8756761823e8d95}{read\-Configuration\-File} (string const fname) -\begin{CompactList}\small\item\em Reads the configuration file -- will contain all the informations needed for the configuration (e.g. for a PSI detector caldir, settingsdir, angconv, badchannels, hostname etc.). \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_d6b968f4d520342324762c496ebeb481}{dump\-Detector\-Setup} (string const fname) -\begin{CompactList}\small\item\em Reads the parameters from the detector and writes them to file. \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_8769c8ea5020b43dc3557c86f9e4159b}{retrieve\-Detector\-Setup} (string const fname) -\begin{CompactList}\small\item\em Loads the detector setup from file. \item\end{CompactList}\item -string \hyperlink{classslsDetectorUsers_5292a3d9c12696512b81bcc6c579a03c}{get\-Detector\-Type} () -\begin{CompactList}\small\item\em useful for data plotting etc. \item\end{CompactList}\item -int \hyperlink{classslsDetectorUsers_db084473ffe61960b86abdfa8efcc80d}{set\-Receiver\-Mode} (int n=-1) -\begin{CompactList}\small\item\em sets the mode by which gui requests data from receiver \item\end{CompactList}\item -void \hyperlink{classslsDetectorUsers_4a1db91fc49fc1710f98ce98e33bc16b}{register\-Data\-Callback} (int($\ast$user\-Callback)(\hyperlink{classdetectorData}{detector\-Data} $\ast$d, int f, void $\ast$), void $\ast$p\-Arg) -\begin{CompactList}\small\item\em register calbback for accessing detector final data \item\end{CompactList}\item -void \hyperlink{classslsDetectorUsers_898cf0db148f0d3de7d4725cc8342c56}{register\-Raw\-Data\-Callback} (int($\ast$user\-Callback)(double $\ast$p, int n, void $\ast$), void $\ast$p\-Arg) -\begin{CompactList}\small\item\em register callback for accessing raw data - if the raw\-Data\-Callback is registered, no filewriting/postprocessing will be carried on automatically by the software - the raw data are deleted by the software \item\end{CompactList}\item -virtual void \hyperlink{classslsDetectorUsers_56fa8890298a01fc58baad413dfdf1c1}{init\-Dataset} (int refresh) -\begin{CompactList}\small\item\em function to initalize a set of measurements (reset binning if angular conversion, reset summing otherwise) - can be overcome by the user's functions thanks to the virtual property \item\end{CompactList}\item -virtual void \hyperlink{classslsDetectorUsers_5128e295a5b926ccabdb48083d324789}{add\-Frame} (double $\ast$data, double pos, double i0, double t, string fname, double var) -\begin{CompactList}\small\item\em adds frame to merging/summation - can be overcome by the user's functions thanks to the virtual property \item\end{CompactList}\item -virtual void \hyperlink{classslsDetectorUsers_9cbe00dac8a19b71de88ebbdf3b0ea29}{finalize\-Dataset} (double $\ast$a, double $\ast$v, double $\ast$e, int \&np) -\begin{CompactList}\small\item\em finalizes the data set returning the array of angles, values and errors to be used as final data - can be overcome by the user's functions thanks to the virtual property \item\end{CompactList}\item -int64\_\-t \hyperlink{classslsDetectorUsers_09ded3b9c81e4544d42bb0697c3b7624}{get\-Module\-Firmware\-Version} () -\item -int64\_\-t \hyperlink{classslsDetectorUsers_5c0e9f8836e1a8a2d986408e4f5dfd3b}{get\-Module\-Serial\-Number} (int imod=-1) -\item -int64\_\-t \hyperlink{classslsDetectorUsers_2cbba4518b585064f7870ae2d39a8b8b}{get\-Detector\-Firmware\-Version} () -\item -int64\_\-t \hyperlink{classslsDetectorUsers_1c79314ceeda9b3085ca118e25882669}{get\-Detector\-Serial\-Number} () -\item -int64\_\-t \hyperlink{classslsDetectorUsers_1857f2afea58227cb96ad92f5e562a5e}{get\-Detector\-Software\-Version} () -\item -int64\_\-t \hyperlink{classslsDetectorUsers_547feb09262a2f0fa1ec4de82e92ab63}{get\-This\-Software\-Version} () -\item -void \hyperlink{classslsDetectorUsers_2a85e28ff08e3ec1e08bea3ba7d0fb08}{register\-Acquisition\-Finished\-Callback} (int($\ast$func)(double, int, void $\ast$), void $\ast$p\-Arg) -\begin{CompactList}\small\item\em register calbback for accessing detector final data \item\end{CompactList}\item -void \hyperlink{classslsDetectorUsers_c2b87416288e657a209e1374c778eb16}{register\-Get\-Position\-Callback} (double($\ast$func)(void $\ast$), void $\ast$arg) -\begin{CompactList}\small\item\em register calbback for reading detector position \item\end{CompactList}\item -void \hyperlink{classslsDetectorUsers_d1ab73675435879c2c5cef7adab02c32}{register\-Connect\-Channels\-Callback} (int($\ast$func)(void $\ast$), void $\ast$arg) -\begin{CompactList}\small\item\em register callback for connecting to the epics channels \item\end{CompactList}\item -void \hyperlink{classslsDetectorUsers_a94dd8fce8548ba8e79201ec50fe27d6}{register\-Disconnect\-Channels\-Callback} (int($\ast$func)(void $\ast$), void $\ast$arg) -\begin{CompactList}\small\item\em register callback to disconnect the epics channels \item\end{CompactList}\item -void \hyperlink{classslsDetectorUsers_0f7c9bd3c46647d5dda2fa5312f3ef92}{register\-Go\-To\-Position\-Callback} (int($\ast$func)(double, void $\ast$), void $\ast$arg) -\begin{CompactList}\small\item\em register callback for moving the detector \item\end{CompactList}\item -void \hyperlink{classslsDetectorUsers_e807e9f4a015a4bbcb22e36b80577ea5}{register\-Go\-To\-Position\-No\-Wait\-Callback} (int($\ast$func)(double, void $\ast$), void $\ast$arg) -\begin{CompactList}\small\item\em register callback for moving the detector without waiting \item\end{CompactList}\item -void \hyperlink{classslsDetectorUsers_1969785197030aa8e2d3c3d48a9cb45c}{register\-Get\-I0Callback} (double($\ast$func)(int, void $\ast$), void $\ast$arg) -\begin{CompactList}\small\item\em register calbback reading to I0 \item\end{CompactList}\item -string \hyperlink{classslsDetectorUsers_5f7c26833decef59c1abfd7d745c4671}{put\-Command} (int narg, char $\ast$args\mbox{[}$\,$\mbox{]}, int pos=-1) -\begin{CompactList}\small\item\em sets parameters in command interface \href{http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf}\tt{http://www.psi.ch/detectors/Users\-Support\-EN/sls\-Detector\-Client\-How\-To.pdf} \item\end{CompactList}\item -string \hyperlink{classslsDetectorUsers_dc83b8005abccc735b35464c1c6d3ea7}{get\-Command} (int narg, char $\ast$args\mbox{[}$\,$\mbox{]}, int pos=-1) -\begin{CompactList}\small\item\em gets parameters in command interface \href{http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf}\tt{http://www.psi.ch/detectors/Users\-Support\-EN/sls\-Detector\-Client\-How\-To.pdf} \item\end{CompactList}\end{CompactItemize} -\subsubsection*{Static Public Member Functions} -\begin{CompactItemize} -\item -static string \hyperlink{classslsDetectorUsers_2c073513ae3ac53f3e040bc2911b6ee2}{run\-Status\-Type} (int s) -\begin{CompactList}\small\item\em returns string from run status index \item\end{CompactList}\item -static int \hyperlink{classslsDetectorUsers_7f2e97b2fa0e106b364c9c200a5d74ad}{get\-Detector\-Settings} (string s) -\begin{CompactList}\small\item\em returns detector settings string from index \item\end{CompactList}\item -static string \hyperlink{classslsDetectorUsers_a66defec09b568a514e57b444dbe0d7f}{get\-Detector\-Settings} (int s) -\begin{CompactList}\small\item\em returns detector settings string from index \item\end{CompactList}\item -static string \hyperlink{classslsDetectorUsers_420880726f4036bf9da83edfcb2d6cf0}{get\-Timing\-Mode} (int f) -\begin{CompactList}\small\item\em returns external communication mode string from index \item\end{CompactList}\item -static int \hyperlink{classslsDetectorUsers_e88a9626e4e661c1c0e1d27ba4a57d50}{get\-Timing\-Mode} (string s) -\begin{CompactList}\small\item\em returns external communication mode string from index \item\end{CompactList}\end{CompactItemize} - - -\subsubsection{Detailed Description} -Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc. - - - -Definition at line 84 of file sls\-Detector\-Users.h. - -\subsubsection{Constructor \& Destructor Documentation} -\hypertarget{classslsDetectorUsers_17323cd635b9e5c2916be3ca30ec748c}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!slsDetectorUsers@{slsDetectorUsers}} -\index{slsDetectorUsers@{slsDetectorUsers}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[slsDetectorUsers]{\setlength{\rightskip}{0pt plus 5cm}sls\-Detector\-Users::sls\-Detector\-Users (int {\em id} = {\tt 0})}\hfill} -\label{classslsDetectorUsers_17323cd635b9e5c2916be3ca30ec748c} - - -default constructor - -\hypertarget{classslsDetectorUsers_0d1daf6539befe56d6e3df0b24f5d68b}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!~slsDetectorUsers@{$\sim$slsDetectorUsers}} -\index{~slsDetectorUsers@{$\sim$slsDetectorUsers}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[$\sim$slsDetectorUsers]{\setlength{\rightskip}{0pt plus 5cm}virtual sls\-Detector\-Users::$\sim$sls\-Detector\-Users ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}\hfill} -\label{classslsDetectorUsers_0d1daf6539befe56d6e3df0b24f5d68b} - - -virtual destructor - - - -\subsubsection{Member Function Documentation} -\hypertarget{classslsDetectorUsers_5128e295a5b926ccabdb48083d324789}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!addFrame@{addFrame}} -\index{addFrame@{addFrame}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[addFrame]{\setlength{\rightskip}{0pt plus 5cm}virtual void sls\-Detector\-Users::add\-Frame (double $\ast$ {\em data}, double {\em pos}, double {\em i0}, double {\em t}, string {\em fname}, double {\em var})\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}\hfill} -\label{classslsDetectorUsers_5128e295a5b926ccabdb48083d324789} - - -adds frame to merging/summation - can be overcome by the user's functions thanks to the virtual property - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em data}]pointer to the raw data \item[{\em pos}]encoder position \item[{\em i0}]beam monitor readout for intensity normalization (if 0 not performed) \item[{\em t}]exposure time in seconds, required only if rate corrections \item[{\em fname}]file name (unused since filewriting would be performed by the user) \item[{\em var}]optional parameter - unused. \end{description} -\end{Desc} -\hypertarget{classslsDetectorUsers_d6b968f4d520342324762c496ebeb481}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!dumpDetectorSetup@{dumpDetectorSetup}} -\index{dumpDetectorSetup@{dumpDetectorSetup}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[dumpDetectorSetup]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::dump\-Detector\-Setup (string const {\em fname})}\hfill} -\label{classslsDetectorUsers_d6b968f4d520342324762c496ebeb481} - - -Reads the parameters from the detector and writes them to file. - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em fname}]file to write to \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]OK or FAIL \end{Desc} -\hypertarget{classslsDetectorUsers_51f92b69e05e8ee2e0c547ec4a6e97da}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!enableAngularConversion@{enableAngularConversion}} -\index{enableAngularConversion@{enableAngularConversion}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[enableAngularConversion]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::enable\-Angular\-Conversion (int {\em i} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_51f92b69e05e8ee2e0c547ec4a6e97da} - - -enable/disable angular conversion - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em i}]0 disables, 1 enables, -1 gets \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]0 if angular conversion disabled, 1 if enabled \end{Desc} -\hypertarget{classslsDetectorUsers_82efe2f57758d63d330d78b121f8e77e}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!enableCountRateCorrection@{enableCountRateCorrection}} -\index{enableCountRateCorrection@{enableCountRateCorrection}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[enableCountRateCorrection]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::enable\-Count\-Rate\-Correction (int {\em i} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_82efe2f57758d63d330d78b121f8e77e} - - -enable/disable count rate corrections - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em i}]0 disables, 1 enable, -1 gets \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]0 if count corrections disabled, 1 if enabled \end{Desc} -\hypertarget{classslsDetectorUsers_94c74499f7653116cd8aff9ec0d14c43}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!enableFlatFieldCorrection@{enableFlatFieldCorrection}} -\index{enableFlatFieldCorrection@{enableFlatFieldCorrection}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[enableFlatFieldCorrection]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::enable\-Flat\-Field\-Correction (int {\em i} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_94c74499f7653116cd8aff9ec0d14c43} - - -enable/disable flat field corrections (without changing file name) - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em i}]0 disables, 1 enables, -1 gets \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]0 if ff corrections disabled, 1 if enabled \end{Desc} -\hypertarget{classslsDetectorUsers_e5bc1c9c8e7e6cb7c9cde06a3133d263}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!enablePixelMaskCorrection@{enablePixelMaskCorrection}} -\index{enablePixelMaskCorrection@{enablePixelMaskCorrection}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[enablePixelMaskCorrection]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::enable\-Pixel\-Mask\-Correction (int {\em i} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_e5bc1c9c8e7e6cb7c9cde06a3133d263} - - -enable/disable bad channel corrections - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em i}]0 disables, 1 enables, -1 gets \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]0 if bad channels corrections disabled, 1 if enabled \end{Desc} -\hypertarget{classslsDetectorUsers_6d54a79ae4cfdb808f5db9969537efd3}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!enableWriteToFile@{enableWriteToFile}} -\index{enableWriteToFile@{enableWriteToFile}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[enableWriteToFile]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::enable\-Write\-To\-File (int {\em i} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_6d54a79ae4cfdb808f5db9969537efd3} - - -Enable write file function included \hypertarget{classslsDetectorUsers_9cbe00dac8a19b71de88ebbdf3b0ea29}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!finalizeDataset@{finalizeDataset}} -\index{finalizeDataset@{finalizeDataset}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[finalizeDataset]{\setlength{\rightskip}{0pt plus 5cm}virtual void sls\-Detector\-Users::finalize\-Dataset (double $\ast$ {\em a}, double $\ast$ {\em v}, double $\ast$ {\em e}, int \& {\em np})\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}\hfill} -\label{classslsDetectorUsers_9cbe00dac8a19b71de88ebbdf3b0ea29} - - -finalizes the data set returning the array of angles, values and errors to be used as final data - can be overcome by the user's functions thanks to the virtual property - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em a}]pointer to the array of angles - can be null if no angular coversion is required \item[{\em v}]pointer to the array of values \item[{\em e}]pointer to the array of errors \item[{\em np}]reference returning the number of points \end{description} -\end{Desc} -\hypertarget{classslsDetectorUsers_c9ea028f75a180534c8d00eeea0727d3}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getBeamEnergy@{getBeamEnergy}} -\index{getBeamEnergy@{getBeamEnergy}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getBeamEnergy]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::get\-Beam\-Energy ()}\hfill} -\label{classslsDetectorUsers_c9ea028f75a180534c8d00eeea0727d3} - - -get beam energy -- only for dectris! - -\begin{Desc} -\item[Returns:]current beam energy \end{Desc} -\hypertarget{classslsDetectorUsers_dc83b8005abccc735b35464c1c6d3ea7}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getCommand@{getCommand}} -\index{getCommand@{getCommand}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getCommand]{\setlength{\rightskip}{0pt plus 5cm}string sls\-Detector\-Users::get\-Command (int {\em narg}, char $\ast$ {\em args}\mbox{[}$\,$\mbox{]}, int {\em pos} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_dc83b8005abccc735b35464c1c6d3ea7} - - -gets parameters in command interface \href{http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf}\tt{http://www.psi.ch/detectors/Users\-Support\-EN/sls\-Detector\-Client\-How\-To.pdf} - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em narg}]value to be set \item[{\em args}]value to be set \item[{\em pos}]position of detector in multislsdetector list \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]answer string \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_30c2ba51c33cc914f290a0b7891da4ec}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getDetectorDeveloper@{getDetectorDeveloper}} -\index{getDetectorDeveloper@{getDetectorDeveloper}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getDetectorDeveloper]{\setlength{\rightskip}{0pt plus 5cm}string sls\-Detector\-Users::get\-Detector\-Developer ()}\hfill} -\label{classslsDetectorUsers_30c2ba51c33cc914f290a0b7891da4ec} - - -useful to define subset of working functions - -\begin{Desc} -\item[Returns:]\char`\"{}PSI\char`\"{} or \char`\"{}Dectris\char`\"{} \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_2cbba4518b585064f7870ae2d39a8b8b}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getDetectorFirmwareVersion@{getDetectorFirmwareVersion}} -\index{getDetectorFirmwareVersion@{getDetectorFirmwareVersion}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getDetectorFirmwareVersion]{\setlength{\rightskip}{0pt plus 5cm}int64\_\-t sls\-Detector\-Users::get\-Detector\-Firmware\-Version ()}\hfill} -\label{classslsDetectorUsers_2cbba4518b585064f7870ae2d39a8b8b} - - -get get Detector Firmware Version \begin{Desc} -\item[Returns:]id \end{Desc} -\hypertarget{classslsDetectorUsers_1c79314ceeda9b3085ca118e25882669}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getDetectorSerialNumber@{getDetectorSerialNumber}} -\index{getDetectorSerialNumber@{getDetectorSerialNumber}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getDetectorSerialNumber]{\setlength{\rightskip}{0pt plus 5cm}int64\_\-t sls\-Detector\-Users::get\-Detector\-Serial\-Number ()}\hfill} -\label{classslsDetectorUsers_1c79314ceeda9b3085ca118e25882669} - - -get get Detector Serial Number \begin{Desc} -\item[Returns:]id \end{Desc} -\hypertarget{classslsDetectorUsers_a66defec09b568a514e57b444dbe0d7f}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getDetectorSettings@{getDetectorSettings}} -\index{getDetectorSettings@{getDetectorSettings}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getDetectorSettings]{\setlength{\rightskip}{0pt plus 5cm}static string sls\-Detector\-Users::get\-Detector\-Settings (int {\em s})\hspace{0.3cm}{\tt \mbox{[}inline, static\mbox{]}}}\hfill} -\label{classslsDetectorUsers_a66defec09b568a514e57b444dbe0d7f} - - -returns detector settings string from index - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em s}]settings index \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain, undefined when wrong index \end{Desc} - - -Definition at line 589 of file sls\-Detector\-Users.h.\hypertarget{classslsDetectorUsers_7f2e97b2fa0e106b364c9c200a5d74ad}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getDetectorSettings@{getDetectorSettings}} -\index{getDetectorSettings@{getDetectorSettings}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getDetectorSettings]{\setlength{\rightskip}{0pt plus 5cm}static int sls\-Detector\-Users::get\-Detector\-Settings (string {\em s})\hspace{0.3cm}{\tt \mbox{[}inline, static\mbox{]}}}\hfill} -\label{classslsDetectorUsers_7f2e97b2fa0e106b364c9c200a5d74ad} - - -returns detector settings string from index - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em s}]can be standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]setting index (-1 unknown string) \end{Desc} - - -Definition at line 575 of file sls\-Detector\-Users.h. - -Referenced by main().\hypertarget{classslsDetectorUsers_7f4fb3cefff5f0175cd2e4fd57ee1be4}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getDetectorSize@{getDetectorSize}} -\index{getDetectorSize@{getDetectorSize}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getDetectorSize]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::get\-Detector\-Size (int \& {\em x0}, int \& {\em y0}, int \& {\em nx}, int \& {\em ny})}\hfill} -\label{classslsDetectorUsers_7f4fb3cefff5f0175cd2e4fd57ee1be4} - - -gets detector size - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em x0}]horizontal position origin in channel number \item[{\em y0}]vertical position origin in channel number \item[{\em nx}]number of channels in horiziontal \item[{\em ny}]number of channels in vertical \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]OK/FAIL \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_1857f2afea58227cb96ad92f5e562a5e}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getDetectorSoftwareVersion@{getDetectorSoftwareVersion}} -\index{getDetectorSoftwareVersion@{getDetectorSoftwareVersion}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getDetectorSoftwareVersion]{\setlength{\rightskip}{0pt plus 5cm}int64\_\-t sls\-Detector\-Users::get\-Detector\-Software\-Version ()}\hfill} -\label{classslsDetectorUsers_1857f2afea58227cb96ad92f5e562a5e} - - -get get Detector Software Version \begin{Desc} -\item[Returns:]id \end{Desc} -\hypertarget{classslsDetectorUsers_c7d0254e38b8fe783204f691a4ee05b2}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getDetectorStatus@{getDetectorStatus}} -\index{getDetectorStatus@{getDetectorStatus}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getDetectorStatus]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::get\-Detector\-Status ()}\hfill} -\label{classslsDetectorUsers_c7d0254e38b8fe783204f691a4ee05b2} - - -get run status - -\begin{Desc} -\item[Returns:]status mask \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_5292a3d9c12696512b81bcc6c579a03c}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getDetectorType@{getDetectorType}} -\index{getDetectorType@{getDetectorType}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getDetectorType]{\setlength{\rightskip}{0pt plus 5cm}string sls\-Detector\-Users::get\-Detector\-Type ()}\hfill} -\label{classslsDetectorUsers_5292a3d9c12696512b81bcc6c579a03c} - - -useful for data plotting etc. - -\begin{Desc} -\item[Returns:]Mythen, Eiger, Gotthard etc. \end{Desc} -\hypertarget{classslsDetectorUsers_6e3467bf3c0c246f69f85d485d84dd62}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getFileIndex@{getFileIndex}} -\index{getFileIndex@{getFileIndex}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getFileIndex]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::get\-File\-Index ()}\hfill} -\label{classslsDetectorUsers_6e3467bf3c0c246f69f85d485d84dd62} - - -\begin{Desc} -\item[Returns:]the default output file index \end{Desc} -\hypertarget{classslsDetectorUsers_5f30c83e8bf07a92fad0916d43e3799c}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getFileName@{getFileName}} -\index{getFileName@{getFileName}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getFileName]{\setlength{\rightskip}{0pt plus 5cm}string sls\-Detector\-Users::get\-File\-Name ()}\hfill} -\label{classslsDetectorUsers_5f30c83e8bf07a92fad0916d43e3799c} - - -\begin{Desc} -\item[Returns:]the default output files root name \end{Desc} -\hypertarget{classslsDetectorUsers_81969295c2b08f14e9c3d4fa1f7d4e16}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getFilePath@{getFilePath}} -\index{getFilePath@{getFilePath}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getFilePath]{\setlength{\rightskip}{0pt plus 5cm}string sls\-Detector\-Users::get\-File\-Path ()}\hfill} -\label{classslsDetectorUsers_81969295c2b08f14e9c3d4fa1f7d4e16} - - -returns the default output files path - -\hypertarget{classslsDetectorUsers_0b20511a94205abd689f31bd1a2d4c18}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getFlatFieldCorrectionDir@{getFlatFieldCorrectionDir}} -\index{getFlatFieldCorrectionDir@{getFlatFieldCorrectionDir}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getFlatFieldCorrectionDir]{\setlength{\rightskip}{0pt plus 5cm}string sls\-Detector\-Users::get\-Flat\-Field\-Correction\-Dir ()}\hfill} -\label{classslsDetectorUsers_0b20511a94205abd689f31bd1a2d4c18} - - -get flat field corrections file directory - -\begin{Desc} -\item[Returns:]flat field correction file directory \end{Desc} -\hypertarget{classslsDetectorUsers_a83083f73523557e6129f33b59f38327}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getFlatFieldCorrectionFile@{getFlatFieldCorrectionFile}} -\index{getFlatFieldCorrectionFile@{getFlatFieldCorrectionFile}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getFlatFieldCorrectionFile]{\setlength{\rightskip}{0pt plus 5cm}string sls\-Detector\-Users::get\-Flat\-Field\-Correction\-File ()}\hfill} -\label{classslsDetectorUsers_a83083f73523557e6129f33b59f38327} - - -get flat field corrections file name - -\begin{Desc} -\item[Returns:]flat field correction file name \end{Desc} -\hypertarget{classslsDetectorUsers_588a5e1d231cd6778f6f78fdc53b9681}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getMaximumDetectorSize@{getMaximumDetectorSize}} -\index{getMaximumDetectorSize@{getMaximumDetectorSize}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getMaximumDetectorSize]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::get\-Maximum\-Detector\-Size (int \& {\em nx}, int \& {\em ny})}\hfill} -\label{classslsDetectorUsers_588a5e1d231cd6778f6f78fdc53b9681} - - -setsthe maximum detector size - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em x0}]horizontal position origin in channel number \item[{\em y0}]vertical position origin in channel number \item[{\em nx}]number of channels in horiziontal \item[{\em ny}]number of channels in vertical \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]OK/FAIL \end{Desc} -\hypertarget{classslsDetectorUsers_09ded3b9c81e4544d42bb0697c3b7624}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getModuleFirmwareVersion@{getModuleFirmwareVersion}} -\index{getModuleFirmwareVersion@{getModuleFirmwareVersion}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getModuleFirmwareVersion]{\setlength{\rightskip}{0pt plus 5cm}int64\_\-t sls\-Detector\-Users::get\-Module\-Firmware\-Version ()}\hfill} -\label{classslsDetectorUsers_09ded3b9c81e4544d42bb0697c3b7624} - - -get get Module Firmware Version \begin{Desc} -\item[Returns:]id \end{Desc} -\hypertarget{classslsDetectorUsers_5c0e9f8836e1a8a2d986408e4f5dfd3b}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getModuleSerialNumber@{getModuleSerialNumber}} -\index{getModuleSerialNumber@{getModuleSerialNumber}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getModuleSerialNumber]{\setlength{\rightskip}{0pt plus 5cm}int64\_\-t sls\-Detector\-Users::get\-Module\-Serial\-Number (int {\em imod} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_5c0e9f8836e1a8a2d986408e4f5dfd3b} - - -get get Module Serial Number \begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em imod}]module number \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]id \end{Desc} -\hypertarget{classslsDetectorUsers_e6e5f06995e3ef110824adc5f8b095e9}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getPositions@{getPositions}} -\index{getPositions@{getPositions}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getPositions]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::get\-Positions (double $\ast$ {\em pos} = {\tt NULL})}\hfill} -\label{classslsDetectorUsers_e6e5f06995e3ef110824adc5f8b095e9} - - -get positions for the acquisition - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em pos}]array which will contain the encoder positions \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]number of positions \end{Desc} -\hypertarget{classslsDetectorUsers_547feb09262a2f0fa1ec4de82e92ab63}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getThisSoftwareVersion@{getThisSoftwareVersion}} -\index{getThisSoftwareVersion@{getThisSoftwareVersion}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getThisSoftwareVersion]{\setlength{\rightskip}{0pt plus 5cm}int64\_\-t sls\-Detector\-Users::get\-This\-Software\-Version ()}\hfill} -\label{classslsDetectorUsers_547feb09262a2f0fa1ec4de82e92ab63} - - -get this Software Version \begin{Desc} -\item[Returns:]id \end{Desc} -\hypertarget{classslsDetectorUsers_fe8029788742125c44383817f89214ca}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getThresholdEnergy@{getThresholdEnergy}} -\index{getThresholdEnergy@{getThresholdEnergy}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getThresholdEnergy]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::get\-Threshold\-Energy ()}\hfill} -\label{classslsDetectorUsers_fe8029788742125c44383817f89214ca} - - -get threshold energy - -\begin{Desc} -\item[Returns:]current threshold value for imod in ev (-1 failed) \end{Desc} -\hypertarget{classslsDetectorUsers_e88a9626e4e661c1c0e1d27ba4a57d50}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getTimingMode@{getTimingMode}} -\index{getTimingMode@{getTimingMode}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getTimingMode]{\setlength{\rightskip}{0pt plus 5cm}static int sls\-Detector\-Users::get\-Timing\-Mode (string {\em s})\hspace{0.3cm}{\tt \mbox{[}inline, static\mbox{]}}}\hfill} -\label{classslsDetectorUsers_e88a9626e4e661c1c0e1d27ba4a57d50} - - -returns external communication mode string from index - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em f}]index for communication mode \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]auto, trigger, ro\_\-trigger, gating, triggered\_\-gating, unknown when wrong mode \end{Desc} - - -Definition at line 625 of file sls\-Detector\-Users.h.\hypertarget{classslsDetectorUsers_420880726f4036bf9da83edfcb2d6cf0}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!getTimingMode@{getTimingMode}} -\index{getTimingMode@{getTimingMode}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[getTimingMode]{\setlength{\rightskip}{0pt plus 5cm}static string sls\-Detector\-Users::get\-Timing\-Mode (int {\em f})\hspace{0.3cm}{\tt \mbox{[}inline, static\mbox{]}}}\hfill} -\label{classslsDetectorUsers_420880726f4036bf9da83edfcb2d6cf0} - - -returns external communication mode string from index - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em f}]index for communication mode \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]auto, trigger, ro\_\-trigger, gating, triggered\_\-gating, unknown when wrong mode \end{Desc} - - -Definition at line 609 of file sls\-Detector\-Users.h.\hypertarget{classslsDetectorUsers_56fa8890298a01fc58baad413dfdf1c1}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!initDataset@{initDataset}} -\index{initDataset@{initDataset}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[initDataset]{\setlength{\rightskip}{0pt plus 5cm}virtual void sls\-Detector\-Users::init\-Dataset (int {\em refresh})\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}\hfill} -\label{classslsDetectorUsers_56fa8890298a01fc58baad413dfdf1c1} - - -function to initalize a set of measurements (reset binning if angular conversion, reset summing otherwise) - can be overcome by the user's functions thanks to the virtual property - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em refresh}]if 1, all parameters like ffcoefficients, badchannels, ratecorrections etc. are reset (should be called at least onece with this option), if 0 simply reset merging/ summation \end{description} -\end{Desc} -\hypertarget{classslsDetectorUsers_5f7c26833decef59c1abfd7d745c4671}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!putCommand@{putCommand}} -\index{putCommand@{putCommand}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[putCommand]{\setlength{\rightskip}{0pt plus 5cm}string sls\-Detector\-Users::put\-Command (int {\em narg}, char $\ast$ {\em args}\mbox{[}$\,$\mbox{]}, int {\em pos} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_5f7c26833decef59c1abfd7d745c4671} - - -sets parameters in command interface \href{http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf}\tt{http://www.psi.ch/detectors/Users\-Support\-EN/sls\-Detector\-Client\-How\-To.pdf} - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em narg}]value to be set \item[{\em args}]value to be set \item[{\em pos}]position of detector in multislsdetector list \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]answer string \end{Desc} -\hypertarget{classslsDetectorUsers_8aeda7c2cbc270c7f8756761823e8d95}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!readConfigurationFile@{readConfigurationFile}} -\index{readConfigurationFile@{readConfigurationFile}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[readConfigurationFile]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::read\-Configuration\-File (string const {\em fname})}\hfill} -\label{classslsDetectorUsers_8aeda7c2cbc270c7f8756761823e8d95} - - -Reads the configuration file -- will contain all the informations needed for the configuration (e.g. for a PSI detector caldir, settingsdir, angconv, badchannels, hostname etc.). - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em fname}]file name \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]OK or FAIL \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_2a85e28ff08e3ec1e08bea3ba7d0fb08}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!registerAcquisitionFinishedCallback@{registerAcquisitionFinishedCallback}} -\index{registerAcquisitionFinishedCallback@{registerAcquisitionFinishedCallback}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[registerAcquisitionFinishedCallback]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Detector\-Users::register\-Acquisition\-Finished\-Callback (int($\ast$)(double, int, void $\ast$) {\em func}, void $\ast$ {\em p\-Arg})}\hfill} -\label{classslsDetectorUsers_2a85e28ff08e3ec1e08bea3ba7d0fb08} - - -register calbback for accessing detector final data - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em func}]function to be called at the end of the acquisition. gets detector status and progress index as arguments \end{description} -\end{Desc} -\hypertarget{classslsDetectorUsers_d1ab73675435879c2c5cef7adab02c32}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!registerConnectChannelsCallback@{registerConnectChannelsCallback}} -\index{registerConnectChannelsCallback@{registerConnectChannelsCallback}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[registerConnectChannelsCallback]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Detector\-Users::register\-Connect\-Channels\-Callback (int($\ast$)(void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill} -\label{classslsDetectorUsers_d1ab73675435879c2c5cef7adab02c32} - - -register callback for connecting to the epics channels - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em func}]function for connecting to the epics channels \end{description} -\end{Desc} -\hypertarget{classslsDetectorUsers_4a1db91fc49fc1710f98ce98e33bc16b}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!registerDataCallback@{registerDataCallback}} -\index{registerDataCallback@{registerDataCallback}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[registerDataCallback]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Detector\-Users::register\-Data\-Callback (int($\ast$)(\hyperlink{classdetectorData}{detector\-Data} $\ast$d, int f, void $\ast$) {\em user\-Callback}, void $\ast$ {\em p\-Arg})}\hfill} -\label{classslsDetectorUsers_4a1db91fc49fc1710f98ce98e33bc16b} - - -register calbback for accessing detector final data - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em user\-Callback}]function for plotting/analyzing the data. Its arguments are the data structure d and the frame number f. \end{description} -\end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_a94dd8fce8548ba8e79201ec50fe27d6}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!registerDisconnectChannelsCallback@{registerDisconnectChannelsCallback}} -\index{registerDisconnectChannelsCallback@{registerDisconnectChannelsCallback}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[registerDisconnectChannelsCallback]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Detector\-Users::register\-Disconnect\-Channels\-Callback (int($\ast$)(void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill} -\label{classslsDetectorUsers_a94dd8fce8548ba8e79201ec50fe27d6} - - -register callback to disconnect the epics channels - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em func}]function to disconnect the epics channels \end{description} -\end{Desc} -\hypertarget{classslsDetectorUsers_1969785197030aa8e2d3c3d48a9cb45c}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!registerGetI0Callback@{registerGetI0Callback}} -\index{registerGetI0Callback@{registerGetI0Callback}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[registerGetI0Callback]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Detector\-Users::register\-Get\-I0Callback (double($\ast$)(int, void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill} -\label{classslsDetectorUsers_1969785197030aa8e2d3c3d48a9cb45c} - - -register calbback reading to I0 - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em func}]function for reading the I0 (called with parameter 0 before the acquisition, 1 after and the return value used as I0) \end{description} -\end{Desc} -\hypertarget{classslsDetectorUsers_c2b87416288e657a209e1374c778eb16}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!registerGetPositionCallback@{registerGetPositionCallback}} -\index{registerGetPositionCallback@{registerGetPositionCallback}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[registerGetPositionCallback]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Detector\-Users::register\-Get\-Position\-Callback (double($\ast$)(void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill} -\label{classslsDetectorUsers_c2b87416288e657a209e1374c778eb16} - - -register calbback for reading detector position - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em func}]function for reading the detector position \end{description} -\end{Desc} -\hypertarget{classslsDetectorUsers_0f7c9bd3c46647d5dda2fa5312f3ef92}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!registerGoToPositionCallback@{registerGoToPositionCallback}} -\index{registerGoToPositionCallback@{registerGoToPositionCallback}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[registerGoToPositionCallback]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Detector\-Users::register\-Go\-To\-Position\-Callback (int($\ast$)(double, void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill} -\label{classslsDetectorUsers_0f7c9bd3c46647d5dda2fa5312f3ef92} - - -register callback for moving the detector - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em func}]function for moving the detector \end{description} -\end{Desc} -\hypertarget{classslsDetectorUsers_e807e9f4a015a4bbcb22e36b80577ea5}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!registerGoToPositionNoWaitCallback@{registerGoToPositionNoWaitCallback}} -\index{registerGoToPositionNoWaitCallback@{registerGoToPositionNoWaitCallback}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[registerGoToPositionNoWaitCallback]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Detector\-Users::register\-Go\-To\-Position\-No\-Wait\-Callback (int($\ast$)(double, void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill} -\label{classslsDetectorUsers_e807e9f4a015a4bbcb22e36b80577ea5} - - -register callback for moving the detector without waiting - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em func}]function for moving the detector \end{description} -\end{Desc} -\hypertarget{classslsDetectorUsers_898cf0db148f0d3de7d4725cc8342c56}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!registerRawDataCallback@{registerRawDataCallback}} -\index{registerRawDataCallback@{registerRawDataCallback}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[registerRawDataCallback]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Detector\-Users::register\-Raw\-Data\-Callback (int($\ast$)(double $\ast$p, int n, void $\ast$) {\em user\-Callback}, void $\ast$ {\em p\-Arg})}\hfill} -\label{classslsDetectorUsers_898cf0db148f0d3de7d4725cc8342c56} - - -register callback for accessing raw data - if the raw\-Data\-Callback is registered, no filewriting/postprocessing will be carried on automatically by the software - the raw data are deleted by the software - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em user\-Callback}]function for postprocessing and saving the data - p is the pointer to the data, n is the number of channels \end{description} -\end{Desc} -\hypertarget{classslsDetectorUsers_8769c8ea5020b43dc3557c86f9e4159b}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!retrieveDetectorSetup@{retrieveDetectorSetup}} -\index{retrieveDetectorSetup@{retrieveDetectorSetup}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[retrieveDetectorSetup]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::retrieve\-Detector\-Setup (string const {\em fname})}\hfill} -\label{classslsDetectorUsers_8769c8ea5020b43dc3557c86f9e4159b} - - -Loads the detector setup from file. - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em fname}]file to read from \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]OK or FAIL \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_2c073513ae3ac53f3e040bc2911b6ee2}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!runStatusType@{runStatusType}} -\index{runStatusType@{runStatusType}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[runStatusType]{\setlength{\rightskip}{0pt plus 5cm}static string sls\-Detector\-Users::run\-Status\-Type (int {\em s})\hspace{0.3cm}{\tt \mbox{[}inline, static\mbox{]}}}\hfill} -\label{classslsDetectorUsers_2c073513ae3ac53f3e040bc2911b6ee2} - - -returns string from run status index - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em s}]run status index \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]string error, waiting, running, data, finished or unknown when wrong index \end{Desc} - - -Definition at line 557 of file sls\-Detector\-Users.h. - -Referenced by main().\hypertarget{classslsDetectorUsers_475938986407804877df4dcece97cc19}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setBeamEnergy@{setBeamEnergy}} -\index{setBeamEnergy@{setBeamEnergy}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setBeamEnergy]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::set\-Beam\-Energy (int {\em e\_\-e\-V})}\hfill} -\label{classslsDetectorUsers_475938986407804877df4dcece97cc19} - - -set beam energy -- only for dectris! - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em e\_\-e\-V}]beam in e\-V \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]current beam energyin ev (-1 failed) \end{Desc} -\hypertarget{classslsDetectorUsers_ff667cf0665154cdff5d5f3dbc3526ba}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setBitDepth@{setBitDepth}} -\index{setBitDepth@{setBitDepth}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setBitDepth]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::set\-Bit\-Depth (int {\em i} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_ff667cf0665154cdff5d5f3dbc3526ba} - - -set/get dynamic range - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em i}]dynamic range (-1 get) \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]current dynamic range \end{Desc} -\hypertarget{classslsDetectorUsers_99f67fab7edfe68cc8b2300e282ff3f2}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setDelayAfterTrigger@{setDelayAfterTrigger}} -\index{setDelayAfterTrigger@{setDelayAfterTrigger}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setDelayAfterTrigger]{\setlength{\rightskip}{0pt plus 5cm}double sls\-Detector\-Users::set\-Delay\-After\-Trigger (double {\em t} = {\tt -1}, bool {\em inseconds} = {\tt false})}\hfill} -\label{classslsDetectorUsers_99f67fab7edfe68cc8b2300e282ff3f2} - - -set/get delay after trigger - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em t}]time in ns (-1 gets) \item[{\em inseconds}]true if the value is in s, else ns \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]timer set value in ns, or s if specified \end{Desc} -\hypertarget{classslsDetectorUsers_42c97d03516a2457f8e9a98a16a9a43d}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setDetectorSize@{setDetectorSize}} -\index{setDetectorSize@{setDetectorSize}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setDetectorSize]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::set\-Detector\-Size (int {\em x0} = {\tt -1}, int {\em y0} = {\tt -1}, int {\em nx} = {\tt -1}, int {\em ny} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_42c97d03516a2457f8e9a98a16a9a43d} - - -sets the detector size - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em x0}]horizontal position origin in channel number (-1 unchanged) \item[{\em y0}]vertical position origin in channel number (-1 unchanged) \item[{\em nx}]number of channels in horiziontal (-1 unchanged) \item[{\em ny}]number of channels in vertical (-1 unchanged) \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]OK/FAIL \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_cac89084aba58ebe81420c7c9ac4217a}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setExposurePeriod@{setExposurePeriod}} -\index{setExposurePeriod@{setExposurePeriod}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setExposurePeriod]{\setlength{\rightskip}{0pt plus 5cm}double sls\-Detector\-Users::set\-Exposure\-Period (double {\em t} = {\tt -1}, bool {\em inseconds} = {\tt false})}\hfill} -\label{classslsDetectorUsers_cac89084aba58ebe81420c7c9ac4217a} - - -set/get exposure period - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em t}]time in ns (-1 gets) \item[{\em inseconds}]true if the value is in s, else ns \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]timer set value in ns, or s if specified \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_134225893d41bc97e9f1d645e035a04a}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setExposureTime@{setExposureTime}} -\index{setExposureTime@{setExposureTime}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setExposureTime]{\setlength{\rightskip}{0pt plus 5cm}double sls\-Detector\-Users::set\-Exposure\-Time (double {\em t} = {\tt -1}, bool {\em inseconds} = {\tt false})}\hfill} -\label{classslsDetectorUsers_134225893d41bc97e9f1d645e035a04a} - - -set/get exposure time value - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em t}]time in sn (-1 gets) \item[{\em inseconds}]true if the value is in s, else ns \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]timer set value in ns, or s if specified \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_6b92ea7e237c77aa5107d7aabf76fe2d}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setFileIndex@{setFileIndex}} -\index{setFileIndex@{setFileIndex}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setFileIndex]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::set\-File\-Index (int {\em i})}\hfill} -\label{classslsDetectorUsers_6b92ea7e237c77aa5107d7aabf76fe2d} - - -sets the default output file index - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em i}]file index \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]the default output file index \end{Desc} -\hypertarget{classslsDetectorUsers_ff4a8ff4852e50d4ec05204cbc7fea9e}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setFileName@{setFileName}} -\index{setFileName@{setFileName}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setFileName]{\setlength{\rightskip}{0pt plus 5cm}string sls\-Detector\-Users::set\-File\-Name (string {\em s})}\hfill} -\label{classslsDetectorUsers_ff4a8ff4852e50d4ec05204cbc7fea9e} - - -sets the default output files path - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em s}]file name \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]the default output files root name \end{Desc} -\hypertarget{classslsDetectorUsers_d833e1051299e101a5b5097c598ba9cb}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setFilePath@{setFilePath}} -\index{setFilePath@{setFilePath}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setFilePath]{\setlength{\rightskip}{0pt plus 5cm}string sls\-Detector\-Users::set\-File\-Path (string {\em s})}\hfill} -\label{classslsDetectorUsers_d833e1051299e101a5b5097c598ba9cb} - - -sets the default output files path - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em s}]file path \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]file path \end{Desc} -\hypertarget{classslsDetectorUsers_65b112dac3d8b94f219f4d64c13cf0f9}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setFlatFieldCorrectionDir@{setFlatFieldCorrectionDir}} -\index{setFlatFieldCorrectionDir@{setFlatFieldCorrectionDir}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setFlatFieldCorrectionDir]{\setlength{\rightskip}{0pt plus 5cm}string sls\-Detector\-Users::set\-Flat\-Field\-Correction\-Dir (string {\em dir})}\hfill} -\label{classslsDetectorUsers_65b112dac3d8b94f219f4d64c13cf0f9} - - -set flat field corrections file directory - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em dir}]flat field correction file directory \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]flat field correction file directory \end{Desc} -\hypertarget{classslsDetectorUsers_ad9e6da8683ba2887174505fd3b7d739}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setFlatFieldCorrectionFile@{setFlatFieldCorrectionFile}} -\index{setFlatFieldCorrectionFile@{setFlatFieldCorrectionFile}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setFlatFieldCorrectionFile]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::set\-Flat\-Field\-Correction\-File (string {\em fname} = {\tt \char`\"{}\char`\"{}})}\hfill} -\label{classslsDetectorUsers_ad9e6da8683ba2887174505fd3b7d739} - - -set flat field correction file - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em fname}]name of the flat field file (or \char`\"{}\char`\"{} if disable) \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]0 if disable (or file could not be read), $>$0 otherwise \end{Desc} -\hypertarget{classslsDetectorUsers_8b741851c4eaef4e29322c99fd17cb3b}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setNumberOfCycles@{setNumberOfCycles}} -\index{setNumberOfCycles@{setNumberOfCycles}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setNumberOfCycles]{\setlength{\rightskip}{0pt plus 5cm}int64\_\-t sls\-Detector\-Users::set\-Number\-Of\-Cycles (int64\_\-t {\em t} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_8b741851c4eaef4e29322c99fd17cb3b} - - -set/get number of cycles i.e. number of triggers - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em t}]number of frames (-1 gets) \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]number of frames \end{Desc} -\hypertarget{classslsDetectorUsers_fc82f608bf74d10f3aa866bff94cbbab}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setNumberOfFrames@{setNumberOfFrames}} -\index{setNumberOfFrames@{setNumberOfFrames}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setNumberOfFrames]{\setlength{\rightskip}{0pt plus 5cm}int64\_\-t sls\-Detector\-Users::set\-Number\-Of\-Frames (int64\_\-t {\em t} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_fc82f608bf74d10f3aa866bff94cbbab} - - -set/get number of frames i.e. number of exposure per trigger - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em t}]number of frames (-1 gets) \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]number of frames \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_61d4acb00c997c5e02be6a191401c4ce}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setNumberOfGates@{setNumberOfGates}} -\index{setNumberOfGates@{setNumberOfGates}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setNumberOfGates]{\setlength{\rightskip}{0pt plus 5cm}int64\_\-t sls\-Detector\-Users::set\-Number\-Of\-Gates (int64\_\-t {\em t} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_61d4acb00c997c5e02be6a191401c4ce} - - -set/get number of gates - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em t}]number of gates (-1 gets) \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]number of gates \end{Desc} -\hypertarget{classslsDetectorUsers_ee622153ebd6b0dad065d95b07221955}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setOnline@{setOnline}} -\index{setOnline@{setOnline}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setOnline]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::set\-Online (int const {\em online} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_ee622153ebd6b0dad065d95b07221955} - - -sets the online\-Flag - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em online}]can be: -1 returns wether the detector is in online (1) or offline (0) state; 0 detector in offline state; 1 detector in online state \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]0 (offline) or 1 (online) \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_f296c05ee6134fb8d53d08a025e89775}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setPositions@{setPositions}} -\index{setPositions@{setPositions}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setPositions]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::set\-Positions (int {\em n\-Pos}, double $\ast$ {\em pos})}\hfill} -\label{classslsDetectorUsers_f296c05ee6134fb8d53d08a025e89775} - - -set positions for the acquisition - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em n\-Pos}]number of positions \item[{\em pos}]array with the encoder positions \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]number of positions \end{Desc} -\hypertarget{classslsDetectorUsers_db084473ffe61960b86abdfa8efcc80d}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setReceiverMode@{setReceiverMode}} -\index{setReceiverMode@{setReceiverMode}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setReceiverMode]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::set\-Receiver\-Mode (int {\em n} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_db084473ffe61960b86abdfa8efcc80d} - - -sets the mode by which gui requests data from receiver - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em n}]is 0 for random requests for fast acquisitions and greater than 0 for nth read requests \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]the mode set in the receiver \end{Desc} -\hypertarget{classslsDetectorUsers_31b25d2659d3b244bb10b5516a9fd957}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setSettings@{setSettings}} -\index{setSettings@{setSettings}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setSettings]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::set\-Settings (int {\em isettings} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_31b25d2659d3b244bb10b5516a9fd957} - - -set detector settings - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em isettings}]settings index (-1 gets) \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]current settings \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_1354266fd1bfaccd58992a3f51bbbd1d}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setThresholdEnergy@{setThresholdEnergy}} -\index{setThresholdEnergy@{setThresholdEnergy}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setThresholdEnergy]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::set\-Threshold\-Energy (int {\em e\_\-e\-V})}\hfill} -\label{classslsDetectorUsers_1354266fd1bfaccd58992a3f51bbbd1d} - - -set threshold energy - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em e\_\-e\-V}]threshold in e\-V \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]current threshold value for imod in ev (-1 failed) \end{Desc} -\hypertarget{classslsDetectorUsers_e2825524756c4bdf418a6233e137b4d7}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!setTimingMode@{setTimingMode}} -\index{setTimingMode@{setTimingMode}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[setTimingMode]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::set\-Timing\-Mode (int {\em pol} = {\tt -1})}\hfill} -\label{classslsDetectorUsers_e2825524756c4bdf418a6233e137b4d7} - - -set/get the external communication mode - -\begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em pol}]value to be set\end{description} -\end{Desc} -\begin{Desc} -\item[See also:]\hyperlink{classslsDetectorUsers_420880726f4036bf9da83edfcb2d6cf0}{get\-Timing\-Mode} \end{Desc} -\begin{Desc} -\item[Returns:]current external communication mode \end{Desc} -\hypertarget{classslsDetectorUsers_a34810bb0e872fdf929ebe62d8582bd3}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!startMeasurement@{startMeasurement}} -\index{startMeasurement@{startMeasurement}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[startMeasurement]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Detector\-Users::start\-Measurement ()}\hfill} -\label{classslsDetectorUsers_a34810bb0e872fdf929ebe62d8582bd3} - - -start measurement and acquires - -\begin{Desc} -\item[Returns:]OK/FAIL \end{Desc} - - -Referenced by main().\hypertarget{classslsDetectorUsers_2abc673c45c1fe006f6b0fea6188e3a9}{ -\index{slsDetectorUsers@{sls\-Detector\-Users}!stopMeasurement@{stopMeasurement}} -\index{stopMeasurement@{stopMeasurement}!slsDetectorUsers@{sls\-Detector\-Users}} -\paragraph[stopMeasurement]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Detector\-Users::stop\-Measurement ()}\hfill} -\label{classslsDetectorUsers_2abc673c45c1fe006f6b0fea6188e3a9} - - -stop measurement - -\begin{Desc} -\item[Returns:]OK/FAIL \end{Desc} - - -The documentation for this class was generated from the following file:\begin{CompactItemize} -\item -\hyperlink{slsDetectorUsers_8h}{sls\-Detector\-Users.h}\end{CompactItemize} diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/classslsReceiverUsers.tex b/manual/manual-api/slsDetectorUsersDocs/latex/classslsReceiverUsers.tex deleted file mode 100644 index 875dccdda..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/classslsReceiverUsers.tex +++ /dev/null @@ -1,164 +0,0 @@ -\hypertarget{classslsReceiverUsers}{ -\subsection{sls\-Receiver\-Users Class Reference} -\label{classslsReceiverUsers}\index{slsReceiverUsers@{slsReceiverUsers}} -} -Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data. - - -{\tt \#include $<$sls\-Receiver\-Users.h$>$} - -\subsubsection*{Public Member Functions} -\begin{CompactItemize} -\item -\hyperlink{classslsReceiverUsers_79a82ba94fbb19761c7701aa3901b8b1}{sls\-Receiver\-Users} (int argc, char $\ast$argv\mbox{[}$\,$\mbox{]}, int \&success) -\item -\hyperlink{classslsReceiverUsers_9b45943d81ce7a09543aa446de857cb0}{$\sim$sls\-Receiver\-Users} () -\item -void \hyperlink{classslsReceiverUsers_bad0b3265826da2d9ebf48e59e9d5787}{close\-File} (int p) -\item -int \hyperlink{classslsReceiverUsers_ef40b4987367b8a0116bcb66534dd7b7}{start} () -\item -void \hyperlink{classslsReceiverUsers_394001d873a4b7912865a971d4d25f87}{stop} () -\item -int64\_\-t \hyperlink{classslsReceiverUsers_f206092e2744e12ce6b717f4181d91a2}{get\-Receiver\-Version} () -\item -void \hyperlink{classslsReceiverUsers_5d4bb9244008d0bc570778230d30c5e3}{register\-Call\-Back\-Start\-Acquisition} (int($\ast$func)(char $\ast$filepath, char $\ast$filename, int fileindex, int datasize, void $\ast$), void $\ast$arg) -\item -void \hyperlink{classslsReceiverUsers_7471d2945e8650eece86258e6ca56156}{register\-Call\-Back\-Acquisition\-Finished} (void($\ast$func)(int nf, void $\ast$), void $\ast$arg) -\item -void \hyperlink{classslsReceiverUsers_343b9fac505e8c08a7fbf9efdd0f5762}{register\-Call\-Back\-Raw\-Data\-Ready} (void($\ast$func)(int framenumber, char $\ast$datapointer, int datasize, FILE $\ast$filedescriptor, char $\ast$guidatapointer, void $\ast$), void $\ast$arg) -\end{CompactItemize} -\subsubsection*{Static Public Attributes} -\begin{CompactItemize} -\item -static sls\-Receiver\-TCPIPInterface $\ast$ \hyperlink{classslsReceiverUsers_8f262724fb99ecd3976214710d82dd18}{receiver} -\end{CompactItemize} - - -\subsubsection{Detailed Description} -Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data. - -\hyperlink{classslsReceiverUsers}{sls\-Receiver\-Users} is a class that can be instantiated in the users software to receive the data from the detectors. Callbacks can be defined for processing and/or saving data - - - -Definition at line 21 of file sls\-Receiver\-Users.h. - -\subsubsection{Constructor \& Destructor Documentation} -\hypertarget{classslsReceiverUsers_79a82ba94fbb19761c7701aa3901b8b1}{ -\index{slsReceiverUsers@{sls\-Receiver\-Users}!slsReceiverUsers@{slsReceiverUsers}} -\index{slsReceiverUsers@{slsReceiverUsers}!slsReceiverUsers@{sls\-Receiver\-Users}} -\paragraph[slsReceiverUsers]{\setlength{\rightskip}{0pt plus 5cm}sls\-Receiver\-Users::sls\-Receiver\-Users (int {\em argc}, char $\ast$ {\em argv}\mbox{[}$\,$\mbox{]}, int \& {\em success})}\hfill} -\label{classslsReceiverUsers_79a82ba94fbb19761c7701aa3901b8b1} - - -Constructor reads config file, creates socket, assigns function table \begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em argc}]from command line \item[{\em argv}]from command line \item[{\em succecc}]socket creation was successfull \end{description} -\end{Desc} -\hypertarget{classslsReceiverUsers_9b45943d81ce7a09543aa446de857cb0}{ -\index{slsReceiverUsers@{sls\-Receiver\-Users}!~slsReceiverUsers@{$\sim$slsReceiverUsers}} -\index{~slsReceiverUsers@{$\sim$slsReceiverUsers}!slsReceiverUsers@{sls\-Receiver\-Users}} -\paragraph[$\sim$slsReceiverUsers]{\setlength{\rightskip}{0pt plus 5cm}sls\-Receiver\-Users::$\sim$sls\-Receiver\-Users ()}\hfill} -\label{classslsReceiverUsers_9b45943d81ce7a09543aa446de857cb0} - - -Destructor - -\subsubsection{Member Function Documentation} -\hypertarget{classslsReceiverUsers_bad0b3265826da2d9ebf48e59e9d5787}{ -\index{slsReceiverUsers@{sls\-Receiver\-Users}!closeFile@{closeFile}} -\index{closeFile@{closeFile}!slsReceiverUsers@{sls\-Receiver\-Users}} -\paragraph[closeFile]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Receiver\-Users::close\-File (int {\em p})}\hfill} -\label{classslsReceiverUsers_bad0b3265826da2d9ebf48e59e9d5787} - - -Close File and exits receiver server \hypertarget{classslsReceiverUsers_f206092e2744e12ce6b717f4181d91a2}{ -\index{slsReceiverUsers@{sls\-Receiver\-Users}!getReceiverVersion@{getReceiverVersion}} -\index{getReceiverVersion@{getReceiverVersion}!slsReceiverUsers@{sls\-Receiver\-Users}} -\paragraph[getReceiverVersion]{\setlength{\rightskip}{0pt plus 5cm}int64\_\-t sls\-Receiver\-Users::get\-Receiver\-Version ()}\hfill} -\label{classslsReceiverUsers_f206092e2744e12ce6b717f4181d91a2} - - -get get Receiver Version \begin{Desc} -\item[Returns:]id \end{Desc} -\hypertarget{classslsReceiverUsers_7471d2945e8650eece86258e6ca56156}{ -\index{slsReceiverUsers@{sls\-Receiver\-Users}!registerCallBackAcquisitionFinished@{registerCallBackAcquisitionFinished}} -\index{registerCallBackAcquisitionFinished@{registerCallBackAcquisitionFinished}!slsReceiverUsers@{sls\-Receiver\-Users}} -\paragraph[registerCallBackAcquisitionFinished]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Receiver\-Users::register\-Call\-Back\-Acquisition\-Finished (void($\ast$)(int nf, void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill} -\label{classslsReceiverUsers_7471d2945e8650eece86258e6ca56156} - - -register callback for end of acquisition \begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em func}]end of acquisition callback. Argument nf is total frames caught \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]nothing \end{Desc} -\hypertarget{classslsReceiverUsers_343b9fac505e8c08a7fbf9efdd0f5762}{ -\index{slsReceiverUsers@{sls\-Receiver\-Users}!registerCallBackRawDataReady@{registerCallBackRawDataReady}} -\index{registerCallBackRawDataReady@{registerCallBackRawDataReady}!slsReceiverUsers@{sls\-Receiver\-Users}} -\paragraph[registerCallBackRawDataReady]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Receiver\-Users::register\-Call\-Back\-Raw\-Data\-Ready (void($\ast$)(int framenumber, char $\ast$datapointer, int datasize, FILE $\ast$filedescriptor, char $\ast$guidatapointer, void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill} -\label{classslsReceiverUsers_343b9fac505e8c08a7fbf9efdd0f5762} - - -register callback to be called when data are available (to process and/or save the data). \begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em func}]raw data ready callback. arguments are framenum datapointer datasize file descriptor guidatapointer (NULL, no data required) \end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]nothing \end{Desc} -\hypertarget{classslsReceiverUsers_5d4bb9244008d0bc570778230d30c5e3}{ -\index{slsReceiverUsers@{sls\-Receiver\-Users}!registerCallBackStartAcquisition@{registerCallBackStartAcquisition}} -\index{registerCallBackStartAcquisition@{registerCallBackStartAcquisition}!slsReceiverUsers@{sls\-Receiver\-Users}} -\paragraph[registerCallBackStartAcquisition]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Receiver\-Users::register\-Call\-Back\-Start\-Acquisition (int($\ast$)(char $\ast$filepath, char $\ast$filename, int fileindex, int datasize, void $\ast$) {\em func}, void $\ast$ {\em arg})}\hfill} -\label{classslsReceiverUsers_5d4bb9244008d0bc570778230d30c5e3} - - -register calbback for starting the acquisition \begin{Desc} -\item[Parameters:] -\begin{description} -\item[{\em func}]callback to be called when starting the acquisition. Its arguments are filepath filename fileindex data size\end{description} -\end{Desc} -\begin{Desc} -\item[Returns:]0 callback takes care of open,close,write file; 1 callback writes file, we have to open, close it; 2 we open, close, write file, callback does not do anything \end{Desc} -\hypertarget{classslsReceiverUsers_ef40b4987367b8a0116bcb66534dd7b7}{ -\index{slsReceiverUsers@{sls\-Receiver\-Users}!start@{start}} -\index{start@{start}!slsReceiverUsers@{sls\-Receiver\-Users}} -\paragraph[start]{\setlength{\rightskip}{0pt plus 5cm}int sls\-Receiver\-Users::start ()}\hfill} -\label{classslsReceiverUsers_ef40b4987367b8a0116bcb66534dd7b7} - - -starts listening on the TCP port for client comminication \begin{Desc} -\item[Returns:]0 for success or 1 for FAIL in creating TCP server \end{Desc} - - -Referenced by main().\hypertarget{classslsReceiverUsers_394001d873a4b7912865a971d4d25f87}{ -\index{slsReceiverUsers@{sls\-Receiver\-Users}!stop@{stop}} -\index{stop@{stop}!slsReceiverUsers@{sls\-Receiver\-Users}} -\paragraph[stop]{\setlength{\rightskip}{0pt plus 5cm}void sls\-Receiver\-Users::stop ()}\hfill} -\label{classslsReceiverUsers_394001d873a4b7912865a971d4d25f87} - - -stops listening to the TCP \& UDP port and exit receiver program - -Referenced by main(). - -\subsubsection{Member Data Documentation} -\hypertarget{classslsReceiverUsers_8f262724fb99ecd3976214710d82dd18}{ -\index{slsReceiverUsers@{sls\-Receiver\-Users}!receiver@{receiver}} -\index{receiver@{receiver}!slsReceiverUsers@{sls\-Receiver\-Users}} -\paragraph[receiver]{\setlength{\rightskip}{0pt plus 5cm}sls\-Receiver\-TCPIPInterface$\ast$ \hyperlink{classslsReceiverUsers_8f262724fb99ecd3976214710d82dd18}{sls\-Receiver\-Users::receiver}\hspace{0.3cm}{\tt \mbox{[}static\mbox{]}}}\hfill} -\label{classslsReceiverUsers_8f262724fb99ecd3976214710d82dd18} - - - - -Definition at line 87 of file sls\-Receiver\-Users.h. - -The documentation for this class was generated from the following file:\begin{CompactItemize} -\item -\hyperlink{slsReceiverUsers_8h}{sls\-Receiver\-Users.h}\end{CompactItemize} diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/detectorData_8h.tex b/manual/manual-api/slsDetectorUsersDocs/latex/detectorData_8h.tex deleted file mode 100644 index 14c9a7fe3..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/detectorData_8h.tex +++ /dev/null @@ -1,11 +0,0 @@ -\hypertarget{detectorData_8h}{ -\subsection{detector\-Data.h File Reference} -\label{detectorData_8h}\index{detectorData.h@{detectorData.h}} -} -{\tt \#include $<$unistd.h$>$}\par -{\tt \#include $<$cstring$>$}\par -\subsubsection*{Classes} -\begin{CompactItemize} -\item -class \hyperlink{classdetectorData}{detector\-Data} -\begin{CompactList}\small\item\em data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) \item\end{CompactList}\end{CompactItemize} diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/doxygen.sty b/manual/manual-api/slsDetectorUsersDocs/latex/doxygen.sty deleted file mode 100644 index 9f18220c3..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/doxygen.sty +++ /dev/null @@ -1,77 +0,0 @@ -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{doxygen} -\RequirePackage{calc} -\RequirePackage{array} -\pagestyle{fancyplain} -\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}\cleardoublepage}} -\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} -\lhead[\fancyplain{}{\bfseries\thepage}] - {\fancyplain{}{\bfseries\rightmark}} -\rhead[\fancyplain{}{\bfseries\leftmark}] - {\fancyplain{}{\bfseries\thepage}} -\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Mon May 26 17:07:05 2014 by Doxygen }]{} -\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Mon May 26 17:07:05 2014 by Doxygen }} -\cfoot{} -\newenvironment{Code} -{\footnotesize} -{\normalsize} -\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})} -\newenvironment{DocInclude} -{\footnotesize} -{\normalsize} -\newenvironment{VerbInclude} -{\footnotesize} -{\normalsize} -\newenvironment{Image} -{\begin{figure}[H]} -{\end{figure}} -\newenvironment{ImageNoCaption}{}{} -\newenvironment{CompactList} -{\begin{list}{}{ - \setlength{\leftmargin}{0.5cm} - \setlength{\itemsep}{0pt} - \setlength{\parsep}{0pt} - \setlength{\topsep}{0pt} - \renewcommand{\makelabel}{\hfill}}} -{\end{list}} -\newenvironment{CompactItemize} -{ - \begin{itemize} - \setlength{\itemsep}{-3pt} - \setlength{\parsep}{0pt} - \setlength{\topsep}{0pt} - \setlength{\partopsep}{0pt} -} -{\end{itemize}} -\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp} -\newlength{\tmplength} -\newenvironment{TabularC}[1] -{ -\setlength{\tmplength} - {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)} - \par\begin{tabular*}{\linewidth} - {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|} -} -{\end{tabular*}\par} -\newcommand{\entrylabel}[1]{ - {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}} -\newenvironment{Desc} -{\begin{list}{} - { - \settowidth{\labelwidth}{40pt} - \setlength{\leftmargin}{\labelwidth} - \setlength{\parsep}{0pt} - \setlength{\itemsep}{-4pt} - \renewcommand{\makelabel}{\entrylabel} - } -} -{\end{list}} -\newenvironment{Indent} - {\begin{list}{}{\setlength{\leftmargin}{0.5cm}} - \item[]\ignorespaces} - {\unskip\end{list}} -\setlength{\parindent}{0cm} -\setlength{\parskip}{0.2cm} -\addtocounter{secnumdepth}{1} -\sloppy -\usepackage[T1]{fontenc} diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/files.tex b/manual/manual-api/slsDetectorUsersDocs/latex/files.tex deleted file mode 100644 index 5857c36bb..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/files.tex +++ /dev/null @@ -1,8 +0,0 @@ -\subsection{File List} -Here is a list of all files with brief descriptions:\begin{CompactList} -\item\contentsline{section}{\hyperlink{detectorData_8h}{detector\-Data.h} }{\pageref{detectorData_8h}}{} -\item\contentsline{section}{\hyperlink{mainClient_8cpp}{main\-Client.cpp} }{\pageref{mainClient_8cpp}}{} -\item\contentsline{section}{\hyperlink{mainReceiver_8cpp}{main\-Receiver.cpp} }{\pageref{mainReceiver_8cpp}}{} -\item\contentsline{section}{\hyperlink{slsDetectorUsers_8h}{sls\-Detector\-Users.h} }{\pageref{slsDetectorUsers_8h}}{} -\item\contentsline{section}{\hyperlink{slsReceiverUsers_8h}{sls\-Receiver\-Users.h} }{\pageref{slsReceiverUsers_8h}}{} -\end{CompactList} diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/index.tex b/manual/manual-api/slsDetectorUsersDocs/latex/index.tex deleted file mode 100644 index a5b6f3f17..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/index.tex +++ /dev/null @@ -1,26 +0,0 @@ -\subsection*{API for SLS detectors data acquisition} - - - - - -Although the SLS detectors group delvelops several types of detectors (1/2D, counting/integrating etc.) it is common interest of the group to use a common platfor for data acquisition - -The architecture of the acquisitions system is intended as follows: \begin{itemize} -\item A socket server running on the detector (or more than one in some special cases) \item C++ classes common to all detectors for client-server communication. These can be supplied to users as libraries and embedded also in acquisition systems which are not developed by the SLS \item the possibility of using a Qt-based graphical user interface (with eventually root analisys capabilities) \item the possibility of running all commands from command line. In order to ensure a fast operation of this so called \char`\"{}text client\char`\"{} the detector parameters should not be re-initialized everytime. For this reason a shared memory block is allocated where the main detector flags and parameters are stored \item a Root library for data postprocessing and detector calibration (energy, angle).\end{itemize} -\hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} is a class to control the detector which should be instantiated by the users in their acquisition software (EPICS, spec etc.). A callback for dislaying the data can be registered. More advanced configuration functions are not implemented and can be written in a configuration file tha can be read/written. - -\hyperlink{classslsReceiverUsers}{sls\-Receiver\-Users} is a class to receive the data for detectors with external data receiver (e.g. GOTTHARD). Callbacks can be registered to process the data or save them in specific formats. - -\hyperlink{classdetectorData}{detector\-Data} is a structure containing the data and additional information which is used to return the data e.g. to the GUI for displaying them. - -You can find examples of how this classes can be instatiated in \hyperlink{mainClient_8cpp}{main\-Client.cpp} and \hyperlink{mainReceiver_8cpp}{main\-Receiver.cpp} - -\begin{Desc} -\item[Authors:]\href{mailto:anna.bergamaschi@psi.ch}{\tt Anna Bergamaschi}, \href{mailto:dhanya.maliakal@psi.ch}{\tt Dhanya Maliakal} \end{Desc} -\begin{Desc} -\item[Version:]0.2 \subsubsection*{Currently supported detectors}\end{Desc} -\begin{itemize} -\item MYTHEN \item GOTTHARD controls \item GOTTHARD data receiver \paragraph*{Coming soon}\end{itemize} -\begin{itemize} -\item EIGER \end{itemize} diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/mainClient_8cpp.tex b/manual/manual-api/slsDetectorUsersDocs/latex/mainClient_8cpp.tex deleted file mode 100644 index 155f6b83c..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/mainClient_8cpp.tex +++ /dev/null @@ -1,79 +0,0 @@ -\hypertarget{mainClient_8cpp}{ -\subsection{main\-Client.cpp File Reference} -\label{mainClient_8cpp}\index{mainClient.cpp@{mainClient.cpp}} -} -{\tt \#include $<$iostream$>$}\par -{\tt \#include \char`\"{}sls\-Detector\-Users.h\char`\"{}}\par -{\tt \#include \char`\"{}detector\-Data.h\char`\"{}}\par -\subsubsection*{Functions} -\begin{CompactItemize} -\item -int \hyperlink{mainClient_8cpp_21ef7438e7f0ed24a190513fb8e6af8a}{data\-Callback} (\hyperlink{classdetectorData}{detector\-Data} $\ast$p\-Data, int iframe, void $\ast$p\-Arg) -\item -int \hyperlink{mainClient_8cpp_0ddf1224851353fc92bfbff6f499fa97}{main} (int argc, char $\ast$argv\mbox{[}$\,$\mbox{]}) -\end{CompactItemize} - - -\subsubsection{Detailed Description} -This file is an example of how to implement the \hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} class You can compile it linking it to the sls\-Detector library - -gcc \hyperlink{mainClient_8cpp}{main\-Client.cpp} -L lib -l Sls\-Detector -lm -lpthread - -where lib is the location of lib\-Sls\-Detector.so - -Definition in file \hyperlink{mainClient_8cpp-source}{main\-Client.cpp}. - -\subsubsection{Function Documentation} -\hypertarget{mainClient_8cpp_21ef7438e7f0ed24a190513fb8e6af8a}{ -\index{mainClient.cpp@{main\-Client.cpp}!dataCallback@{dataCallback}} -\index{dataCallback@{dataCallback}!mainClient.cpp@{main\-Client.cpp}} -\paragraph[dataCallback]{\setlength{\rightskip}{0pt plus 5cm}int data\-Callback (\hyperlink{classdetectorData}{detector\-Data} $\ast$ {\em p\-Data}, int {\em iframe}, void $\ast$ {\em p\-Arg})}\hfill} -\label{mainClient_8cpp_21ef7438e7f0ed24a190513fb8e6af8a} - - -Definition of the data callback which simply prints out the number of points received and teh frame number - -Definition at line 19 of file main\-Client.cpp. - -References detector\-Data::npoints, and detector\-Data::npy. - -Referenced by main().\hypertarget{mainClient_8cpp_0ddf1224851353fc92bfbff6f499fa97}{ -\index{mainClient.cpp@{main\-Client.cpp}!main@{main}} -\index{main@{main}!mainClient.cpp@{main\-Client.cpp}} -\paragraph[main]{\setlength{\rightskip}{0pt plus 5cm}int main (int {\em argc}, char $\ast$ {\em argv}\mbox{[}$\,$\mbox{]})}\hfill} -\label{mainClient_8cpp_0ddf1224851353fc92bfbff6f499fa97} - - -example of a main program using the \hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} class - -if specified, argv\mbox{[}2\mbox{]} is used as detector ID (default is 0) - -\hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} is instantiated - -if specified, argv\mbox{[}1\mbox{]} is used as detector config file (necessary at least the first time it is called to properly configure advanced settings in the shared memory) - -Setting the detector online (should be by default - -Load setup file if argv\mbox{[}2\mbox{]} specified - -defining the detector size - -registering data callback - -checking detector status and exiting if not idle - -checking and setting detector settings - -Settings exposure time to 10ms - -Settings exposure time to 100ms - -Settingsnumber of frames to 30 - -start measurement - -returning when acquisition is finished or data are avilable - -Definition at line 26 of file main\-Client.cpp. - -References data\-Callback(), sls\-Detector\-Users::get\-Command(), sls\-Detector\-Users::get\-Detector\-Developer(), sls\-Detector\-Users::get\-Detector\-Settings(), sls\-Detector\-Users::get\-Detector\-Size(), sls\-Detector\-Users::get\-Detector\-Status(), sls\-Detector\-Users::read\-Configuration\-File(), sls\-Detector\-Users::register\-Data\-Callback(), sls\-Detector\-Users::retrieve\-Detector\-Setup(), sls\-Detector\-Users::run\-Status\-Type(), sls\-Detector\-Users::set\-Detector\-Size(), sls\-Detector\-Users::set\-Exposure\-Period(), sls\-Detector\-Users::set\-Exposure\-Time(), sls\-Detector\-Users::set\-Number\-Of\-Frames(), sls\-Detector\-Users::set\-Online(), sls\-Detector\-Users::set\-Settings(), and sls\-Detector\-Users::start\-Measurement(). \ No newline at end of file diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/mainReceiver_8cpp.tex b/manual/manual-api/slsDetectorUsersDocs/latex/mainReceiver_8cpp.tex deleted file mode 100644 index eaa4d25fe..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/mainReceiver_8cpp.tex +++ /dev/null @@ -1,35 +0,0 @@ -\hypertarget{mainReceiver_8cpp}{ -\subsection{main\-Receiver.cpp File Reference} -\label{mainReceiver_8cpp}\index{mainReceiver.cpp@{mainReceiver.cpp}} -} -{\tt \#include \char`\"{}sls\-Receiver\-Users.h\char`\"{}}\par -{\tt \#include $<$iostream$>$}\par -\subsubsection*{Functions} -\begin{CompactItemize} -\item -int \hyperlink{mainReceiver_8cpp_0ddf1224851353fc92bfbff6f499fa97}{main} (int argc, char $\ast$argv\mbox{[}$\,$\mbox{]}) -\end{CompactItemize} - - -\subsubsection{Detailed Description} -This file is an example of how to implement the \hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} class You can compile it linking it to the sls\-Detector library - -gcc \hyperlink{mainReceiver_8cpp}{main\-Receiver.cpp} -L lib -l Sls\-Detector -lm -lpthread - -where lib is the location of lib\-Sls\-Detector.so - -Definition in file \hyperlink{mainReceiver_8cpp-source}{main\-Receiver.cpp}. - -\subsubsection{Function Documentation} -\hypertarget{mainReceiver_8cpp_0ddf1224851353fc92bfbff6f499fa97}{ -\index{mainReceiver.cpp@{main\-Receiver.cpp}!main@{main}} -\index{main@{main}!mainReceiver.cpp@{main\-Receiver.cpp}} -\paragraph[main]{\setlength{\rightskip}{0pt plus 5cm}int main (int {\em argc}, char $\ast$ {\em argv}\mbox{[}$\,$\mbox{]})}\hfill} -\label{mainReceiver_8cpp_0ddf1224851353fc92bfbff6f499fa97} - - - - -Definition at line 25 of file main\-Receiver.cpp. - -References sls\-Receiver\-Users::start(), and sls\-Receiver\-Users::stop(). \ No newline at end of file diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/namespaces.tex b/manual/manual-api/slsDetectorUsersDocs/latex/namespaces.tex deleted file mode 100644 index 544431d63..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/namespaces.tex +++ /dev/null @@ -1,4 +0,0 @@ -\subsection{Namespace List} -Here is a list of all namespaces with brief descriptions:\begin{CompactList} -\item\contentsline{section}{\hyperlink{namespacestd}{std} }{\pageref{namespacestd}}{} -\end{CompactList} diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/namespacestd.tex b/manual/manual-api/slsDetectorUsersDocs/latex/namespacestd.tex deleted file mode 100644 index b2aebea09..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/namespacestd.tex +++ /dev/null @@ -1,6 +0,0 @@ -\hypertarget{namespacestd}{ -\subsection{std Namespace Reference} -\label{namespacestd}\index{std@{std}} -} - - diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/refman.tex b/manual/manual-api/slsDetectorUsersDocs/latex/refman.tex deleted file mode 100644 index 00d0b65dd..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/refman.tex +++ /dev/null @@ -1,57 +0,0 @@ -\documentclass[a4paper]{article} -\usepackage{makeidx} -\usepackage{fancyhdr} -\usepackage{graphicx} -\usepackage{multicol} -\usepackage{float} -\usepackage{textcomp} -\usepackage{alltt} -\usepackage{times} -\ifx\pdfoutput\undefined -\usepackage[ps2pdf, - pagebackref=true, - colorlinks=true, - linkcolor=blue - ]{hyperref} -\usepackage{pspicture} -\else -\usepackage[pdftex, - pagebackref=true, - colorlinks=true, - linkcolor=blue - ]{hyperref} -\fi -\usepackage{doxygen} -\makeindex -\setcounter{tocdepth}{1} -\renewcommand{\footrulewidth}{0.4pt} -\begin{document} -\begin{titlepage} -\vspace*{7cm} -\begin{center} -{\Large Reference Manual}\\ -\vspace*{1cm} -{\large Generated by Doxygen 1.4.7}\\ -\vspace*{0.5cm} -{\small Mon May 26 17:07:05 2014}\\ -\end{center} -\end{titlepage} -\pagenumbering{roman} -\tableofcontents -\pagenumbering{arabic} -\section{Main Page} -\label{index}\hypertarget{index}{}\input{index} -\section{Namespace Documentation} -\input{namespacestd} -\section{Class Documentation} -\input{classdetectorData} -\input{classslsDetectorUsers} -\input{classslsReceiverUsers} -\section{File Documentation} -\input{detectorData_8h} -\input{mainClient_8cpp} -\input{mainReceiver_8cpp} -\input{slsDetectorUsers_8h} -\input{slsReceiverUsers_8h} -\printindex -\end{document} diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/slsDetectorUsers_8h.tex b/manual/manual-api/slsDetectorUsersDocs/latex/slsDetectorUsers_8h.tex deleted file mode 100644 index 425f389ea..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/slsDetectorUsers_8h.tex +++ /dev/null @@ -1,16 +0,0 @@ -\hypertarget{slsDetectorUsers_8h}{ -\subsection{sls\-Detector\-Users.h File Reference} -\label{slsDetectorUsers_8h}\index{slsDetectorUsers.h@{slsDetectorUsers.h}} -} -{\tt \#include $<$stdint.h$>$}\par -{\tt \#include $<$string$>$}\par -\subsubsection*{Namespaces} -\begin{CompactItemize} -\item -namespace \hyperlink{namespacestd}{std} -\end{CompactItemize} -\subsubsection*{Classes} -\begin{CompactItemize} -\item -class \hyperlink{classslsDetectorUsers}{sls\-Detector\-Users} -\begin{CompactList}\small\item\em Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc. \item\end{CompactList}\end{CompactItemize} diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/slsReceiverUsers_8h.tex b/manual/manual-api/slsDetectorUsersDocs/latex/slsReceiverUsers_8h.tex deleted file mode 100644 index 90aa9d640..000000000 --- a/manual/manual-api/slsDetectorUsersDocs/latex/slsReceiverUsers_8h.tex +++ /dev/null @@ -1,11 +0,0 @@ -\hypertarget{slsReceiverUsers_8h}{ -\subsection{sls\-Receiver\-Users.h File Reference} -\label{slsReceiverUsers_8h}\index{slsReceiverUsers.h@{slsReceiverUsers.h}} -} -{\tt \#include $<$stdio.h$>$}\par -{\tt \#include $<$stdint.h$>$}\par -\subsubsection*{Classes} -\begin{CompactItemize} -\item -class \hyperlink{classslsReceiverUsers}{sls\-Receiver\-Users} -\begin{CompactList}\small\item\em Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data. \item\end{CompactList}\end{CompactItemize} diff --git a/manual/manual-api/slsReceiverUsers.h b/manual/manual-api/slsReceiverUsers.h index cf4ce4272..c8727f200 120000 --- a/manual/manual-api/slsReceiverUsers.h +++ b/manual/manual-api/slsReceiverUsers.h @@ -1 +1 @@ -../../slsReceiverSoftware/slsReceiver/slsReceiverUsers.h \ No newline at end of file +../../slsReceiverSoftware/include/slsReceiverUsers.h \ No newline at end of file diff --git a/manual/manual-api/sls_receiver_defs.h b/manual/manual-api/sls_receiver_defs.h new file mode 120000 index 000000000..1de31caf5 --- /dev/null +++ b/manual/manual-api/sls_receiver_defs.h @@ -0,0 +1 @@ +../../slsReceiverSoftware/include/sls_receiver_defs.h \ No newline at end of file diff --git a/manual/manual-api/sls_receiver_funcs.h b/manual/manual-api/sls_receiver_funcs.h new file mode 120000 index 000000000..c2ea4ded9 --- /dev/null +++ b/manual/manual-api/sls_receiver_funcs.h @@ -0,0 +1 @@ +../../slsReceiverSoftware/include/sls_receiver_funcs.h \ No newline at end of file diff --git a/manual/manual-calwiz/Makefile b/manual/manual-calwiz/Makefile index be7fdbf81..a87bb2b3a 100644 --- a/manual/manual-calwiz/Makefile +++ b/manual/manual-calwiz/Makefile @@ -1,4 +1,4 @@ -DESTDIR?=../ +DESTDIR?=../docs #manual-api manual-calwiz manual-client manual-gui manual-main @@ -12,26 +12,28 @@ TEXS=ancCal.tex enCal.tex installation.tex DVIS = $(MAINTEXS:.tex=.dvi) PSS = $(MAINTEXS:.tex=.ps) PDFS = $(MAINTEXS:.tex=.pdf) - HTMLS = $(MAINTEXS:%.tex=%) -#destdir?!?!? - -all: $(PDFS) $(HTMLS) +all: pdf html echo $(PWD) echo $(PDFS) echo $(HTMLS) -pdf: $(PDFS) +pdf: $(PDFS) + $(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR)) + $(shell test -d $(DESTDIR)/pdf || mkdir -p $(DESTDIR)/pdf) + mv $(PDFS) $(DESTDIR)/pdf html: $(HTMLS) $(HTMLS): $(TEXS) $(MAINTEXS) + $(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR)) + $(shell test -d $(DESTDIR)/html || mkdir -p $(DESTDIR)/html) + $(shell test -d $(DESTDIR)/html/$@ && rm -r $(DESTDIR)/html/$@) latex $@.tex latex2html -split 4 $@.tex - $(shell test -d $(DESTDIR)/html || mkdir -p $(DESTDIR)/html) mv $@ $(DESTDIR)/html %.dvi : %.tex $(TEXS) @@ -48,3 +50,7 @@ $(HTMLS): $(TEXS) $(MAINTEXS) clean: rm -rf *.aux *.log *.toc *.out $(DVIS) $(PSS) $(PDFS) $(HTMLS) + rm -rf $(DESTDIR)/html/angularCalibrationHowTo + rm -rf $(DESTDIR)/html/energyCalibrationHowTo + rm -rf $(DESTDIR)/pdf/angularCalibrationHowTo.pdf + rm -rf $(DESTDIR)/pdf/energyCalibrationHowTo.pdf diff --git a/manual/manual-client/Makefile b/manual/manual-client/Makefile index 1eb5dd1d5..897a181f1 100644 --- a/manual/manual-client/Makefile +++ b/manual/manual-client/Makefile @@ -1,6 +1,5 @@ DESTDIR?=../docs - #manual-api manual-calwiz manual-client manual-gui manual-main @@ -11,34 +10,50 @@ MAINTEXS= slsDetectorClientHowTo.tex DVIS = $(MAINTEXS:.tex=.dvi) PSS = $(MAINTEXS:.tex=.ps) PDFS = $(MAINTEXS:.tex=.pdf) - -#TARGETS=$(join $(DESTDIR)/, $(notdir $(MAINTEXS:.tex=.pdf))) - -#destdir?!?!? - - - -DVIS = $(MAINTEXS:.tex=.dvi) -PSS = $(MAINTEXS:.tex=.ps) -PDFS = $(MAINTEXS:.tex=.pdf) - HTMLS = $(MAINTEXS:%.tex=%) -#destdir?!?!? - -all: $(PDFS) $(HTMLS) +all: docs pdf html echo $(PWD) echo $(PDFS) echo $(HTMLS) + +docs: createdocs docspdf docshtml removedocs + +createdocs: slsDetectorClient.doxy slsDetectorCommand.cpp + doxygen slsDetectorClient.doxy + +docspdf: + cd slsDetectorClientDocs/latex && make + $(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR)) + $(shell test -d $(DESTDIR)/pdf || mkdir -p $(DESTDIR)/pdf) + mv slsDetectorClientDocs/latex/refman.pdf $(DESTDIR)/pdf/slsDetectorClientDocs.pdf + +docshtml: + $(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR)) + $(shell test -d $(DESTDIR)/html || mkdir -p $(DESTDIR)/html) + $(shell test -d $(DESTDIR)/html/slsDetectorClientDocs && rm -r $(DESTDIR)/html/slsDetectorClientDocs) + mv slsDetectorClientDocs/html $(DESTDIR)/html/slsDetectorClientDocs + +removedocs: + rm -rf slsDetectorClientDocs; pdf: $(PDFS) + $(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR)) + $(shell test -d $(DESTDIR)/pdf || mkdir -p $(DESTDIR)/pdf) + mv $(PDFS) $(DESTDIR)/pdf + html: $(HTMLS) $(HTMLS): $(MAINTEXS) + $(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR)) + $(shell test -d $(DESTDIR)/html || mkdir -p $(DESTDIR)/html) + $(shell test -d $(DESTDIR)/html/$@ && rm -r $(DESTDIR)/html/$@) latex $@.tex latex2html -split 4 $@.tex + mv $@ $(DESTDIR)/html + %.dvi : %.tex @@ -54,4 +69,10 @@ $(HTMLS): $(MAINTEXS) clean: + echo "cleaning for manual-client" rm -rf *.aux *.log *.toc *.out $(DVIS) $(PSS) $(PDFS) $(HTMLS) + rm -rf slsDetectorClientDocs + rm -rf $(DESTDIR)/html/slsDetectorClientDocs + rm -rf $(DESTDIR)/html/slsDetectorClientHowTo + rm -rf $(DESTDIR)/pdf/slsDetectorClientDocs.pdf + rm -rf $(DESTDIR)/pdf/slsDetectorClientHowTo.pdf diff --git a/manual/manual-api/doxy.config b/manual/manual-client/slsDetectorClient.doxy similarity index 70% rename from manual/manual-api/doxy.config rename to manual/manual-client/slsDetectorClient.doxy index f2ee6d752..d16f0c967 100644 --- a/manual/manual-api/doxy.config +++ b/manual/manual-client/slsDetectorClient.doxy @@ -78,9 +78,9 @@ USE_PDFLATEX = YES LATEX_HIDE_INDICES = YES + PREDEFINED = __cplusplus -INPUT = slsDetector/slsDetectorUsers.h slsDetector/slsDetectorBase.h commonFiles/sls_detector_defs.h slsDetector/slsDetector.h MySocketTCP/MySocketTCP.h usersFunctions/usersFunctions.h multiSlsDetector/multiSlsDetector.h commonFiles/sls_detector_defs.h slsDetector/slsDetectorUtils.h slsDetector/slsDetectorBase.h slsDetector/slsDetectorCommand.h slsDetector/slsDetectorActions.h multiSlsDetector/multiSlsDetector.h slsDetectorAnalysis/detectorData.h slsDetectorAnalysis/energyConversion.h slsDetectorAnalysis/postProcessing.h slsDetectorAnalysis/angularConversion.h slsDetectorAnalysis/fileIO.h multiSlsDetector/multiSlsDetectorClient.h multiSlsDetector/multiSlsDetectorCommand.h slsDetectorAnalysis/angularConversionStatic.h slsDetectorAnalysis/angleConversionConstant.h slsDetectorAnalysis/enCalLogClass.h slsDetectorAnalysis/angCalLogClass.h slsDetectorAnalysis/badChannelCorrections.h slsDetectorAnalysis/fileIOStatic.h slsReceiverInterface/receiverInterface.h slsReceiver/slsReceiver_funcs.h slsReceiver/slsReceiverFunctionList.h slsReceiver/receiver_defs.h - -OUTPUT_DIRECTORY = docs +INPUT = slsDetectorCommand.cpp +OUTPUT_DIRECTORY = slsDetectorClientDocs diff --git a/manual/manual-client/slsDetectorCommand.cpp b/manual/manual-client/slsDetectorCommand.cpp new file mode 120000 index 000000000..5f8f1dfb5 --- /dev/null +++ b/manual/manual-client/slsDetectorCommand.cpp @@ -0,0 +1 @@ +../../slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp \ No newline at end of file diff --git a/manual/manual-gui/Makefile b/manual/manual-gui/Makefile index e6834bd06..8ff7e1457 100644 --- a/manual/manual-gui/Makefile +++ b/manual/manual-gui/Makefile @@ -8,40 +8,32 @@ TEX=latex MAINTEXS= slsDetectorGuiHowTo.tex -#TEXS= DVIS = $(MAINTEXS:.tex=.dvi) PSS = $(MAINTEXS:.tex=.ps) PDFS = $(MAINTEXS:.tex=.pdf) - -#TARGETS=$(join $(DESTDIR)/, $(notdir $(MAINTEXS:.tex=.pdf))) - -#destdir?!?!? - - - -DVIS = $(MAINTEXS:.tex=.dvi) -PSS = $(MAINTEXS:.tex=.ps) -PDFS = $(MAINTEXS:.tex=.pdf) - HTMLS = $(MAINTEXS:%.tex=%) -#destdir?!?!? - -all: $(PDFS) $(HTMLS) +all: pdf html echo $(PWD) echo $(PDFS) echo $(HTMLS) pdf: $(PDFS) + $(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR)) + $(shell test -d $(DESTDIR)/pdf || mkdir -p $(DESTDIR)/pdf) + mv $(PDFS) $(DESTDIR)/pdf html: $(HTMLS) -$(HTMLS): $(TEXS) $(MAINTEXS) +$(HTMLS): $(MAINTEXS) + $(shell test -d $(DESTDIR) || mkdir -p $(DESTDIR)) + $(shell test -d $(DESTDIR)/html || mkdir -p $(DESTDIR)/html) + $(shell test -d $(DESTDIR)/html/$@ && rm -r $(DESTDIR)/html/$@) latex $@.tex latex2html -split 4 $@.tex - + mv $@ $(DESTDIR)/html %.dvi : %.tex $(TEXS) latex $< @@ -57,3 +49,5 @@ $(HTMLS): $(TEXS) $(MAINTEXS) clean: rm -rf *.aux *.log *.toc *.out $(DVIS) $(PSS) $(PDFS) $(HTMLS) + rm -rf $(DESTDIR)/html/slsDetectorGuiHowTo + rm -rf $(DESTDIR)/pdf/slsDetectorGuiHowTo.pdf diff --git a/manual/manual-main/Makefile b/manual/manual-main/Makefile index 1725dc6cf..5e19a02ea 100644 --- a/manual/manual-main/Makefile +++ b/manual/manual-main/Makefile @@ -1,4 +1,4 @@ -DESTDIR=../ +DESTDIR=../docs TEX=latex @@ -11,13 +11,11 @@ TEXS=slsDetector-softFAQ.tex singlePhotonCounting-FAQ.tex angConv-FAQ.tex genera DVIS = $(MAINTEXS:.tex=.dvi) PSS = $(MAINTEXS:.tex=.ps) PDFS = $(MAINTEXS:.tex=.pdf) - HTMLS = $(MAINTEXS:%.tex=%) -#destdir?!?!? -all: $(PDFS) $(HTMLS) +all: pdf html echo $(PWD) echo $(PDFS) echo $(HTMLS) @@ -53,3 +51,7 @@ $(HTMLS): $(TEXS) $(MAINTEXS) clean: rm -rf *.aux *.log *.toc *.out $(DVIS) $(PSS) $(PDFS) $(HTMLS) + rm -rf $(DESTDIR)/html/slsDetectors-FAQ + rm -rf $(DESTDIR)/html/slsDetectorInstall + rm -rf $(DESTDIR)/pdf/slsDetectors-FAQ.pdf + rm -rf $(DESTDIR)/pdf/slsDetectorInstall.pdf diff --git a/manual/slsDetectorClientDocs/latex/Makefile b/manual/slsDetectorClientDocs/latex/Makefile deleted file mode 100644 index 8b7c89a1b..000000000 --- a/manual/slsDetectorClientDocs/latex/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -all: clean refman.pdf - -pdf: refman.pdf - -refman.pdf: refman.tex - pdflatex refman.tex - makeindex refman.idx - pdflatex refman.tex - latex_count=5 ; \ - while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ - do \ - echo "Rerunning latex...." ;\ - pdflatex refman.tex ;\ - latex_count=`expr $$latex_count - 1` ;\ - done - - -clean: - rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/manual/slsDetectorClientDocs/latex/acquisition.tex b/manual/slsDetectorClientDocs/latex/acquisition.tex deleted file mode 100644 index afc5b0bf6..000000000 --- a/manual/slsDetectorClientDocs/latex/acquisition.tex +++ /dev/null @@ -1,41 +0,0 @@ -Commands to control the acquisition - - -\begin{DoxyItemize} -\item {\bfseries acquire} blocking acquisition (like calling sls\_\-detector\_\-acquire). Starts receiver and detector, writes and processes the data, stops detector. Only get! {\ttfamily Returns} (string){\ttfamily \char`\"{}acquire unsuccessful\char`\"{}} if fails, else \char`\"{}\char`\"{} for MYTHEN, {\ttfamily \char`\"{}Acquired (int)\char`\"{}} for others, where int is number of frames caught. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries busy} returns {\ttfamily 1} if the acquisition is active, {\ttfamily 0} otherwise. Works when the acquisition is started in blocking mode. Only get! {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries status \mbox{[}s\mbox{]} } starts or stops acquisition in detector in non blocking mode. {\ttfamily s:} \mbox{[}{\ttfamily start}, {\ttfamily stop}\mbox{]}. {\ttfamily Returns} the detector status: \mbox{[}{\ttfamily running}, {\ttfamily error}, {\ttfamily transmitting}, {\ttfamily finished}, {\ttfamily waiting}, {\ttfamily idle}\mbox{]}. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries data} gets all data from the detector (if any) processes them and writes them to file according to the preferences already setup (MYTHEN only). Only get! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries frame} gets a single frame from the detector (if any) processes it and writes it to file according to the preferences already setup (MYTHEN only). Only get! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries readctr } Reads the counters from the detector memory (analog detector returning values translated into number of photons -\/ only GOTTHARD). Cannot put. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries resetctr i } Resets counter in detector, restarts acquisition if i=1(analog detector returning values translated into number of photons -\/ only GOTTHARD). Cannot put. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries resmat i } sets/resets counter bit in detector.gets the counter bit in detector ???? -\end{DoxyItemize} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/actions.tex b/manual/slsDetectorClientDocs/latex/actions.tex deleted file mode 100644 index 2caa97cf4..000000000 --- a/manual/slsDetectorClientDocs/latex/actions.tex +++ /dev/null @@ -1,126 +0,0 @@ -Commands to define scripts to be executed during the acquisition flow - - -\begin{DoxyItemize} -\item {\bfseries positions \mbox{[}n \mbox{[}p0..pn-\/1\mbox{]}\mbox{]}} sets/gets number of angular position and positions to be acquired.. {\ttfamily Returns} {\ttfamily }(int int..) n \mbox{[}p0..pn-\/1\mbox{]} -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries startscript \mbox{[}s\mbox{]}} sets/gets the script to be executed at the beginning of the acquisition. {\ttfamily none} unsets. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries startscriptpar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the startscript. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries stopscript \mbox{[}s\mbox{]}} sets/gets the script to be executed at the end of the acquisition. {\ttfamily none} unsets. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries stopscriptpar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the stopscript. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scriptbefore \mbox{[}s\mbox{]}} sets/gets the script to be executed before starting the detector every time in the acquisition. {\ttfamily none} unsets. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scriptbeforepar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the scriptbefore. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scriptafter \mbox{[}s\mbox{]}} sets/gets the script to be executed after the detector has finished every time in the acquisition. {\ttfamily none} unsets. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scriptafterpar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the scriptafter. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries headerafter \mbox{[}s\mbox{]}} sets/gets the script to be executed for logging the detector parameters. {\ttfamily none} unsets. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries headerbefore \mbox{[}s\mbox{]}} sets/gets the script to be executed for logging the detector parameters. {\ttfamily none} unsets. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries headerbeforepar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the headerbefore script. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries headerafterpar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the headerafter script. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries enacallog \mbox{[}i\mbox{]}} enables/disables logging of the parameters necessary for the energy calibration. 1 sets, 0 unsets. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries angcallog \mbox{[}i\mbox{]}} enables/disables logging of the parameters necessary for the angular calibration. 1 sets, 0 unsets. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scan0script \mbox{[}s\mbox{]}} sets/gets the script to be executed for the scan 0 level. {\ttfamily none} unsets. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scan0par \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the scan0script -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scan0prec \mbox{[}i\mbox{]}} sets/gets number of digits to be used for the scan0 variable in the file name. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scan0steps \mbox{[}i \mbox{[}s0..sn-\/1\mbox{]}\mbox{]}} sets/gets number of steps (int) of the scan0 level and their values (float). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scan0range \mbox{[}smin smax sstep\mbox{]}} sets scan0 min, max and step, returns the number of steps and their values as scan0steps. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scan1script \mbox{[}s\mbox{]}} sets/gets the script to be executed for the scan1 level. {\ttfamily none} unsets. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scan1par \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the scan1script -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scan1prec \mbox{[}i\mbox{]}} sets/gets number of digits to be used for the scan1 variable in the file name. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scan1steps \mbox{[}i \mbox{[}s0..sn-\/1\mbox{]}\mbox{]}} sets/gets number of steps (int) of the scan1 level and their values (float). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries scan1range \mbox{[}smin smax sstep\mbox{]}} sets scan1 min, max and step, returns the number of steps and their values as scan1steps. -\end{DoxyItemize} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/advanced.tex b/manual/slsDetectorClientDocs/latex/advanced.tex deleted file mode 100644 index 72d2fa6d2..000000000 --- a/manual/slsDetectorClientDocs/latex/advanced.tex +++ /dev/null @@ -1 +0,0 @@ -This page is for advanced users. Make sure you have first read the introduction. \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/config.tex b/manual/slsDetectorClientDocs/latex/config.tex deleted file mode 100644 index 06fc8d993..000000000 --- a/manual/slsDetectorClientDocs/latex/config.tex +++ /dev/null @@ -1,290 +0,0 @@ -Commands to configure the detector. these commands are often left to the configuration file. -\begin{DoxyItemize} -\item \hyperlink{config_configstructure}{Data Structure}: commands to configure detector data structure -\item \hyperlink{config_configstatus}{Status}: commands to configure detector status -\item \hyperlink{config_configsize}{Data Size}: commands to configure detector data size -\item \hyperlink{config_configflags}{Flags}: commands to configure detector flags -\item \hyperlink{config_configchip}{Chip}: commands to configure chip of the detector -\item \hyperlink{config_configversions}{Versions}: commands to check version of each subsytem -\item \hyperlink{config_configspeed}{Speed}: commands to configure speed of detector -\item \hyperlink{config_configsettings}{Detector Parameters}: commands to configure/retrieve configuration of detector -\end{DoxyItemize}\hypertarget{config_configstructure}{}\subsection{Data Structure}\label{config_configstructure} -commands to configure detector data structure - - -\begin{DoxyItemize} -\item {\bfseries datastream }enables/disables the 0MQ data stream (0MQ threads created) from receiver to client. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries free} Free shared memory on the control PC -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries add} Adds a detector at the end of the multi-\/detector structure. {\ttfamily put} argument is the hostname or IP adress. Returns the chained list of detector hostnames. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries remove i} Removes controller {\ttfamily i} from the multi-\/detector structure. Can be used for partial readout of the detector. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries type} Sets/gets detector type. {\ttfamily Returns} {\ttfamily }(string). Normally not used. Using hostname is enough. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries hostname} {\ttfamily put} adds the hostname (ot IP adress) at the end of the multi-\/detector structure. If used for a single controlled (i:) replaces the current hostname. Returns the list of the hostnames of the multi-\/detector structure. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries id\mbox{[}:i\mbox{]}} Returns the id of the detector structure. i is the detector position in a multi detector system. If used a {\ttfamily put}, configures the id of the detector structure. i is the detector position in a multi detector system and l is the id of the detector to be added. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries master i} {\ttfamily put} sets the position of the master of the acquisition (-\/1 if none). Returns the position of the master of the detector structure (-\/1 if none). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries sync} Sets/gets the synchronization mode of the detectors in the multi-\/detector structure. Can be: {\ttfamily none}, {\ttfamily gating}, {\ttfamily trigger}, {\ttfamily complementary}. Mainly used by MYTHEN/GOTTHARD. -\end{DoxyItemize}\hypertarget{config_configstatus}{}\subsection{Status}\label{config_configstatus} -commands to configure detector status - - -\begin{DoxyItemize} -\item {\bfseries online \mbox{[}i\mbox{]}} sets the detector in online (1) or offline (0) mode. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries checkonline} returns the hostnames of all detectors without connecting to them. {\ttfamily Returns} (string) \char`\"{}All online\char`\"{} or \char`\"{}\mbox{[}list of offline hostnames\mbox{]} : Not online\char`\"{}. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries activate} Activates/Deactivates the detector. Deactivated detector does not send data. Used for EIGER only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize}\hypertarget{config_configsize}{}\subsection{Data Size}\label{config_configsize} -commands to configure detector data size - - -\begin{DoxyItemize} -\item {\bfseries nmod \mbox{[}i\mbox{]}} sets/gets the number of modules of the detector. Used for MYTHEN only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries maxmod } Gets the maximum number of modules of the detector. Used for MYTHEN only. Cannot put! {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries dr \mbox{[}i\mbox{]}} sets/gets the dynamic range of detector. Mythen \mbox{[}4,8,16,24\mbox{]}. Eiger \mbox{[}4,8,16,32\mbox{]}. Others cannot put! {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries roi \mbox{[}i\mbox{]} \mbox{[}xmin\mbox{]} \mbox{[}xmax\mbox{]} \mbox{[}ymin\mbox{]} \mbox{[}ymax\mbox{]} } sets region of interest of the detector, where i is number of rois;i=0 to clear rois. Used for GOTTHARD only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries detsizechan \mbox{[}xmax\mbox{]} \mbox{[}ymax\mbox{]}} sets the maximum number of channels in each dimension for complete detector set; -\/1 is no limit. Use for multi-\/detector system as first command in config file. {\ttfamily Returns} {\ttfamily }(\char`\"{}int int\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries roimask \mbox{[}i\mbox{]}} ?? {\ttfamily Returns} {\ttfamily }(int) in hexadecimal -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries flippeddatax \mbox{[}i\mbox{]}} enables/disables data being flipped across x axis. 1 enables, 0 disables. Used for EIGER only. 1 for bottom half-\/module, 0 for top-\/half module. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries tengiga \mbox{[}i\mbox{]}} enables/disables 10GbE in system (detector \& receiver). 1 enabled 10GbE, 0 enables 1GbE. Used in EIGER only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize}\hypertarget{config_configflags}{}\subsection{Flags}\label{config_configflags} -commands to configure detector flags - - -\begin{DoxyItemize} -\item {\bfseries flags \mbox{[}flag\mbox{]}} sets/gets the readout flags to mode. Options: none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog\_\-digital, unknown. Used for MYTHEN and EIGER only. {\ttfamily Returns} {\ttfamily }(string). put takes one string and {\ttfamily returns} concatenation of all active flags separated by spaces. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries extsig:\mbox{[}i\mbox{]} \mbox{[}flag\mbox{]}} sets/gets the mode of the external signal i. Options: {\ttfamily off}, {\ttfamily gate\_\-in\_\-active\_\-high}, {\ttfamily gate\_\-in\_\-active\_\-low}, {\ttfamily trigger\_\-in\_\-rising\_\-edge}, {\ttfamily trigger\_\-in\_\-falling\_\-edge}, {\ttfamily ro\_\-trigger\_\-in\_\-rising\_\-edge}, {\ttfamily ro\_\-trigger\_\-in\_\-falling\_\-edge}, {\ttfamily gate\_\-out\_\-active\_\-high}, {\ttfamily gate\_\-out\_\-active\_\-low}, {\ttfamily trigger\_\-out\_\-rising\_\-edge}, {\ttfamily trigger\_\-out\_\-falling\_\-edge}, {\ttfamily ro\_\-trigger\_\-out\_\-rising\_\-edge}, {\ttfamily ro\_\-trigger\_\-out\_\-falling\_\-edge}. \par - Used in MYTHEN, GOTTHARD, PROPIX only. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries programfpga \mbox{[}file\mbox{]}} programs the FPGA with file f (with .pof extension). Used for JUNGFRAU, MOENCH only. Only put! {\ttfamily Returns} {\ttfamily }(\char`\"{}successful\char`\"{}, \char`\"{}unsuccessful\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries resetfpga \mbox{[}f\mbox{]}} resets FPGA, where f can be any value. Used for JUNGFRAU only. Only put! {\ttfamily Returns} {\ttfamily }(\char`\"{}successful\char`\"{}, \char`\"{}unsuccessful\char`\"{}) -\end{DoxyItemize}\hypertarget{config_configchip}{}\subsection{Chip}\label{config_configchip} -commands to configure chip of the detector - - -\begin{DoxyItemize} -\item {\bfseries powerchip \mbox{[}i\mbox{]}} Powers on/off the chip. 1 powers on, 0 powers off. Can also get the power status. Used for JUNGFRAU only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries led \mbox{[}i\mbox{]}} sets/gets the led status. 1 on, 0 off. Used for MOENCH only ?? {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries pulse \mbox{[}n\mbox{]} \mbox{[}x\mbox{]} \mbox{[}y\mbox{]}} pulses pixel at coordinates (x,y) n number of times. Used in EIGER only. Only put! {\ttfamily Returns} {\ttfamily }(\char`\"{}successful\char`\"{}, \char`\"{}unsuccessful\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries pulsenmove \mbox{[}n\mbox{]} \mbox{[}x\mbox{]} \mbox{[}y\mbox{]}} pulses pixel n number of times and moves relatively by x value (x axis) and y value(y axis). Used in EIGER only. Only put! {\ttfamily Returns} {\ttfamily }(\char`\"{}successful\char`\"{}, \char`\"{}unsuccessful\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries pulsechip \mbox{[}n\mbox{]}}pulses chip n number of times, while n=-\/1 will reset it to normal mode. Used in EIGER only. Only put! {\ttfamily Returns} {\ttfamily }(\char`\"{}successful\char`\"{}, \char`\"{}unsuccessful\char`\"{}) -\end{DoxyItemize}\hypertarget{config_configversions}{}\subsection{Versions}\label{config_configversions} -Commands to check versions of each subsystem - - -\begin{DoxyItemize} -\item {\bfseries moduleversion:\mbox{[}i\mbox{]}} Gets the firmware version of module i. Used for MYTHEN only. Only get! {\ttfamily Returns} {\ttfamily }(long int) in hexadecimal or \char`\"{}undefined module number\char`\"{} -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries detectornumber} Gets the serial number or MAC of detector. Only get! {\ttfamily Returns} {\ttfamily }(long int) in hexadecimal -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries modulenumber:\mbox{[}i\mbox{]}} Gets the serial number of module i. Used for MYTHEN only. Only get! {\ttfamily Returns} {\ttfamily }(long int) in hexadecimal or \char`\"{}undefined module number\char`\"{} -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries detectorversion} Gets the firmware version of detector. Only get! {\ttfamily Returns} {\ttfamily }(long int) in hexadecimal -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries softwareversion} Gets the software version of detector server. Only get! {\ttfamily Returns} {\ttfamily }(long int) in hexadecimal -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries thisversion} Gets the software version of this client software. Only get! {\ttfamily Returns} {\ttfamily }(long int) in hexadecimal -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries receiverversion} Gets the software version of receiver. Only get! {\ttfamily Returns} {\ttfamily }(long int) in hexadecimal -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries framesl} gets number of frames left. Used in MYTHEN, GOTTHARD only. Only get! {\ttfamily Returns} {\ttfamily }(double with 9 decimal digits) -\end{DoxyItemize}\hypertarget{config_configspeed}{}\subsection{Speed}\label{config_configspeed} -commands to configure speed of detector - - -\begin{DoxyItemize} -\item {\bfseries clkdivider \mbox{[}i\mbox{]}} sets/gets the readout clock divider. EIGER, JUNGFRAU \mbox{[}0(fast speed), 1(half speed), 2(quarter speed)\mbox{]}. MYTHEN\mbox{[}???\mbox{]}. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries setlength \mbox{[}i\mbox{]}} sets/gets length of set/reset signals (in clock cycles). Used in MYTHEN only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries waitstates \mbox{[}i\mbox{]}} sets/gets waitstates of the bus interface (in clock cycles). Used in MYTHEN only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries totdivider \mbox{[}i\mbox{]}} sets/gets clock divider in tot mode. Used in MYTHEN only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries totdutycycle \mbox{[}i\mbox{]}} sets/gets duty cycle of the tot clock. Used in MYTHEN only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries phasestep \mbox{[}i\mbox{]}} Only put for gotthard. Moves the phase of the ADC clock.{\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries oversampling \mbox{[}i\mbox{]}} Sets/gets the number of adcsamples per clock. For the new chiptestboard.{\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries adcclk \mbox{[}i\mbox{]}} sets/gets the ADC clock frequency in MHz. For the new chiptestboard!{\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries adcphase \mbox{[}i\mbox{]}} Sets/gets the ADC clock frequency in MHz. For the new chiptestboard!{\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries adcpipeline \mbox{[}i\mbox{]}} Sets/gets the pipeline of the ADC. For the new chiptestbaord!{\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries dbitclk \mbox{[}i\mbox{]}} Sets/gets the clock frequency of the latching of the digital bits in MHz. For the new chiptestboard!{\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries dbitphase \mbox{[}i\mbox{]}} Sets/gets the phase of the clock for latching of the digital bits. For the new chiptestboard!?{\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries dbitpipeline \mbox{[}i\mbox{]}} Sets/gets the pipeline of the latching of the digital bits. For the new chiptestbaord!{\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize}\hypertarget{config_configsettings}{}\subsection{Detector Parameters}\label{config_configsettings} -commands to configure/retrieve configuration of detector - - -\begin{DoxyItemize} -\item {\bfseries config \mbox{[}fname\mbox{]}} sets/saves detector/receiver to configuration contained in fname. Same as executing sls\_\-detector\_\-put for every line. Normally a one time operation. {\ttfamily Returns} {\ttfamily }(string) fname -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries rx\_\-printconfig} prints the receiver configuration. Only get! {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries parameters \mbox{[}fname\mbox{]}} sets/saves detector parameters contained in fname. Normally once per different measurement. {\ttfamily Returns} {\ttfamily }(string) fname -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries setup \mbox{[}fname\mbox{]}} sets/saves detector complete setup contained in fname (extensions automatically generated), including trimfiles, ff coefficients etc. {\ttfamily Returns} {\ttfamily }(string) fname -\end{DoxyItemize} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/ctb.tex b/manual/slsDetectorClientDocs/latex/ctb.tex deleted file mode 100644 index 96ca53bca..000000000 --- a/manual/slsDetectorClientDocs/latex/ctb.tex +++ /dev/null @@ -1,101 +0,0 @@ -Commands specific for the new chiptest board as pattern generator - - -\begin{DoxyItemize} -\item {\bfseries adcinvert \mbox{[}mask\mbox{]}} Sets/gets ADC inversion mask (8 digits hex format) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries adcdisable \mbox{[}mask\mbox{]}} Sets/gets ADC disable mask (8 digits hex format) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries pattern fn} loads binary pattern file fn -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patword addr \mbox{[}word\mbox{]}} sets/gets 64 bit word at address addr of pattern memory. Both address and word in hex format. Advanced! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patioctrl \mbox{[}word\mbox{]}} sets/gets 64 bit mask defining input (0) and output (1) signals. hex format. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patclkctrl \mbox{[}word\mbox{]}} sets/gets 64 bit mask defining if output signal is a clock and runs. hex format. Unused at the moment. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patlimits \mbox{[}addr1 addr2\mbox{]}} sets/gets the start and stop limits of the pattern to be executed. hex format. Advanced! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patloop0 \mbox{[}addr1 addr2\mbox{]}} sets/gets the start and stop limits of the level 0 loop. hex format. Advanced! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patnloop0 \mbox{[}n\mbox{]}} sets/gets the number of cyclesof the level 0 loop (int). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patwait0 \mbox{[}addr\mbox{]}} sets/gets the address of the level 0 wait point. hex format. Advanced! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patwaittime0 \mbox{[}n\mbox{]}} sets/gets the duration of the witing of the 0 waiting point in clock cycles (int). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patloop1 \mbox{[}addr1 addr2\mbox{]}} sets/gets the start and stop limits of the level 1 loop. hex format. Advanced! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patnloop1 \mbox{[}n\mbox{]}} sets/gets the number of cyclesof the level 1 loop (int). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patwait1 \mbox{[}addr\mbox{]}} sets/gets the address of the level 1 wait point. hex format. Advanced! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patwaittime1 \mbox{[}n\mbox{]}} sets/gets the duration of the witing of the 1 waiting point in clock cycles (int). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patloop2 \mbox{[}addr1 addr2\mbox{]}} sets/gets the start and stop limits of the level 2 loop. hex format. Advanced! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patnloop2 \mbox{[}n\mbox{]}} sets/gets the number of cyclesof the level 2 loop (int). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patwait2 \mbox{[}addr\mbox{]}} sets/gets the address of the level 2 wait point. hex format. Advanced! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries patwaittime2 \mbox{[}n\mbox{]}} sets/gets the duration of the waiting of the 2 waiting point in clock cycles (int). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries dut\_\-clk \mbox{[}i\mbox{]}} sets/gets the signal to be used as a clock for the digital data coming from the device under test. Advanced! -\end{DoxyItemize} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/data.tex b/manual/slsDetectorClientDocs/latex/data.tex deleted file mode 100644 index 8676c64fc..000000000 --- a/manual/slsDetectorClientDocs/latex/data.tex +++ /dev/null @@ -1,76 +0,0 @@ -Commands to setup the data processing (mainly MYTHEN related) - - -\begin{DoxyItemize} -\item {\bfseries flatfield \mbox{[}fn\mbox{]}} {\ttfamily put} sets flatfield file to {\ttfamily fn} (relative to {\ttfamily ffdir}). returns the flatfield file name relative to {\ttfamily ffdir} (string). If -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries ffdir \mbox{[}d\mbox{]}} Sets/gets the directory in which the flat field file is located. {\ttfamily Returns} {\ttfamily }(string) ffdir -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries ratecorr \mbox{[}ns\mbox{]}} Returns the dead time used for rate correections in ns (int). {\ttfamily put} sets the deadtime correction constant in ns, -\/1 will set it to default tau of settings (0 unset). {\ttfamily Returns} {\ttfamily }(double with 9 decimal digit precision) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries badchannels \mbox{[}fn\mbox{]}} {\ttfamily put} sets the badchannels file to {\ttfamily fn} . returns the bad channels file name. If -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries angconv \mbox{[}fn\mbox{]}} {\ttfamily put} sets the angular conversion file to {\ttfamily fn} . returns the angular conversion file name. If -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries globaloff \mbox{[}f\mbox{]}} Sets/gets the beamline angular global offset (float). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries fineoff \mbox{[}f\mbox{]}} Sets/gets the angular fine offset of the measurement (float). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries binsize \mbox{[}f\mbox{]}} Sets/gets the bin size used for the angular conversion (float). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries angdir \mbox{[}i\mbox{]}} Sets/gets the angular direction. 1 means increasing channels number as increasing angle, -\/1 increasing channel number decreasing angle. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries moveflag \mbox{[}i\mbox{]}} Sets/gets the flag for physically moving the detector during the acquisition of several positions. 1 sets (moves), 0 unsets. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries samplex \mbox{[}f\mbox{]}} Sets/gets the sample displacement in th direction parallel to the beam in um. Unused! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries sampley \mbox{[}f\mbox{]}} Sets/gets the sample displacement in th direction orthogonal to the beam in um. Unused! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries threaded \mbox{[}i\mbox{]}} Sets/gets the data processing threaded flag. 1 is threaded, 0 unthreaded. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries darkimage fn} Loads the dark image to the detector from file fn (pedestal image). Cannot get. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries gainimage fn} Loads the gain image to the detector from file fn (gain map for translation into number of photons of an analog detector). Cannot get. -\end{DoxyItemize} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/index.tex b/manual/slsDetectorClientDocs/latex/index.tex deleted file mode 100644 index d5017170f..000000000 --- a/manual/slsDetectorClientDocs/latex/index.tex +++ /dev/null @@ -1,46 +0,0 @@ -This program is intended to control the SLS detectors via command line interface. This is the only way to access all possible functionality of the detectors, however it is often recommendable to avoid changing the most advanced settings, rather leaving the task to configuration files, as when using the GUI or the API provided. - -The command line interface consists in four main functions: - - -\begin{DoxyItemize} -\item {\bfseries sls\_\-detector\_\-acquire} to acquire data from the detector -\item {\bfseries sls\_\-detector\_\-put} to set detector parameters -\item {\bfseries sls\_\-detector\_\-get} to retrieve detector parameters -\item {\bfseries sls\_\-detector\_\-help} to get help concerning the text commands Additionally the program slsReceiver should be started on the machine expected to receive the data from the detector. -\end{DoxyItemize} - -If you need control a single detector, the use of the command line interface does not need any additional arguments. - -For commands addressing a single controller of your detector, the command cmd should be called with the index i of the controller: - -{\bfseries sls\_\-detector\_\-clnt i:cmd} - -where {\bfseries sls\_\-detector\_\-clnt} is the text client (put, get, acquire, help). - -In case more than one detector is configured on the control PC, the command cmd should be called with their respective index j: - -{\bfseries sls\_\-detector\_\-clnt j-\/cmd} - -where {\bfseries sls\_\-detector\_\-clnt} is the text client (put, get, acquire, help). - -To address a specific controller i of detector j use: - -{\bfseries sls\_\-detector\_\-clnt j-\/i:cmd} - -For additional questions concerning the indexing of the detector, please refer to the SLS Detectors FAQ documentation. - -The commands are sudivided into different pages depending on their functionalities: -\begin{DoxyItemize} -\item \hyperlink{acquisition}{Acquisition}: commands to start/stop the acquisition and retrieve data -\item \hyperlink{config}{Configuration}: commands to configure the detector -\item \hyperlink{timing}{Timing}: commands to configure the detector timing -\item \hyperlink{data}{Data postprocessing}: commands to process the data -\/ mainly for MYTHEN except for rate corrections. -\item \hyperlink{settings}{Settings}: commands to define detector settings/threshold. -\item \hyperlink{output}{Output}: commands to define output file destination and format -\item \hyperlink{actions}{Actions}: commands to define scripts to be executed during the acquisition flow -\item \hyperlink{network}{Network}: commands to setup the network between client, detector and receiver -\item \hyperlink{receiver}{Receiver}: commands to configure the receiver -\item \hyperlink{ctb}{Chiptest board}: commands specific for the new chiptest board as pattern generator -\item \hyperlink{test}{Developer}: commands to be used only for software debugging. Avoid using them! -\end{DoxyItemize} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/network.tex b/manual/slsDetectorClientDocs/latex/network.tex deleted file mode 100644 index 6d840f6be..000000000 --- a/manual/slsDetectorClientDocs/latex/network.tex +++ /dev/null @@ -1,89 +0,0 @@ -Commands to setup the network between client, detector and receiver -\begin{DoxyItemize} -\item {\bfseries rx\_\-hostname \mbox{[}s\mbox{]}} sets/gets the receiver hostname or IP address, configures detector mac with all network parameters and updates receiver with acquisition parameters. Normally used for single detectors (Can be multi-\/detector). {\ttfamily none} disables. If used, use as last network command in configuring detector MAC. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries rx\_\-udpip \mbox{[}ip\mbox{]}} sets/gets the ip address of the receiver UDP interface where the data from the detector will be streamed to. Normally used for single detectors (Can be multi-\/detector). Used if different from eth0. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries rx\_\-udpmac \mbox{[}mac\mbox{]}} sets/gets the mac address of the receiver UDP interface where the data from the detector will be streamed to. Normally used for single detectors (Can be multi-\/detector). {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries rx\_\-udpport \mbox{[}port\mbox{]}} sets/gets the port of the receiver UDP interface where the data from the detector will be streamed to. Use single-\/detector command. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries rx\_\-udpport2 \mbox{[}port\mbox{]}} sets/gets the second port of the receiver UDP interface where the data from the second half of the detector will be streamed to. Use single-\/detector command. Used for EIGER only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries detectormac \mbox{[}mac\mbox{]}} sets/gets the mac address of the detector UDP interface from where the detector will stream data. Use single-\/detector command. Normally unused. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries detectorip \mbox{[}ip\mbox{]}} sets/gets the ip address of the detector UDP interface from where the detector will stream data. Use single-\/detector command. Keep in same subnet as rx\_\-udpip (if rx\_\-udpip specified). {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries txndelay\_\-left \mbox{[}delay\mbox{]}} sets/gets the transmission delay of first packet in an image being streamed out from the detector's left UDP port. Use single-\/detector command. Used for EIGER only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries txndelay\_\-right \mbox{[}delay\mbox{]}} sets/gets the transmission delay of first packet in an image being streamed out from the detector's right UDP port. Use single-\/detector command. Used for EIGER only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries txndelay\_\-frame \mbox{[}delay\mbox{]}} sets/gets the transmission frame period of entire frame being streamed out from the detector for both ports. Use single-\/detector command. Used for EIGER only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries flowcontrol\_\-10g \mbox{[}delay\mbox{]}} Enables/disables 10 GbE flow control. 1 enables, 0 disables. Used for EIGER only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries zmqport \mbox{[}port\mbox{]}} sets/gets the 0MQ (TCP) port of the receiver from where data is streamed to the client. Use single-\/detector command to set individually or multi-\/detector command to calculate based on {\ttfamily port} for the rest. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries configuremac \mbox{[}i\mbox{]}} configures the MAC of the detector with these parameters: detectorip, detectormac, rx\_\-udpip, rx\_\-udpmac, rx\_\-udpport, rx\_\-udpport2 (if applicable). This command is already included in {\ttfamily rx\_\-hsotname}. Only put!. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries rx\_\-tcpport \mbox{[}port\mbox{]}} sets/gets the port of the client-\/receiver TCP interface. Use single-\/detector command. Is different for each detector if same {\ttfamily rx\_\-hostname} used. Must be first command to communicate with receiver. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries port \mbox{[}port\mbox{]}} sets/gets the port of the client-\/detector control server TCP interface. Use single-\/detector command. Default value is 1952 for all detectors. Normally not changed. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries stopport \mbox{[}port\mbox{]}} sets/gets the port of the client-\/detector stop server TCP interface. Use single-\/detector command. Default value is 1953 for all detectors. Normally not changed. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries lock \mbox{[}i\mbox{]}} Locks/Unlocks the detector to communicate with this client. 1 locks, 0 unlocks. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries lastclient } Gets the last client communicating with the detector. Cannot put!. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/output.tex b/manual/slsDetectorClientDocs/latex/output.tex deleted file mode 100644 index 547cfd1fc..000000000 --- a/manual/slsDetectorClientDocs/latex/output.tex +++ /dev/null @@ -1,36 +0,0 @@ -Commands to setup the file destination and format - - -\begin{DoxyItemize} -\item {\bfseries outdir \mbox{[}dir\mbox{]}} Sets/gets the file output directory. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries fname \mbox{[}fn\mbox{]}} Sets/gets the root of the output file name {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries index \mbox{[}i\mbox{]}} Sets/gets the current file index. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries enablefwrite \mbox{[}i\mbox{]}} Enables/disables file writing. 1 enables, 0 disables. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries overwrite \mbox{[}i\mbox{]}} enables(1) /disables(0) file overwriting. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries currentfname} gets the filename for the data without index and extension. MYTHEN only. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries fileformat} sets/gets the file format for data in receiver. Options: \mbox{[}ascii, binary, hdf5\mbox{]}. Ascii is not implemented in Receiver. {\ttfamily Returns} {\ttfamily }(string) -\end{DoxyItemize} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/receiver.tex b/manual/slsDetectorClientDocs/latex/receiver.tex deleted file mode 100644 index f5c464f47..000000000 --- a/manual/slsDetectorClientDocs/latex/receiver.tex +++ /dev/null @@ -1,51 +0,0 @@ -Commands to configure the receiver. Not used in MYTHEN. - - -\begin{DoxyItemize} -\item {\bfseries receiver \mbox{[}s\mbox{]}} starts/stops the receiver to listen to detector packets. Options: \mbox{[} {\ttfamily start}, {\ttfamily stop}\mbox{]}. {\ttfamily Returns} {\ttfamily }(string) status of receiver\mbox{[} {\ttfamily idle}, {\ttfamily running}\mbox{]}. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries r\_\-online \mbox{[}i\mbox{]}} sets/gets the receiver in online/offline mode. 1 is online, 0 is offline. Get is from shared memory. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries r\_\-checkonline} Checks the receiver if it is online/offline mode. Only get! {\ttfamily Returns} (string) \char`\"{}All online\char`\"{} or \char`\"{}\mbox{[}list of offline hostnames\mbox{]} : Not online\char`\"{}. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries framescaught} gets the number of frames caught by receiver. Average of all for multi-\/detector command. Only get! {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries resetframescaught \mbox{[}i\mbox{]}} resets the number of frames caught to 0. i can be any number. Use this if using status start, instead of acquire (this command is included). Only put! {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries frameindex \mbox{[}i\mbox{]}} gets the current frame index of receiver. Average of all for multi-\/detector command. Only get! {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries r\_\-lock \mbox{[}i\mbox{]}} locks/unlocks the receiver to communicate with only this client. 1 locks, 0 unlocks. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries r\_\-lastclient} gets the last client communicating with the receiver. Only get! {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries r\_\-readfreq \mbox{[}i\mbox{]}} sets/gets the stream frequency of data from receiver to client. i $>$ 0 is the nth frame being streamed. 0 sets frequency to a default timer (200ms). {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries rx\_\-fifodepth \mbox{[}i\mbox{]}} sets/gets receiver fifo (between Listener and Writer Threads) depth to i number of frames. Can improve listener packet loss (loss due to packet processing time in Listener threads), not if limited by writing. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/settings.tex b/manual/slsDetectorClientDocs/latex/settings.tex deleted file mode 100644 index 1ce0269f8..000000000 --- a/manual/slsDetectorClientDocs/latex/settings.tex +++ /dev/null @@ -1,397 +0,0 @@ -Commands to setup the settings of the detector -\begin{DoxyItemize} -\item \hyperlink{settings_settingsdir}{Settings, trim \& cal Directories}: commands to setup settings/trim/cal directories -\item \hyperlink{settings_settingssett}{Settings and Threshold}: commands to configure settings and threshold of detector -\item \hyperlink{settings_settingsdacs}{DACs}: commands to configure DACs of detector -\item \hyperlink{settings_settingsadcs}{ADCs}: commands to readout ADCs of detector -\end{DoxyItemize}\hypertarget{settings_settingsdir}{}\subsection{Settings, trim \& cal Directories}\label{settings_settingsdir} -commands to setup settings/trim/cal directories - - -\begin{DoxyItemize} -\item {\bfseries settingsdir \mbox{[}dir\mbox{]}} Sets/gets the directory where the settings files are located. {\ttfamily Returns} {\ttfamily }(string) dir -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries trimdir \mbox{[}dir\mbox{]}} obsolete {\ttfamily settingsdir}. {\ttfamily Returns} {\ttfamily }(string) dir -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries caldir \mbox{[}dir\mbox{]}} Sets/gets the directory where the calibration files are located. {\ttfamily Returns} {\ttfamily }(string) dir -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries trimen \mbox{[}n e0 e1...e(n-\/1)\mbox{]}} Sets/gets the number of energies n at which the detector has default trim file and their values in eV (int). {\ttfamily Returns} {\ttfamily }(int int...) n e0 e1...e(n-\/1) -\end{DoxyItemize}\hypertarget{settings_settingssett}{}\subsection{Settings and Threshold}\label{settings_settingssett} -commands to configure settings and threshold of detector - - -\begin{DoxyItemize} -\item {\bfseries settings \mbox{[}s\mbox{]}} sets/gets the settings of the detector. Options: {\ttfamily standard}, {\ttfamily fast}, {\ttfamily highgain}, {\ttfamily dynamicgain}, {\ttfamily lowgain}, {\ttfamily mediumgain}, {\ttfamily veryhighgain}, {\ttfamily lownoise}, {\ttfamily dynamichg0}, {\ttfamily fixgain1}, {\ttfamily fixgain2}, {\ttfamily forceswitchg1}, {\ttfamily forceswitchg2}. \par - In Eiger, only sets in client shared memory. Use {\ttfamily threshold} or {\ttfamily thresholdnotb} to pass to detector. Gets from detector. {\ttfamily Returns} {\ttfamily }(string) s -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries threshold \mbox{[}eV\mbox{]} \mbox{[}sett\mbox{]} } sets/gets the detector threshold in eV. sett is optional and if provided also sets the settings. Use this for Eiger instead of {\ttfamily settings}. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries thresholdnotb \mbox{[}eV\mbox{]} \mbox{[}sett\mbox{]} } sets/gets the detector threshold in eV without loading trimbits. sett is optional and if provided also sets the settings. Use this for Eiger instead of {\ttfamily settings}. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries trimbits \mbox{[}fname\mbox{]} } loads/stores the trimbits to/from the detector. If no extension is specified, the serial number of each module will be attached. {\ttfamily Returns} {\ttfamily }(string) fname -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries trim:\mbox{[}mode\mbox{]} \mbox{[}fname\mbox{]}} trims the detector according to mode and saves resulting trimbits to file. Mode: noise, beam, improve, fix. Used in MYTHEN only. Only put! {\ttfamily Returns} {\ttfamily }(\char`\"{}done\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries trimval \mbox{[}i\mbox{]}} sets all trimbits to i. Used in EIGER only. {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries pedestal \mbox{[}i\mbox{]}} starts acquisition for i frames, calculates pedestal and writes back to fpga. Used in GOTTHARD only. Only put! {\ttfamily Returns} {\ttfamily }(int) -\end{DoxyItemize}\hypertarget{settings_settingsdacs}{}\subsection{DACs}\label{settings_settingsdacs} -commands to configure DACs of detector - - -\begin{DoxyItemize} -\item {\bfseries vthreshold \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets detector threshold voltage for single photon counters. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vcalibration \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets the voltage of the calibration pulses. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vtrimbit \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets the voltage to set the width of the trimbits. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vpreamp \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets the voltage to define the preamplifier feedback resistance. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vhaper1 \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets the voltage to define the feedback resistance of the first shaper. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vshaper2 \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets the voltage to define the feedback resistance of the second shaper. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vhighvoltage \mbox{[}i\mbox{]}} Sets/gets the high voltage to the sensor in V. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}). -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vapower \mbox{[}i\mbox{]}} Sets/gets the analog power supply for the old chiptest board in DAC units. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vddpower \mbox{[}i\mbox{]}} Sets/gets the digital power supply for the old chiptest board in DAC units. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vshpower \mbox{[}i\mbox{]}} Sets/gets the comparator power supply for the old chiptest board in DAC units. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries viopower \mbox{[}i\mbox{]}} Sets/gets the power supply of the FPGA I/Os for the old chiptest board in DAC units. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vrefds \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vrefds. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vcascn\_\-pb \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vcascn\_\-pb. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vcasc\_\-pb \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vcasc\_\-pb. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vout\_\-cm \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vout\_\-cm. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vcasc\_\-out \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vcasc\_\-out. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vin\_\-com \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vin\_\-com. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vref\_\-comp \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vref\_\-comp. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries ib\_\-test\_\-c \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets ib\_\-test\_\-c. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries dac\mbox{[}0..7\mbox{]} \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets dac\mbox{[}0..7\mbox{]} for MOENCH02. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vsvp \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vsvp. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vsvn \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vsvn. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vtr \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vtr. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vrf \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vrf. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vrs \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vrs. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vtgstv \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vtgstv. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vcmp\_\-ll \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vcmp\_\-ll. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vcmp\_\-lr \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vcmp\_\-lr. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vcal\_\-l \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vcal\_\-l. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vcomp\_\-rl \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vcomp\_\-rl. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vcomp\_\-rr \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vcomp\_\-rr. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries rxb\_\-rb \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets rxb\_\-rb. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries rxb\_\-lb \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets rxb\_\-lb. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vcp \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vcp. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vcn \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vcn. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vis \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets vis. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries iodelay \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets iodelay. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries dac:j \mbox{[}i\mbox{]} \mbox{[}mv\mbox{]}} Sets/gets value for DAC number j for the new chiptestboard. Normally in DAC units unless {\ttfamily mv} is specified at the end of the command line. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries adcvpp \mbox{[}i\mbox{]} } Sets/gets the Vpp of the ADC 0 -\/$>$ 1V ; 1 -\/$>$ 1.14V ; 2 -\/$>$ 1.33V ; 3 -\/$>$ 1.6V ; 4 -\/$>$ 2V . {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries v\_\-a \mbox{[}i\mbox{]} mv} Sets/gets value for Va on the new chiptest board. Must be in mV. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries v\_\-b \mbox{[}i\mbox{]} mv} Sets/gets value for Vb on the new chiptest board. Must be in mV. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries v\_\-c \mbox{[}i\mbox{]} mv} Sets/gets value for Vc on the new chiptest board. Must be in mV. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries v\_\-d \mbox{[}i\mbox{]} mv} Sets/gets value for Vd on the new chiptest board. Must be in mV. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries v\_\-io \mbox{[}i\mbox{]} mv} Sets/gets value for Vio on the new chiptest board. Must be in mV. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries v\_\-chip \mbox{[}i\mbox{]} mv} Sets/gets value for Vchip on the new chiptest board. Must be in mV. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}). Normally don't use it! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries v\_\-limit \mbox{[}i\mbox{]} mv} Sets/gets a soft limit for the power supplies and the DACs on the new chiptest board. Must be in mV. {\ttfamily Returns} {\ttfamily }(int \mbox{[}\char`\"{}mV\char`\"{}\mbox{]}) -\end{DoxyItemize}\hypertarget{settings_settingsadcs}{}\subsection{ADCs}\label{settings_settingsadcs} -commands to readout ADCs of detector - - -\begin{DoxyItemize} -\item {\bfseries temp\_\-adc} Gets the ADC temperature. {\ttfamily Returns} {\ttfamily EIGER},JUNGFRAU(double\char`\"{}°C\char`\"{}) Others {\ttfamily }(int\char`\"{}°C\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries temp\_\-fpga} Gets the FPGA temperature. {\ttfamily Returns} {\ttfamily EIGER},JUNGFRAU(double\char`\"{}°C\char`\"{}) Others {\ttfamily }(int\char`\"{}°C\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries temp\_\-fpgaext} Gets the external FPGA temperature. Used in EIGER only. {\ttfamily Returns} {\ttfamily EIGER}(double\char`\"{}°C\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries temp\_\-10ge} Gets the 10Gbe temperature. Used in EIGER only. {\ttfamily Returns} {\ttfamily EIGER}(double\char`\"{}°C\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries temp\_\-dcdc} Gets the temperature of the DC/DC converter. Used in EIGER only. {\ttfamily Returns} {\ttfamily EIGER}(double\char`\"{}°C\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries temp\_\-sodl} Gets the temperature of the left so-\/dimm memory . Used in EIGER only. {\ttfamily Returns} {\ttfamily EIGER}(double\char`\"{}°C\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries temp\_\-sodr} Gets the temperature of the right so-\/dimm memory. Used in EIGER only. {\ttfamily Returns} {\ttfamily EIGER}(double\char`\"{}°C\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries adc:j} Gets the values of the slow ADC number j for the new chiptest board. {\ttfamily Returns} {\ttfamily }(int\char`\"{}°C\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries temp\_\-fpgal} Gets the temperature of the left frontend FPGA. Used in EIGER only. {\ttfamily Returns} {\ttfamily EIGER}(double\char`\"{}°C\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries temp\_\-fpgar} Gets the temperature of the right frontend FPGA. Used in EIGER only. {\ttfamily Returns} {\ttfamily EIGER}(double\char`\"{}°C\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries i\_\-a} Gets the current of the power supply a on the new chiptest board. {\ttfamily Returns} {\ttfamily }(int\char`\"{}mV\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries i\_\-b} Gets the current of the power supply b on the new chiptest board {\ttfamily Returns} {\ttfamily }(int\char`\"{}mV\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries i\_\-c} Gets the current of the power supply c on the new chiptest board {\ttfamily Returns} {\ttfamily }(int\char`\"{}mV\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries i\_\-d} Gets the current of the power supply d on the new chiptest board {\ttfamily Returns} {\ttfamily }(int\char`\"{}mV\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries i\_\-io} Gets the current of the power supply io on the new chiptest board {\ttfamily Returns} {\ttfamily }(int\char`\"{}mV\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vm\_\-a} Gets the measured voltage of the power supply a on the new chiptest board {\ttfamily Returns} {\ttfamily }(int\char`\"{}mV\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vm\_\-b} Gets the measured voltage of the power supply b on the new chiptest board {\ttfamily Returns} {\ttfamily }(int\char`\"{}mV\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vm\_\-c} Gets the measured voltage of the power supply c on the new chiptest board {\ttfamily Returns} {\ttfamily }(int\char`\"{}mV\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vm\_\-d} Gets the measured voltage of the power supply d on the new chiptest board {\ttfamily Returns} {\ttfamily }(int\char`\"{}mV\char`\"{}) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries vm\_\-io} Gets the measured voltage of the power supply io on the new chiptest board {\ttfamily Returns} {\ttfamily }(int\char`\"{}mV\char`\"{}) -\end{DoxyItemize} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/test.tex b/manual/slsDetectorClientDocs/latex/test.tex deleted file mode 100644 index b175f8d54..000000000 --- a/manual/slsDetectorClientDocs/latex/test.tex +++ /dev/null @@ -1,69 +0,0 @@ -Commands to be used only for software debugging. Avoid using them! -\begin{DoxyItemize} -\item {\bfseries test} returns an error -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries help} Returns a list of possible commands. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries exitserver} Shuts down all the detector servers. Don't use it!!!! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries exitreceiver} Shuts down all the receivers. Don't use it!!!! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries flippeddatay \mbox{[}i\mbox{]}} enables/disables data being flipped across y axis. 1 enables, 0 disables. Not implemented. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries digitest \mbox{[}i\mbox{]}} will perform test which will plot the unique channel identifier, instead of data. Only get! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries bustest} performs test of the bus interface between FPGA and embedded Linux system. Can last up to a few minutes. Cannot set! Used for Mythen only. Only get! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries digibittest:\mbox{[}i\mbox{]}} performs digital test of the module i. Returns 0 if succeeded, otherwise error mask. Only put! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries reg \mbox{[}addr\mbox{]} \mbox{[}val\mbox{]}} ??? writes to an register {\ttfamily addr} with {\ttfamily value} in hexadecimal format. -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries adcreg \mbox{[}addr\mbox{]} \mbox{[}val\mbox{]}} ??? writes to an adc register {\ttfamily addr} with {\ttfamily value} in hexadecimal format. Only put! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries setbit} ??? Only put! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries clearbit } ??? Only put! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries getbit } ??? Only get! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries r\_\-compression \mbox{[}i\mbox{]} } sets/gets compression in receiver. 1 sets, 0 unsets. Not implemented. -\end{DoxyItemize} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/timing.tex b/manual/slsDetectorClientDocs/latex/timing.tex deleted file mode 100644 index 73ca11e98..000000000 --- a/manual/slsDetectorClientDocs/latex/timing.tex +++ /dev/null @@ -1,101 +0,0 @@ -Commands to setup the timing - - -\begin{DoxyItemize} -\item {\bfseries timing \mbox{[}mode\mbox{]}} sets/gets synchronization mode of the detector. Mode: auto, trigger, ro\_\-trigger, gating, triggered\_\-gating (string) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries exptime \mbox{[}i\mbox{]}} sets/gets exposure time in s. {\ttfamily Returns} {\ttfamily }(double with 9 decimal digits) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries subexptime \mbox{[}i\mbox{]}} sets/gets sub exposure time in s. Used in EIGER only in 32 bit mode. {\ttfamily Returns} {\ttfamily }(double with 9 decimal digits) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries period \mbox{[}i\mbox{]}} sets/gets frame period in s. {\ttfamily Returns} {\ttfamily }(double with 9 decimal digits) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries delay \mbox{[}i\mbox{]}} sets/gets delay in s. Used in MYTHEN, GOTTHARD only. {\ttfamily Returns} {\ttfamily }(double with 9 decimal digits) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries gates \mbox{[}i\mbox{]}} sets/gets number of gates. Used in MYTHEN, GOTTHARD only. {\ttfamily Returns} {\ttfamily }(long long int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries frames \mbox{[}i\mbox{]}} sets/gets number of frames. If {\ttfamily timing} is not {\ttfamily auto}, then it is the number of frames per cycle/trigger. {\ttfamily Returns} {\ttfamily }(long long int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries cycles \mbox{[}i\mbox{]}} sets/gets number of triggers. Timing mode should be set appropriately. {\ttfamily Returns} {\ttfamily }(long long int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries probes \mbox{[}i\mbox{]}} sets/gets number of probes to accumulate. When setting, max 3! cycles should be set to 1, frames to the number of pump-\/probe events. Used in MYTHEN only. {\ttfamily Returns} {\ttfamily }(long long int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries measurements \mbox{[}i\mbox{]}} sets/gets number of measurements. {\ttfamily Returns} {\ttfamily }(long long int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries samples \mbox{[}i\mbox{]}} sets/gets number of samples expected from the jctb. Used in CHIP TEST BOARD only. {\ttfamily Returns} {\ttfamily }(long long int) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries exptimel} gets exposure time left. Used in MYTHEN, GOTTHARD only. Only get! {\ttfamily Returns} {\ttfamily }(double with 9 decimal digits) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries periodl} gets frame period left. Used in MYTHEN, GOTTHARD only. Only get! {\ttfamily Returns} {\ttfamily }(double with 9 decimal digits) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries delayl} gets delay left. Used in MYTHEN, GOTTHARD only. Only get! {\ttfamily Returns} {\ttfamily }(double with 9 decimal digits) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries gatesl} gets number of gates left. Used in MYTHEN, GOTTHARD only. Only get! {\ttfamily Returns} {\ttfamily }(double with 9 decimal digits) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries cyclesl} gets number of cylces left. Used in MYTHEN, GOTTHARD only. Only get! {\ttfamily Returns} {\ttfamily }(double with 9 decimal digits) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries probesl} gets number of probes left. Used in MYTHEN, GOTTHARD only. Only get! {\ttfamily Returns} {\ttfamily }(double with 9 decimal digits) -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries now} Actual time of the detector. Only get! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries timestamp} Last frame timestamp for MYTHEN. Only get! -\end{DoxyItemize} - - -\begin{DoxyItemize} -\item {\bfseries nframes} ??? Only get! -\end{DoxyItemize} \ No newline at end of file