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.).
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
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
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
+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
+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
+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.).
+
+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
+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
+
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
+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.
+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
+
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
+00025intmain(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 = newslsReceiverUsers(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
+
+ 1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp.html b/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp.html
new file mode 100644
index 000000000..35c837ff0
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp.html
@@ -0,0 +1,73 @@
+
+
+mainReceiver.cpp File Reference
+
+
+
+
+
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
+
+ 1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/tab_b.gif b/manual/manual-api/slsDetectorUsersDocs/html/tab_b.gif
new file mode 100644
index 000000000..0d623483f
Binary files /dev/null and b/manual/manual-api/slsDetectorUsersDocs/html/tab_b.gif differ
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/tab_l.gif b/manual/manual-api/slsDetectorUsersDocs/html/tab_l.gif
new file mode 100644
index 000000000..9b1e6337c
Binary files /dev/null and b/manual/manual-api/slsDetectorUsersDocs/html/tab_l.gif differ
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/tab_r.gif b/manual/manual-api/slsDetectorUsersDocs/html/tab_r.gif
new file mode 100644
index 000000000..ce9dd9f53
Binary files /dev/null and b/manual/manual-api/slsDetectorUsersDocs/html/tab_r.gif differ
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/tabs.css b/manual/manual-api/slsDetectorUsersDocs/html/tabs.css
new file mode 100644
index 000000000..a61552a67
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/tabs.css
@@ -0,0 +1,102 @@
+/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
+
+DIV.tabs
+{
+ float : left;
+ width : 100%;
+ background : url("tab_b.gif") repeat-x bottom;
+ margin-bottom : 4px;
+}
+
+DIV.tabs UL
+{
+ margin : 0px;
+ padding-left : 10px;
+ list-style : none;
+}
+
+DIV.tabs LI, DIV.tabs FORM
+{
+ display : inline;
+ margin : 0px;
+ padding : 0px;
+}
+
+DIV.tabs FORM
+{
+ float : right;
+}
+
+DIV.tabs A
+{
+ float : left;
+ background : url("tab_r.gif") no-repeat right top;
+ border-bottom : 1px solid #84B0C7;
+ font-size : x-small;
+ font-weight : bold;
+ text-decoration : none;
+}
+
+DIV.tabs A:hover
+{
+ background-position: 100% -150px;
+}
+
+DIV.tabs A:link, DIV.tabs A:visited,
+DIV.tabs A:active, DIV.tabs A:hover
+{
+ color: #1A419D;
+}
+
+DIV.tabs SPAN
+{
+ float : left;
+ display : block;
+ background : url("tab_l.gif") no-repeat left top;
+ padding : 5px 9px;
+ white-space : nowrap;
+}
+
+DIV.tabs INPUT
+{
+ float : right;
+ display : inline;
+ font-size : 1em;
+}
+
+DIV.tabs TD
+{
+ font-size : x-small;
+ font-weight : bold;
+ text-decoration : none;
+}
+
+
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+DIV.tabs SPAN {float : none;}
+/* End IE5-Mac hack */
+
+DIV.tabs A:hover SPAN
+{
+ background-position: 0% -150px;
+}
+
+DIV.tabs LI#current A
+{
+ background-position: 100% -150px;
+ border-width : 0px;
+}
+
+DIV.tabs LI#current SPAN
+{
+ background-position: 0% -150px;
+ padding-bottom : 6px;
+}
+
+DIV.nav
+{
+ background : none;
+ border : none;
+ border-bottom : 1px solid #84B0C7;
+}
diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/FreeSans.ttf b/manual/manual-api/slsDetectorUsersDocs/latex/FreeSans.ttf
new file mode 100644
index 000000000..b550b90ba
Binary files /dev/null and b/manual/manual-api/slsDetectorUsersDocs/latex/FreeSans.ttf differ
diff --git a/manual/manual-api/slsDetectorUsersDocs/latex/Makefile b/manual/manual-api/slsDetectorUsersDocs/latex/Makefile
new file mode 100644
index 000000000..a67f1b7f6
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/Makefile
@@ -0,0 +1,17 @@
+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
new file mode 100644
index 000000000..90a77bb9c
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/annotated.tex
@@ -0,0 +1,6 @@
+\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
new file mode 100644
index 000000000..29a1d402e
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/classdetectorData.tex
@@ -0,0 +1,171 @@
+\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
new file mode 100644
index 000000000..6184abfe5
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/classslsDetectorUsers.tex
@@ -0,0 +1,1187 @@
+\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
new file mode 100644
index 000000000..875dccdda
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/classslsReceiverUsers.tex
@@ -0,0 +1,164 @@
+\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
new file mode 100644
index 000000000..14c9a7fe3
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/detectorData_8h.tex
@@ -0,0 +1,11 @@
+\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
new file mode 100644
index 000000000..9f18220c3
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/doxygen.sty
@@ -0,0 +1,77 @@
+\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
new file mode 100644
index 000000000..5857c36bb
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/files.tex
@@ -0,0 +1,8 @@
+\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
new file mode 100644
index 000000000..a5b6f3f17
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/index.tex
@@ -0,0 +1,26 @@
+\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
new file mode 100644
index 000000000..155f6b83c
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/mainClient_8cpp.tex
@@ -0,0 +1,79 @@
+\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
new file mode 100644
index 000000000..eaa4d25fe
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/mainReceiver_8cpp.tex
@@ -0,0 +1,35 @@
+\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
new file mode 100644
index 000000000..544431d63
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/namespaces.tex
@@ -0,0 +1,4 @@
+\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
new file mode 100644
index 000000000..b2aebea09
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/namespacestd.tex
@@ -0,0 +1,6 @@
+\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
new file mode 100644
index 000000000..00d0b65dd
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/refman.tex
@@ -0,0 +1,57 @@
+\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
new file mode 100644
index 000000000..425f389ea
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/slsDetectorUsers_8h.tex
@@ -0,0 +1,16 @@
+\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
new file mode 100644
index 000000000..90aa9d640
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/latex/slsReceiverUsers_8h.tex
@@ -0,0 +1,11 @@
+\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}