diff --git a/manual/manual-api/Makefile b/manual/manual-api/Makefile index aa01cfa70..9c236d3ed 100644 --- a/manual/manual-api/Makefile +++ b/manual/manual-api/Makefile @@ -7,7 +7,7 @@ LDFLAG_REC = -L$(LIBDIR) -lSlsReceiver -L/usr/lib64/ -lpthread DESTDIR ?= ../docs -#all: clean detUser detReceiver +#all: detUser detReceiver all: docs docs: diff --git a/manual/manual-api/detReceiver b/manual/manual-api/detReceiver index cbc7f3f5e..6a3d95a90 100755 Binary files a/manual/manual-api/detReceiver and b/manual/manual-api/detReceiver differ diff --git a/manual/manual-api/slsDetectorUsersDocs/html/annotated.html b/manual/manual-api/slsDetectorUsersDocs/html/annotated.html new file mode 100644 index 000000000..35ac5597f --- /dev/null +++ b/manual/manual-api/slsDetectorUsersDocs/html/annotated.html @@ -0,0 +1,29 @@ + +
+| detectorData | Data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) |
| slsDetectorUsers | Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc |
| slsReceiverUsers | Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data |
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData-members.html b/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData-members.html
new file mode 100644
index 000000000..8d9df94aa
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData-members.html
@@ -0,0 +1,34 @@
+
+
+| angles | detectorData | |
| detectorData(double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1) | detectorData | [inline] |
| errors | detectorData | |
| fileName | detectorData | |
| npoints | detectorData | |
| npy | detectorData | |
| progressIndex | detectorData | |
| values | detectorData | |
| ~detectorData() | detectorData | [inline] |
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData.html b/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData.html
new file mode 100644
index 000000000..eb3220214
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/classdetectorData.html
@@ -0,0 +1,316 @@
+
+
+
+#include <detectorData.h>
+
Public Member Functions | |
| detectorData (double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1) | |
| The constructor. | |
| ~detectorData () | |
| The destructor deletes also the arrays pointing to data/errors/angles if not NULL. | |
Public Attributes | |
| double * | values |
| pointer to the data | |
| double * | errors |
| pointer to the errors | |
| double * | angles |
| pointer to the angles (NULL if no angular conversion) | |
| double | progressIndex |
| file index | |
| char | fileName [1000] |
| file name | |
| int | npoints |
| number of points | |
| int | npy |
| dimensions in y coordinate | |
+ +
+Definition at line 9 of file detectorData.h.
| detectorData::detectorData | +( | +double * | + val = NULL, |
+ |
| + | + | double * | + err = NULL, |
+ |
| + | + | double * | + ang = NULL, |
+ |
| + | + | double | + p_ind = -1, |
+ |
| + | + | const char * | + fname = "", |
+ |
| + | + | int | + np = -1, |
+ |
| + | + | int | + ny = 1 | + |
| + | ) | + [inline] |
+
+The constructor. +
+
| val | pointer to the data | |
| err | pointer to errors | |
| ang | pointer to the angles | |
| f_ind | file index | |
| fname | file name to which the data are saved | |
| np | number of points in x coordinate defaults to the number of detector channels (1D detector) | |
| ny | dimension in y (1D detector) |
+Definition at line 20 of file detectorData.h. +
+References fileName. +
| detectorData::~detectorData | +( | ++ | ) | + [inline] |
+
+The destructor deletes also the arrays pointing to data/errors/angles if not NULL. +
+ +
+Definition at line 25 of file detectorData.h. +
+
| double* detectorData::angles | +
+pointer to the angles (NULL if no angular conversion) +
+ +
+Definition at line 29 of file detectorData.h. +
+Referenced by ~detectorData(). +
| double* detectorData::errors | +
+pointer to the errors +
+ +
+Definition at line 28 of file detectorData.h. +
+Referenced by ~detectorData(). +
| char detectorData::fileName[1000] | +
+file name +
+ +
+Definition at line 31 of file detectorData.h. +
+Referenced by detectorData(). +
| int detectorData::npoints | +
+number of points +
+ +
+Definition at line 32 of file detectorData.h. +
+Referenced by dataCallback(). +
| int detectorData::npy | +
+dimensions in y coordinate +
+ +
+Definition at line 33 of file detectorData.h. +
+Referenced by dataCallback(). +
| double detectorData::progressIndex | +
| double* detectorData::values | +
+pointer to the data +
+ +
+Definition at line 25 of file detectorData.h. +
+Referenced by ~detectorData(). +
+
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers-members.html b/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers-members.html
new file mode 100644
index 000000000..024c4128c
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers-members.html
@@ -0,0 +1,95 @@
+
+
+
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers.html b/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers.html
new file mode 100644
index 000000000..b5349be75
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers.html
@@ -0,0 +1,2372 @@
+
+
+
+#include <slsDetectorUsers.h>
+
Public Member Functions | |
| slsDetectorUsers (int id=0) | |
| default constructor | |
| virtual | ~slsDetectorUsers () |
| virtual destructor | |
| string | getDetectorDeveloper () |
| useful to define subset of working functions | |
| int | setOnline (int const online=-1) |
| sets the onlineFlag | |
| void | startMeasurement () |
| start measurement and acquires | |
| int | stopMeasurement () |
| stop measurement | |
| int | getDetectorStatus () |
| get run status | |
| string | getFilePath () |
| returns the default output files path | |
| string | setFilePath (string s) |
| sets the default output files path | |
| string | getFileName () |
| string | setFileName (string s) |
| sets the default output files path | |
| int | getFileIndex () |
| int | setFileIndex (int i) |
| sets the default output file index | |
| string | getFlatFieldCorrectionDir () |
| get flat field corrections file directory | |
| string | setFlatFieldCorrectionDir (string dir) |
| set flat field corrections file directory | |
| string | getFlatFieldCorrectionFile () |
| get flat field corrections file name | |
| int | setFlatFieldCorrectionFile (string fname="") |
| set flat field correction file | |
| int | enableFlatFieldCorrection (int i=-1) |
| enable/disable flat field corrections (without changing file name) | |
| int | enableCountRateCorrection (int i=-1) |
| enable/disable count rate corrections | |
| int | enablePixelMaskCorrection (int i=-1) |
| enable/disable bad channel corrections | |
| int | enableAngularConversion (int i=-1) |
| enable/disable angular conversion | |
| int | enableWriteToFile (int i=-1) |
| int | setPositions (int nPos, double *pos) |
| set positions for the acquisition | |
| int | getPositions (double *pos=NULL) |
| get positions for the acquisition | |
| int | setDetectorSize (int x0=-1, int y0=-1, int nx=-1, int ny=-1) |
| sets the detector size | |
| int | getDetectorSize (int &x0, int &y0, int &nx, int &ny) |
| gets detector size | |
| int | getMaximumDetectorSize (int &nx, int &ny) |
| setsthe maximum detector size | |
| int | setBitDepth (int i=-1) |
| set/get dynamic range | |
| int | setSettings (int isettings=-1) |
| set detector settings | |
| int | getThresholdEnergy () |
| get threshold energy | |
| int | setThresholdEnergy (int e_eV) |
| set threshold energy | |
| int | getBeamEnergy () |
| get beam energy -- only for dectris! | |
| int | setBeamEnergy (int e_eV) |
| set beam energy -- only for dectris! | |
| double | setExposureTime (double t=-1, bool inseconds=false) |
| set/get exposure time value | |
| double | setExposurePeriod (double t=-1, bool inseconds=false) |
| set/get exposure period | |
| double | setDelayAfterTrigger (double t=-1, bool inseconds=false) |
| set/get delay after trigger | |
| int64_t | setNumberOfGates (int64_t t=-1) |
| set/get number of gates | |
| int64_t | setNumberOfFrames (int64_t t=-1) |
| set/get number of frames i.e. number of exposure per trigger | |
| int64_t | setNumberOfCycles (int64_t t=-1) |
| set/get number of cycles i.e. number of triggers | |
| int | setTimingMode (int pol=-1) |
| set/get the external communication mode | |
| int | readConfigurationFile (string const fname) |
| Reads the configuration file -- will contain all the informations needed for the configuration (e.g. for a PSI detector caldir, settingsdir, angconv, badchannels, hostname etc.). | |
| int | dumpDetectorSetup (string const fname) |
| Reads the parameters from the detector and writes them to file. | |
| int | retrieveDetectorSetup (string const fname) |
| Loads the detector setup from file. | |
| string | getDetectorType () |
| useful for data plotting etc. | |
| int | setReceiverMode (int n=-1) |
| sets the mode by which gui requests data from receiver | |
| void | registerDataCallback (int(*userCallback)(detectorData *d, int f, void *), void *pArg) |
| register calbback for accessing detector final data | |
| void | registerRawDataCallback (int(*userCallback)(double *p, int n, void *), void *pArg) |
| register callback for accessing raw data - if the rawDataCallback is registered, no filewriting/postprocessing will be carried on automatically by the software - the raw data are deleted by the software | |
| virtual void | initDataset (int refresh) |
| function to initalize a set of measurements (reset binning if angular conversion, reset summing otherwise) - can be overcome by the user's functions thanks to the virtual property | |
| virtual void | addFrame (double *data, double pos, double i0, double t, string fname, double var) |
| adds frame to merging/summation - can be overcome by the user's functions thanks to the virtual property | |
| virtual void | finalizeDataset (double *a, double *v, double *e, int &np) |
| finalizes the data set returning the array of angles, values and errors to be used as final data - can be overcome by the user's functions thanks to the virtual property | |
| int64_t | getModuleFirmwareVersion () |
| int64_t | getModuleSerialNumber (int imod=-1) |
| int64_t | getDetectorFirmwareVersion () |
| int64_t | getDetectorSerialNumber () |
| int64_t | getDetectorSoftwareVersion () |
| int64_t | getThisSoftwareVersion () |
| void | registerAcquisitionFinishedCallback (int(*func)(double, int, void *), void *pArg) |
| register calbback for accessing detector final data | |
| void | registerGetPositionCallback (double(*func)(void *), void *arg) |
| register calbback for reading detector position | |
| void | registerConnectChannelsCallback (int(*func)(void *), void *arg) |
| register callback for connecting to the epics channels | |
| void | registerDisconnectChannelsCallback (int(*func)(void *), void *arg) |
| register callback to disconnect the epics channels | |
| void | registerGoToPositionCallback (int(*func)(double, void *), void *arg) |
| register callback for moving the detector | |
| void | registerGoToPositionNoWaitCallback (int(*func)(double, void *), void *arg) |
| register callback for moving the detector without waiting | |
| void | registerGetI0Callback (double(*func)(int, void *), void *arg) |
| register calbback reading to I0 | |
| string | putCommand (int narg, char *args[], int pos=-1) |
| sets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf | |
| string | getCommand (int narg, char *args[], int pos=-1) |
| gets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf | |
Static Public Member Functions | |
| static string | runStatusType (int s) |
| returns string from run status index | |
| static int | getDetectorSettings (string s) |
| returns detector settings string from index | |
| static string | getDetectorSettings (int s) |
| returns detector settings string from index | |
| static string | getTimingMode (int f) |
| returns external communication mode string from index | |
| static int | getTimingMode (string s) |
| returns external communication mode string from index | |
+ +
+Definition at line 84 of file slsDetectorUsers.h.
| slsDetectorUsers::slsDetectorUsers | +( | +int | + id = 0 |
+ ) | ++ |
+default constructor +
+ +
| virtual slsDetectorUsers::~slsDetectorUsers | +( | ++ | ) | + [virtual] |
+
+virtual destructor +
+ +
+
| virtual void slsDetectorUsers::addFrame | +( | +double * | +data, | +|
| + | + | double | +pos, | +|
| + | + | double | +i0, | +|
| + | + | double | +t, | +|
| + | + | string | +fname, | +|
| + | + | double | +var | + |
| + | ) | + [virtual] |
+
+adds frame to merging/summation - can be overcome by the user's functions thanks to the virtual property +
+
| 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. +
+
| fname | file to write to |
| int slsDetectorUsers::enableAngularConversion | +( | +int | + i = -1 |
+ ) | ++ |
+enable/disable angular conversion +
+
| i | 0 disables, 1 enables, -1 gets |
| int slsDetectorUsers::enableCountRateCorrection | +( | +int | + i = -1 |
+ ) | ++ |
+enable/disable count rate corrections +
+
| i | 0 disables, 1 enable, -1 gets |
| int slsDetectorUsers::enableFlatFieldCorrection | +( | +int | + i = -1 |
+ ) | ++ |
+enable/disable flat field corrections (without changing file name) +
+
| i | 0 disables, 1 enables, -1 gets |
| int slsDetectorUsers::enablePixelMaskCorrection | +( | +int | + i = -1 |
+ ) | ++ |
+enable/disable bad channel corrections +
+
| i | 0 disables, 1 enables, -1 gets |
| 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 +
+
| a | pointer to the array of angles - can be null if no angular coversion is required | |
| v | pointer to the array of values | |
| e | pointer to the array of errors | |
| np | reference returning the number of points |
| int slsDetectorUsers::getBeamEnergy | +( | ++ | ) | ++ |
+get beam energy -- only for dectris! +
+
| string slsDetectorUsers::getCommand | +( | +int | +narg, | +|
| + | + | char * | +args[], | +|
| + | + | int | + pos = -1 | + |
| + | ) | ++ |
+gets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf +
+
| narg | value to be set | |
| args | value to be set | |
| pos | position of detector in multislsdetector list |
+Referenced by main(). +
| string slsDetectorUsers::getDetectorDeveloper | +( | ++ | ) | ++ |
+useful to define subset of working functions +
+
+Referenced by main(). +
| int64_t slsDetectorUsers::getDetectorFirmwareVersion | +( | ++ | ) | ++ |
+get get Detector Firmware Version
| int64_t slsDetectorUsers::getDetectorSerialNumber | +( | ++ | ) | ++ |
+get get Detector Serial Number
| static string slsDetectorUsers::getDetectorSettings | +( | +int | +s | +) | + [inline, static] |
+
+returns detector settings string from index +
+
| s | settings index |
+Definition at line 589 of file slsDetectorUsers.h. +
| static int slsDetectorUsers::getDetectorSettings | +( | +string | +s | +) | + [inline, static] |
+
+returns detector settings string from index +
+
| s | can be standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain |
+Definition at line 575 of file slsDetectorUsers.h. +
+Referenced by main(). +
| int slsDetectorUsers::getDetectorSize | +( | +int & | +x0, | +|
| + | + | int & | +y0, | +|
| + | + | int & | +nx, | +|
| + | + | int & | +ny | + |
| + | ) | ++ |
+gets detector size +
+
| x0 | horizontal position origin in channel number | |
| y0 | vertical position origin in channel number | |
| nx | number of channels in horiziontal | |
| ny | number of channels in vertical |
+Referenced by main(). +
| int64_t slsDetectorUsers::getDetectorSoftwareVersion | +( | ++ | ) | ++ |
+get get Detector Software Version
| int slsDetectorUsers::getDetectorStatus | +( | ++ | ) | ++ |
| string slsDetectorUsers::getDetectorType | +( | ++ | ) | ++ |
+useful for data plotting etc. +
+
| int slsDetectorUsers::getFileIndex | +( | ++ | ) | ++ |
+
| string slsDetectorUsers::getFileName | +( | ++ | ) | ++ |
+
| string slsDetectorUsers::getFilePath | +( | ++ | ) | ++ |
+returns the default output files path +
+ +
| string slsDetectorUsers::getFlatFieldCorrectionDir | +( | ++ | ) | ++ |
+get flat field corrections file directory +
+
| string slsDetectorUsers::getFlatFieldCorrectionFile | +( | ++ | ) | ++ |
+get flat field corrections file name +
+
| int slsDetectorUsers::getMaximumDetectorSize | +( | +int & | +nx, | +|
| + | + | int & | +ny | + |
| + | ) | ++ |
+setsthe maximum detector size +
+
| x0 | horizontal position origin in channel number | |
| y0 | vertical position origin in channel number | |
| nx | number of channels in horiziontal | |
| ny | number of channels in vertical |
| int64_t slsDetectorUsers::getModuleFirmwareVersion | +( | ++ | ) | ++ |
+get get Module Firmware Version
| int64_t slsDetectorUsers::getModuleSerialNumber | +( | +int | + imod = -1 |
+ ) | ++ |
+get get Module Serial Number
| imod | module number |
| int slsDetectorUsers::getPositions | +( | +double * | + pos = NULL |
+ ) | ++ |
+get positions for the acquisition +
+
| pos | array which will contain the encoder positions |
| int64_t slsDetectorUsers::getThisSoftwareVersion | +( | ++ | ) | ++ |
+get this Software Version
| int slsDetectorUsers::getThresholdEnergy | +( | ++ | ) | ++ |
+get threshold energy +
+
| static int slsDetectorUsers::getTimingMode | +( | +string | +s | +) | + [inline, static] |
+
+returns external communication mode string from index +
+
| f | index for communication mode |
+Definition at line 625 of file slsDetectorUsers.h. +
| static string slsDetectorUsers::getTimingMode | +( | +int | +f | +) | + [inline, static] |
+
+returns external communication mode string from index +
+
| f | index for communication mode |
+Definition at line 609 of file slsDetectorUsers.h. +
| virtual void slsDetectorUsers::initDataset | +( | +int | +refresh | +) | + [virtual] |
+
+function to initalize a set of measurements (reset binning if angular conversion, reset summing otherwise) - can be overcome by the user's functions thanks to the virtual property +
+
| refresh | if 1, all parameters like ffcoefficients, badchannels, ratecorrections etc. are reset (should be called at least onece with this option), if 0 simply reset merging/ summation |
| string slsDetectorUsers::putCommand | +( | +int | +narg, | +|
| + | + | char * | +args[], | +|
| + | + | int | + pos = -1 | + |
| + | ) | ++ |
+sets parameters in command interface http://www.psi.ch/detectors/UsersSupportEN/slsDetectorClientHowTo.pdf +
+
| narg | value to be set | |
| args | value to be set | |
| pos | position of detector in multislsdetector list |
| int slsDetectorUsers::readConfigurationFile | +( | +string const | +fname | +) | ++ |
+Reads the configuration file -- will contain all the informations needed for the configuration (e.g. for a PSI detector caldir, settingsdir, angconv, badchannels, hostname etc.). +
+
| fname | file name |
+Referenced by main(). +
| void slsDetectorUsers::registerAcquisitionFinishedCallback | +( | +int(*)(double, int, void *) | +func, | +|
| + | + | void * | +pArg | + |
| + | ) | ++ |
+register calbback for accessing detector final data +
+
| func | function to be called at the end of the acquisition. gets detector status and progress index as arguments |
| void slsDetectorUsers::registerConnectChannelsCallback | +( | +int(*)(void *) | +func, | +|
| + | + | void * | +arg | + |
| + | ) | ++ |
+register callback for connecting to the epics channels +
+
| func | function for connecting to the epics channels |
| void slsDetectorUsers::registerDataCallback | +( | +int(*)(detectorData *d, int f, void *) | +userCallback, | +|
| + | + | void * | +pArg | + |
| + | ) | ++ |
+register calbback for accessing detector final data +
+
| userCallback | function for plotting/analyzing the data. Its arguments are the data structure d and the frame number f. |
+Referenced by main(). +
| void slsDetectorUsers::registerDisconnectChannelsCallback | +( | +int(*)(void *) | +func, | +|
| + | + | void * | +arg | + |
| + | ) | ++ |
+register callback to disconnect the epics channels +
+
| func | function to disconnect the epics channels |
| void slsDetectorUsers::registerGetI0Callback | +( | +double(*)(int, void *) | +func, | +|
| + | + | void * | +arg | + |
| + | ) | ++ |
+register calbback reading to I0 +
+
| func | function for reading the I0 (called with parameter 0 before the acquisition, 1 after and the return value used as I0) |
| void slsDetectorUsers::registerGetPositionCallback | +( | +double(*)(void *) | +func, | +|
| + | + | void * | +arg | + |
| + | ) | ++ |
+register calbback for reading detector position +
+
| func | function for reading the detector position |
| void slsDetectorUsers::registerGoToPositionCallback | +( | +int(*)(double, void *) | +func, | +|
| + | + | void * | +arg | + |
| + | ) | ++ |
+register callback for moving the detector +
+
| func | function for moving the detector |
| void slsDetectorUsers::registerGoToPositionNoWaitCallback | +( | +int(*)(double, void *) | +func, | +|
| + | + | void * | +arg | + |
| + | ) | ++ |
+register callback for moving the detector without waiting +
+
| 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 +
+
| userCallback | function for postprocessing and saving the data - p is the pointer to the data, n is the number of channels |
| int slsDetectorUsers::retrieveDetectorSetup | +( | +string const | +fname | +) | ++ |
+Loads the detector setup from file. +
+
| fname | file to read from |
+Referenced by main(). +
| static string slsDetectorUsers::runStatusType | +( | +int | +s | +) | + [inline, static] |
+
+returns string from run status index +
+
| s | run status index |
+Definition at line 557 of file slsDetectorUsers.h. +
+Referenced by main(). +
| int slsDetectorUsers::setBeamEnergy | +( | +int | +e_eV | +) | ++ |
+set beam energy -- only for dectris! +
+
| e_eV | beam in eV |
| int slsDetectorUsers::setBitDepth | +( | +int | + i = -1 |
+ ) | ++ |
+set/get dynamic range +
+
| i | dynamic range (-1 get) |
| double slsDetectorUsers::setDelayAfterTrigger | +( | +double | + t = -1, |
+ |
| + | + | bool | + inseconds = false | + |
| + | ) | ++ |
+set/get delay after trigger +
+
| t | time in ns (-1 gets) | |
| inseconds | true if the value is in s, else ns |
| int slsDetectorUsers::setDetectorSize | +( | +int | + x0 = -1, |
+ |
| + | + | int | + y0 = -1, |
+ |
| + | + | int | + nx = -1, |
+ |
| + | + | int | + ny = -1 | + |
| + | ) | ++ |
+sets the detector size +
+
| x0 | horizontal position origin in channel number (-1 unchanged) | |
| y0 | vertical position origin in channel number (-1 unchanged) | |
| nx | number of channels in horiziontal (-1 unchanged) | |
| ny | number of channels in vertical (-1 unchanged) |
+Referenced by main(). +
| double slsDetectorUsers::setExposurePeriod | +( | +double | + t = -1, |
+ |
| + | + | bool | + inseconds = false | + |
| + | ) | ++ |
+set/get exposure period +
+
| t | time in ns (-1 gets) | |
| inseconds | true if the value is in s, else ns |
+Referenced by main(). +
| double slsDetectorUsers::setExposureTime | +( | +double | + t = -1, |
+ |
| + | + | bool | + inseconds = false | + |
| + | ) | ++ |
+set/get exposure time value +
+
| t | time in sn (-1 gets) | |
| inseconds | true if the value is in s, else ns |
+Referenced by main(). +
| int slsDetectorUsers::setFileIndex | +( | +int | +i | +) | ++ |
+sets the default output file index +
+
| i | file index |
| string slsDetectorUsers::setFileName | +( | +string | +s | +) | ++ |
+sets the default output files path +
+
| s | file name |
| string slsDetectorUsers::setFilePath | +( | +string | +s | +) | ++ |
+sets the default output files path +
+
| s | file path |
| string slsDetectorUsers::setFlatFieldCorrectionDir | +( | +string | +dir | +) | ++ |
+set flat field corrections file directory +
+
| dir | flat field correction file directory |
| int slsDetectorUsers::setFlatFieldCorrectionFile | +( | +string | + fname = "" |
+ ) | ++ |
+set flat field correction file +
+
| fname | name of the flat field file (or "" if disable) |
| int64_t slsDetectorUsers::setNumberOfCycles | +( | +int64_t | + t = -1 |
+ ) | ++ |
+set/get number of cycles i.e. number of triggers +
+
| t | number of frames (-1 gets) |
| int64_t slsDetectorUsers::setNumberOfFrames | +( | +int64_t | + t = -1 |
+ ) | ++ |
+set/get number of frames i.e. number of exposure per trigger +
+
| t | number of frames (-1 gets) |
+Referenced by main(). +
| int64_t slsDetectorUsers::setNumberOfGates | +( | +int64_t | + t = -1 |
+ ) | ++ |
+set/get number of gates +
+
| t | number of gates (-1 gets) |
| int slsDetectorUsers::setOnline | +( | +int const | + online = -1 |
+ ) | ++ |
+sets the onlineFlag +
+
| 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 |
+Referenced by main(). +
| int slsDetectorUsers::setPositions | +( | +int | +nPos, | +|
| + | + | double * | +pos | + |
| + | ) | ++ |
+set positions for the acquisition +
+
| nPos | number of positions | |
| pos | array with the encoder positions |
| int slsDetectorUsers::setReceiverMode | +( | +int | + n = -1 |
+ ) | ++ |
+sets the mode by which gui requests data from receiver +
+
| n | is 0 for random requests for fast acquisitions and greater than 0 for nth read requests |
| int slsDetectorUsers::setSettings | +( | +int | + isettings = -1 |
+ ) | ++ |
+set detector settings +
+
| isettings | settings index (-1 gets) |
+Referenced by main(). +
| int slsDetectorUsers::setThresholdEnergy | +( | +int | +e_eV | +) | ++ |
+set threshold energy +
+
| e_eV | threshold in eV |
| int slsDetectorUsers::setTimingMode | +( | +int | + pol = -1 |
+ ) | ++ |
+set/get the external communication mode +
+
| pol | value to be set |
| void slsDetectorUsers::startMeasurement | +( | ++ | ) | ++ |
| int slsDetectorUsers::stopMeasurement | +( | ++ | ) | ++ |
+stop measurement +
+
+
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers-members.html b/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers-members.html
new file mode 100644
index 000000000..87b08ce16
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers-members.html
@@ -0,0 +1,35 @@
+
+
+| closeFile(int p) | slsReceiverUsers | |
| getReceiverVersion() | slsReceiverUsers | |
| receiver | slsReceiverUsers | [static] |
| registerCallBackAcquisitionFinished(void(*func)(int nf, void *), void *arg) | slsReceiverUsers | |
| registerCallBackRawDataReady(void(*func)(int framenumber, char *datapointer, int datasize, FILE *filedescriptor, char *guidatapointer, void *), void *arg) | slsReceiverUsers | |
| registerCallBackStartAcquisition(int(*func)(char *filepath, char *filename, int fileindex, int datasize, void *), void *arg) | slsReceiverUsers | |
| slsReceiverUsers(int argc, char *argv[], int &success) | slsReceiverUsers | |
| start() | slsReceiverUsers | |
| stop() | slsReceiverUsers | |
| ~slsReceiverUsers() | slsReceiverUsers |
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers.html b/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers.html
new file mode 100644
index 000000000..b8db2c7d7
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers.html
@@ -0,0 +1,332 @@
+
+
+
+#include <slsReceiverUsers.h>
+
Public Member Functions | |
| slsReceiverUsers (int argc, char *argv[], int &success) | |
| ~slsReceiverUsers () | |
| void | closeFile (int p) |
| int | start () |
| void | stop () |
| int64_t | getReceiverVersion () |
| void | registerCallBackStartAcquisition (int(*func)(char *filepath, char *filename, int fileindex, int datasize, void *), void *arg) |
| void | registerCallBackAcquisitionFinished (void(*func)(int nf, void *), void *arg) |
| void | registerCallBackRawDataReady (void(*func)(int framenumber, char *datapointer, int datasize, FILE *filedescriptor, char *guidatapointer, void *), void *arg) |
Static Public Attributes | |
| static slsReceiverTCPIPInterface * | receiver |
+slsReceiverUsers is a class that can be instantiated in the users software to receive the data from the detectors. Callbacks can be defined for processing and/or saving data +
+ +
+Definition at line 21 of file slsReceiverUsers.h.
| slsReceiverUsers::slsReceiverUsers | +( | +int | +argc, | +|
| + | + | char * | +argv[], | +|
| + | + | int & | +success | + |
| + | ) | ++ |
+Constructor reads config file, creates socket, assigns function table
| argc | from command line | |
| argv | from command line | |
| succecc | socket creation was successfull |
| slsReceiverUsers::~slsReceiverUsers | +( | ++ | ) | ++ |
+Destructor +
+
| void slsReceiverUsers::closeFile | +( | +int | +p | +) | ++ |
+Close File and exits receiver server +
| int64_t slsReceiverUsers::getReceiverVersion | +( | ++ | ) | ++ |
+get get Receiver Version
| void slsReceiverUsers::registerCallBackAcquisitionFinished | +( | +void(*)(int nf, void *) | +func, | +|
| + | + | void * | +arg | + |
| + | ) | ++ |
+register callback for end of acquisition
| func | end of acquisition callback. Argument nf is total frames caught |
| void slsReceiverUsers::registerCallBackRawDataReady | +( | +void(*)(int framenumber, char *datapointer, int datasize, FILE *filedescriptor, char *guidatapointer, void *) | +func, | +|
| + | + | void * | +arg | + |
| + | ) | ++ |
+register callback to be called when data are available (to process and/or save the data).
| func | raw data ready callback. arguments are framenum datapointer datasize file descriptor guidatapointer (NULL, no data required) |
| void slsReceiverUsers::registerCallBackStartAcquisition | +( | +int(*)(char *filepath, char *filename, int fileindex, int datasize, void *) | +func, | +|
| + | + | void * | +arg | + |
| + | ) | ++ |
+register calbback for starting the acquisition
| func | callback to be called when starting the acquisition. Its arguments are filepath filename fileindex data size |
| int slsReceiverUsers::start | +( | ++ | ) | ++ |
+starts listening on the TCP port for client comminication
+Referenced by main(). +
| void slsReceiverUsers::stop | +( | ++ | ) | ++ |
+stops listening to the TCP & UDP port and exit receiver program +
+Referenced by main(). +
+
slsReceiverTCPIPInterface* slsReceiverUsers::receiver [static] |
+
+ +
+Definition at line 87 of file slsReceiverUsers.h. +
+
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h-source.html b/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h-source.html
new file mode 100644
index 000000000..735528619
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h-source.html
@@ -0,0 +1,46 @@
+
+
+00001 +00002 #include <unistd.h> +00003 #include <cstring> +00004 #ifndef DETECTOR_DATA_H +00005 #define DETECTOR_DATA_H +00006 +00009 class detectorData { +00010 public: +00020 detectorData(double *val=NULL, double *err=NULL, double *ang=NULL, double p_ind=-1, const char *fname="", int np=-1, int ny=1) : values(val), errors(err), angles(ang), progressIndex(p_ind), npoints(np), npy(ny){strcpy(fileName,fname);}; +00025 ~detectorData() {if (values) delete [] values; if (errors) delete [] errors; if (angles) delete [] angles;}; +00026 //private: +00027 double *values; +00028 double *errors; +00029 double *angles; +00030 double progressIndex; +00031 char fileName[1000]; +00032 int npoints; +00033 int npy; +00034 }; +00035 +00036 +00037 #endif +
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h.html b/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h.html
new file mode 100644
index 000000000..7f295694e
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h.html
@@ -0,0 +1,35 @@
+
+
+#include <unistd.h>#include <cstring>+Go to the source code of this file.
Classes | |
| class | detectorData |
| data structure to hold the detector data after postprocessing (e.g. to plot, store in a root tree etc.) More... | |
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/doxygen.css b/manual/manual-api/slsDetectorUsersDocs/html/doxygen.css
new file mode 100644
index 000000000..5d583694e
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/doxygen.css
@@ -0,0 +1,358 @@
+BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
+ font-family: Geneva, Arial, Helvetica, sans-serif;
+}
+BODY,TD {
+ font-size: 90%;
+}
+H1 {
+ text-align: center;
+ font-size: 160%;
+}
+H2 {
+ font-size: 120%;
+}
+H3 {
+ font-size: 100%;
+}
+CAPTION { font-weight: bold }
+DIV.qindex {
+ width: 100%;
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ padding: 2px;
+ line-height: 140%;
+}
+DIV.nav {
+ width: 100%;
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ padding: 2px;
+ line-height: 140%;
+}
+DIV.navtab {
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+TD.navtab {
+ font-size: 70%;
+}
+A.qindex {
+ text-decoration: none;
+ font-weight: bold;
+ color: #1A419D;
+}
+A.qindex:visited {
+ text-decoration: none;
+ font-weight: bold;
+ color: #1A419D
+}
+A.qindex:hover {
+ text-decoration: none;
+ background-color: #ddddff;
+}
+A.qindexHL {
+ text-decoration: none;
+ font-weight: bold;
+ background-color: #6666cc;
+ color: #ffffff;
+ border: 1px double #9295C2;
+}
+A.qindexHL:hover {
+ text-decoration: none;
+ background-color: #6666cc;
+ color: #ffffff;
+}
+A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
+A.el { text-decoration: none; font-weight: bold }
+A.elRef { font-weight: bold }
+A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
+A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
+A.codeRef:link { font-weight: normal; color: #0000FF}
+A.codeRef:visited { font-weight: normal; color: #0000FF}
+A:hover { text-decoration: none; background-color: #f2f2ff }
+DL.el { margin-left: -1cm }
+.fragment {
+ font-family: monospace, fixed;
+ font-size: 95%;
+}
+PRE.fragment {
+ border: 1px solid #CCCCCC;
+ background-color: #f5f5f5;
+ margin-top: 4px;
+ margin-bottom: 4px;
+ margin-left: 2px;
+ margin-right: 8px;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+}
+DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
+
+DIV.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ margin-bottom: 6px;
+ font-weight: bold;
+}
+DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
+BODY {
+ background: white;
+ color: black;
+ margin-right: 20px;
+ margin-left: 20px;
+}
+TD.indexkey {
+ background-color: #e8eef2;
+ font-weight: bold;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 2px;
+ margin-bottom : 2px;
+ border: 1px solid #CCCCCC;
+}
+TD.indexvalue {
+ background-color: #e8eef2;
+ font-style: italic;
+ padding-right : 10px;
+ padding-top : 2px;
+ padding-left : 10px;
+ padding-bottom : 2px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 2px;
+ margin-bottom : 2px;
+ border: 1px solid #CCCCCC;
+}
+TR.memlist {
+ background-color: #f0f0f0;
+}
+P.formulaDsp { text-align: center; }
+IMG.formulaDsp { }
+IMG.formulaInl { vertical-align: middle; }
+SPAN.keyword { color: #008000 }
+SPAN.keywordtype { color: #604020 }
+SPAN.keywordflow { color: #e08000 }
+SPAN.comment { color: #800000 }
+SPAN.preprocessor { color: #806020 }
+SPAN.stringliteral { color: #002080 }
+SPAN.charliteral { color: #008080 }
+.mdescLeft {
+ padding: 0px 8px 4px 8px;
+ font-size: 80%;
+ font-style: italic;
+ background-color: #FAFAFA;
+ border-top: 1px none #E0E0E0;
+ border-right: 1px none #E0E0E0;
+ border-bottom: 1px none #E0E0E0;
+ border-left: 1px none #E0E0E0;
+ margin: 0px;
+}
+.mdescRight {
+ padding: 0px 8px 4px 8px;
+ font-size: 80%;
+ font-style: italic;
+ background-color: #FAFAFA;
+ border-top: 1px none #E0E0E0;
+ border-right: 1px none #E0E0E0;
+ border-bottom: 1px none #E0E0E0;
+ border-left: 1px none #E0E0E0;
+ margin: 0px;
+}
+.memItemLeft {
+ padding: 1px 0px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: solid;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 80%;
+}
+.memItemRight {
+ padding: 1px 8px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: solid;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 80%;
+}
+.memTemplItemLeft {
+ padding: 1px 0px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: none;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 80%;
+}
+.memTemplItemRight {
+ padding: 1px 8px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: none;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ background-color: #FAFAFA;
+ font-size: 80%;
+}
+.memTemplParams {
+ padding: 1px 0px 0px 8px;
+ margin: 4px;
+ border-top-width: 1px;
+ border-right-width: 1px;
+ border-bottom-width: 1px;
+ border-left-width: 1px;
+ border-top-color: #E0E0E0;
+ border-right-color: #E0E0E0;
+ border-bottom-color: #E0E0E0;
+ border-left-color: #E0E0E0;
+ border-top-style: solid;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+ color: #606060;
+ background-color: #FAFAFA;
+ font-size: 80%;
+}
+.search { color: #003399;
+ font-weight: bold;
+}
+FORM.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+INPUT.search { font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+TD.tiny { font-size: 75%;
+}
+a {
+ color: #1A41A8;
+}
+a:visited {
+ color: #2A3798;
+}
+.dirtab { padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #84b0c7;
+}
+TH.dirtab { background: #e8eef2;
+ font-weight: bold;
+}
+HR { height: 1px;
+ border: none;
+ border-top: 1px solid black;
+}
+
+/* Style for detailed member documentation */
+.memtemplate {
+ font-size: 80%;
+ color: #606060;
+ font-weight: normal;
+}
+.memnav {
+ background-color: #e8eef2;
+ border: 1px solid #84b0c7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+.memitem {
+ padding: 4px;
+ background-color: #eef3f5;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #dedeee;
+ -moz-border-radius: 8px 8px 8px 8px;
+}
+.memname {
+ white-space: nowrap;
+ font-weight: bold;
+}
+.memdoc{
+ padding-left: 10px;
+}
+.memproto {
+ background-color: #d5e1e8;
+ width: 100%;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #84b0c7;
+ font-weight: bold;
+ -moz-border-radius: 8px 8px 8px 8px;
+}
+.paramkey {
+ text-align: right;
+}
+.paramtype {
+ white-space: nowrap;
+}
+.paramname {
+ color: #602020;
+ font-style: italic;
+}
+/* End Styling for detailed member documentation */
+
+/* for the tree view */
+.ftvtree {
+ font-family: sans-serif;
+ margin:0.5em;
+}
+.directory { font-size: 9pt; font-weight: bold; }
+.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
+.directory > h3 { margin-top: 0; }
+.directory p { margin: 0px; white-space: nowrap; }
+.directory div { display: none; margin: 0px; }
+.directory img { vertical-align: -30%; }
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/doxygen.png b/manual/manual-api/slsDetectorUsersDocs/html/doxygen.png
new file mode 100644
index 000000000..f0a274bba
Binary files /dev/null and b/manual/manual-api/slsDetectorUsersDocs/html/doxygen.png differ
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/files.html b/manual/manual-api/slsDetectorUsersDocs/html/files.html
new file mode 100644
index 000000000..e515abe87
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/files.html
@@ -0,0 +1,31 @@
+
+
+| detectorData.h [code] | |
| mainClient.cpp [code] | |
| mainReceiver.cpp [code] | |
| slsDetectorUsers.h [code] | |
| slsReceiverUsers.h [code] |
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/functions.html b/manual/manual-api/slsDetectorUsersDocs/html/functions.html
new file mode 100644
index 000000000..9eba86848
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/functions.html
@@ -0,0 +1,165 @@
+
+
++Here is a list of all class members with links to the classes they belong to: +
+
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/functions_func.html b/manual/manual-api/slsDetectorUsersDocs/html/functions_func.html
new file mode 100644
index 000000000..02750ac7a
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/functions_func.html
@@ -0,0 +1,151 @@
+
+
++ +
+
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/functions_vars.html b/manual/manual-api/slsDetectorUsersDocs/html/functions_vars.html
new file mode 100644
index 000000000..f54722cbb
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/functions_vars.html
@@ -0,0 +1,43 @@
+
+
++
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/globals.html b/manual/manual-api/slsDetectorUsersDocs/html/globals.html
new file mode 100644
index 000000000..add1a9719
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/globals.html
@@ -0,0 +1,36 @@
+
+
++
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/globals_func.html b/manual/manual-api/slsDetectorUsersDocs/html/globals_func.html
new file mode 100644
index 000000000..1e6e34efc
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/globals_func.html
@@ -0,0 +1,36 @@
+
+
++
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/index.html b/manual/manual-api/slsDetectorUsersDocs/html/index.html
new file mode 100644
index 000000000..709537162
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/index.html
@@ -0,0 +1,49 @@
+
+
++
+
+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:
+slsReceiverUsers is a class to receive the data for detectors with external data receiver (e.g. GOTTHARD). Callbacks can be registered to process the data or save them in specific formats.
+detectorData is a structure containing the data and additional information which is used to return the data e.g. to the GUI for displaying them.
+You can find examples of how this classes can be instatiated in mainClient.cpp and mainReceiver.cpp
+
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp-source.html b/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp-source.html
new file mode 100644
index 000000000..1d3567347
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp-source.html
@@ -0,0 +1,97 @@
+
+
+00001 +00013 #include <iostream> +00014 #include "slsDetectorUsers.h" +00015 #include "detectorData.h" +00016 +00017 +00019 int dataCallback(detectorData *pData, int iframe, void *pArg) +00020 { +00021 std::cout << "dataCallback: " << pData->npoints << " " << pData->npy << "Frame number: " << iframe << std::endl; +00022 } +00023 +00024 +00026 int main(int argc, char *argv[]) { +00027 int id=0; +00028 int status; +00030 if (argc>=3) +00031 id=atoi(argv[2]); +00032 +00033 +00034 +00036 slsDetectorUsers *pDetector = new slsDetectorUsers (id); +00037 +00038 +00040 if (argc>=2) +00041 pDetector->readConfigurationFile(argv[1]); +00042 +00044 pDetector->setOnline(1); +00045 +00047 if (argc>=3) +00048 pDetector->retrieveDetectorSetup( argv[2]); +00049 else{ +00051 int minX, minY=0, sizeX, sizeY=1; +00052 pDetector->getDetectorSize(minX, minY, sizeX, sizeY); +00053 std::cout << "X: Start=" << minX << ", Size= " << sizeX << std::endl; +00054 std::cout << "Y: Start=" << minY << ", Size= " << sizeY << std::endl; +00055 pDetector->setDetectorSize(0,0,7680,1); +00056 std::cout << pDetector->getDetectorDeveloper() << std::endl; +00057 +00059 pDetector->registerDataCallback(&dataCallback, NULL); +00060 +00062 status = pDetector->getDetectorStatus(); +00063 if (status != 0){ +00064 std::cout << "Detector not ready: " << slsDetectorUsers::runStatusType(status) << std::endl; +00065 return 1; +00066 } +00067 +00069 std::cout << "settings: " << slsDetectorUsers::getDetectorSettings(pDetector->setSettings()) << std::endl; +00070 pDetector->setSettings(slsDetectorUsers::getDetectorSettings("veryhighgain")); +00071 std::cout << "settings: " << slsDetectorUsers::getDetectorSettings(pDetector->setSettings()) << std::endl; +00072 +00074 pDetector->setExposureTime(10000000); +00075 +00077 pDetector->setExposurePeriod(100000000); +00078 +00080 pDetector->setNumberOfFrames(30); +00081 } +00083 pDetector->startMeasurement(); +00084 +00085 while (1) { +00086 usleep(100000); +00087 status = pDetector->getDetectorStatus(); +00088 if (status == 0 || status == 1|| status == 3) +00089 break; +00090 } +00091 +00092 char *temp[] = {"receiver", NULL}; +00094 std::cout << "answer to a get command:" << pDetector->getCommand(1,temp,0) << std::endl; +00095 +00096 delete pDetector; +00097 +00098 return 0; +00099 } +00100 +
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp.html b/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp.html
new file mode 100644
index 000000000..7e0d1ea4b
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp.html
@@ -0,0 +1,132 @@
+
+
+#include <iostream>#include "slsDetectorUsers.h"#include "detectorData.h"+Go to the source code of this file.
Functions | |
| int | dataCallback (detectorData *pData, int iframe, void *pArg) |
| int | main (int argc, char *argv[]) |
+gcc mainClient.cpp -L lib -l SlsDetector -lm -lpthread
+where lib is the location of libSlsDetector.so +
+Definition in file mainClient.cpp.
| int dataCallback | +( | +detectorData * | +pData, | +|
| + | + | int | +iframe, | +|
| + | + | void * | +pArg | + |
| + | ) | ++ |
+Definition of the data callback which simply prints out the number of points received and teh frame number +
+Definition at line 19 of file mainClient.cpp. +
+References detectorData::npoints, and detectorData::npy. +
+Referenced by main(). +
| int main | +( | +int | +argc, | +|
| + | + | char * | +argv[] | + |
| + | ) | ++ |
+example of a main program using the slsDetectorUsers class +
+if specified, argv[2] is used as detector ID (default is 0)
+slsDetectorUsers is instantiated
+if specified, argv[1] is used as detector config file (necessary at least the first time it is called to properly configure advanced settings in the shared memory)
+Setting the detector online (should be by default
+Load setup file if argv[2] specified
+defining the detector size
+registering data callback
+checking detector status and exiting if not idle
+checking and setting detector settings
+Settings exposure time to 10ms
+Settings exposure time to 100ms
+Settingsnumber of frames to 30
+start measurement
+returning when acquisition is finished or data are avilable +
+Definition at line 26 of file mainClient.cpp. +
+References dataCallback(), slsDetectorUsers::getCommand(), slsDetectorUsers::getDetectorDeveloper(), slsDetectorUsers::getDetectorSettings(), slsDetectorUsers::getDetectorSize(), slsDetectorUsers::getDetectorStatus(), slsDetectorUsers::readConfigurationFile(), slsDetectorUsers::registerDataCallback(), slsDetectorUsers::retrieveDetectorSetup(), slsDetectorUsers::runStatusType(), slsDetectorUsers::setDetectorSize(), slsDetectorUsers::setExposurePeriod(), slsDetectorUsers::setExposureTime(), slsDetectorUsers::setNumberOfFrames(), slsDetectorUsers::setOnline(), slsDetectorUsers::setSettings(), and slsDetectorUsers::startMeasurement(). +
+
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp-source.html b/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp-source.html
new file mode 100644
index 000000000..0a9de8685
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp-source.html
@@ -0,0 +1,112 @@
+
+
+00001 /* A simple server in the internet domain using TCP +00002 The port number is passed as an argument +00003 */ +00004 +00018 #include "slsReceiverUsers.h" +00019 +00020 +00021 #include <iostream> +00022 using namespace std; +00023 +00024 +00025 int main(int argc, char *argv[]) { +00026 int ret = 0; +00027 +00028 +00029 /* +00030 Instantiate the slsReceieverUsers class +00031 The port number is passed as an argument +00032 */ +00033 slsReceiverUsers *receiver = new slsReceiverUsers(argc, argv, ret); +00034 +00035 /* +00036 return if could not open TCP socket for interfacing to client +00037 */ +00038 if(ret==1) +00039 return -1; +00040 +00041 +00042 /*register callbacks */ +00043 +00044 +00045 /* +00046 callback arguments are +00047 filepath +00048 filename +00049 fileindex +00050 datasize +00051 +00052 return value is +00053 0 raw data ready callback takes care of open,close,write file +00054 1 callback writes file, we have to open, close it +00055 2 we open, close, write file, callback does not do anything +00056 +00057 +00058 registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg); +00059 */ +00060 +00061 //receiver->registerCallBackStartAcquisition(func,arg); +00062 +00063 +00064 /* +00065 callback argument is +00066 total farmes caught +00067 registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg); +00068 */ +00069 +00070 +00071 //receiver->registerCallBackAcquisitionFinished(func,arg); +00072 +00073 +00074 +00075 /* +00076 args to raw data ready callback are +00077 framenum +00078 datapointer +00079 file descriptor +00080 guidatapointer (NULL, no data required) +00081 +00082 NEVER DELETE THE DATA POINTER +00083 REMEMBER THAT THE CALLBACK IS BLOCKING +00084 +00085 registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg); +00086 +00087 */ +00088 +00089 //receiver->registerCallBackRawDataReady(func,arg); +00090 +00091 +00092 /* start receiver to listen for commands from the client (and data from detectors when expected */ +00093 receiver->start(); +00094 +00096 usleep(10000000); +00097 +00099 receiver->stop(); +00100 +00101 return 0; +00102 } +00103 +
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 @@
+
+
+#include "slsReceiverUsers.h"#include <iostream>+Go to the source code of this file.
Functions | |
| int | main (int argc, char *argv[]) |
+gcc mainReceiver.cpp -L lib -l SlsDetector -lm -lpthread
+where lib is the location of libSlsDetector.so +
+Definition in file mainReceiver.cpp.
| int main | +( | +int | +argc, | +|
| + | + | char * | +argv[] | + |
| + | ) | ++ |
+ +
+Definition at line 25 of file mainReceiver.cpp. +
+References slsReceiverUsers::start(), and slsReceiverUsers::stop(). +
+
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/namespaces.html b/manual/manual-api/slsDetectorUsersDocs/html/namespaces.html
new file mode 100644
index 000000000..356cca187
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/namespaces.html
@@ -0,0 +1,22 @@
+
+
+| std |
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/namespacestd.html b/manual/manual-api/slsDetectorUsersDocs/html/namespacestd.html
new file mode 100644
index 000000000..1bdaa268c
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/namespacestd.html
@@ -0,0 +1,24 @@
+
+
++
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h-source.html b/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h-source.html
new file mode 100644
index 000000000..c1cac7d20
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h-source.html
@@ -0,0 +1,258 @@
+
+
+00001 #ifndef SLS_DETECTOR_USERS_H +00002 #define SLS_DETECTOR_USERS_H +00003 +00004 +00005 +00016 class detectorData; +00017 class multiSlsDetector; +00018 class multiSlsDetectorCommand; +00019 +00020 +00021 #include <stdint.h> +00022 #include <string> +00023 +00024 +00025 using namespace std; +00026 +00027 +00028 +00029 /* +00030 \mainpage +00031 <CENTER><H1>API for SLS detectors data acquisition</H1></CENTER> +00032 <HR> +00033 */ +00084 class slsDetectorUsers +00085 { +00086 +00087 public: +00088 +00090 slsDetectorUsers(int id=0); +00091 +00092 +00094 virtual ~slsDetectorUsers(); +00095 +00096 +00097 +00102 string getDetectorDeveloper(); +00103 +00104 +00105 +00110 int setOnline(int const online=-1); +00111 +00116 void startMeasurement(); +00117 +00122 int stopMeasurement(); +00123 +00128 int getDetectorStatus(); +00129 +00133 string getFilePath(); +00134 +00140 string setFilePath(string s); +00141 +00146 string getFileName(); +00147 +00154 string setFileName(string s); +00155 +00160 int getFileIndex(); +00161 +00167 int setFileIndex(int i); +00168 +00173 string getFlatFieldCorrectionDir(); +00174 +00180 string setFlatFieldCorrectionDir(string dir); +00181 +00186 string getFlatFieldCorrectionFile(); +00187 +00193 int setFlatFieldCorrectionFile(string fname=""); +00194 +00195 +00196 +00202 int enableFlatFieldCorrection(int i=-1); +00203 +00209 int enableCountRateCorrection(int i=-1); +00210 +00216 int enablePixelMaskCorrection(int i=-1); +00217 +00223 int enableAngularConversion(int i=-1); +00224 +00227 int enableWriteToFile(int i=-1); +00228 +00235 int setPositions(int nPos, double *pos); +00236 +00242 int getPositions(double *pos=NULL); +00243 +00252 int setDetectorSize(int x0=-1, int y0=-1, int nx=-1, int ny=-1); +00253 +00254 +00263 int getDetectorSize(int &x0, int &y0, int &nx, int &ny); +00272 int getMaximumDetectorSize(int &nx, int &ny); +00273 +00274 +00280 int setBitDepth(int i=-1); +00281 +00282 +00283 +00289 int setSettings(int isettings=-1); +00290 +00295 int getThresholdEnergy(); +00296 +00297 +00303 int setThresholdEnergy(int e_eV); +00304 +00309 int getBeamEnergy(); +00310 +00311 +00317 int setBeamEnergy(int e_eV); +00318 +00326 double setExposureTime(double t=-1, bool inseconds=false); +00327 +00334 double setExposurePeriod(double t=-1, bool inseconds=false); +00335 +00342 double setDelayAfterTrigger(double t=-1, bool inseconds=false); +00343 +00349 int64_t setNumberOfGates(int64_t t=-1); +00350 +00356 int64_t setNumberOfFrames(int64_t t=-1); +00357 +00363 int64_t setNumberOfCycles(int64_t t=-1); +00364 +00365 +00371 int setTimingMode(int pol=-1); +00372 +00378 int readConfigurationFile(string const fname); +00379 +00380 +00387 int dumpDetectorSetup(string const fname); +00394 int retrieveDetectorSetup(string const fname); +00395 +00400 string getDetectorType(); +00401 +00407 int setReceiverMode(int n=-1); +00408 +00414 void registerDataCallback(int( *userCallback)(detectorData* d, int f, void*), void *pArg); +00415 +00421 void registerRawDataCallback(int( *userCallback)(double* p, int n, void*), void *pArg); +00422 +00428 virtual void initDataset(int refresh); +00429 +00430 +00441 virtual void addFrame(double *data, double pos, double i0, double t, string fname, double var); +00442 +00451 virtual void finalizeDataset(double *a, double *v, double *e, int &np); +00452 +00457 int64_t getModuleFirmwareVersion(); +00458 +00464 int64_t getModuleSerialNumber(int imod=-1); +00465 +00470 int64_t getDetectorFirmwareVersion(); +00471 +00476 int64_t getDetectorSerialNumber(); +00477 +00482 int64_t getDetectorSoftwareVersion(); +00483 +00488 int64_t getThisSoftwareVersion(); +00489 +00495 void registerAcquisitionFinishedCallback(int( *func)(double,int, void*), void *pArg); +00496 +00502 void registerGetPositionCallback( double (*func)(void*),void *arg); +00507 void registerConnectChannelsCallback( int (*func)(void*),void *arg); +00512 void registerDisconnectChannelsCallback( int (*func)(void*),void *arg); +00517 void registerGoToPositionCallback( int (*func)(double,void*),void *arg); +00522 void registerGoToPositionNoWaitCallback( int (*func)(double,void*),void *arg); +00527 void registerGetI0Callback( double (*func)(int,void*),void *arg); +00528 +00536 string putCommand(int narg, char *args[], int pos=-1); +00537 +00545 string getCommand(int narg, char *args[], int pos=-1); +00546 +00547 /************************************************************************ +00548 +00549 STATIC FUNCTIONS +00550 +00551 *********************************************************************/ +00552 +00557 static string runStatusType(int s){ \ +00558 switch (s) { \ +00559 case 0: return string("idle"); \ +00560 case 1: return string("error"); \ +00561 case 2: return string("waiting"); \ +00562 case 3: return string("finished"); \ +00563 case 4: return string("data"); \ +00564 case 5: return string("running"); \ +00565 default: return string("unknown"); \ +00566 }}; +00567 +00568 +00569 +00575 static int getDetectorSettings(string s){ \ +00576 if (s=="standard") return 0; \ +00577 if (s=="fast") return 1; \ +00578 if (s=="highgain") return 2; \ +00579 if (s=="dynamicgain") return 3; \ +00580 if (s=="lowgain") return 4; \ +00581 if (s=="mediumgain") return 5; \ +00582 if (s=="veryhighgain") return 6; \ +00583 return -1; }; +00584 +00589 static string getDetectorSettings(int s){\ +00590 switch(s) { \ +00591 case 0: return string("standard");\ +00592 case 1: return string("fast");\ +00593 case 2: return string("highgain");\ +00594 case 3: return string("dynamicgain"); \ +00595 case 4: return string("lowgain"); \ +00596 case 5: return string("mediumgain"); \ +00597 case 6: return string("veryhighgain"); \ +00598 default: return string("undefined"); \ +00599 }}; +00600 +00601 +00602 +00609 static string getTimingMode(int f){ \ +00610 switch(f) { \ +00611 case 0: return string( "auto"); \ +00612 case 1: return string("trigger"); \ +00613 case 2: return string("ro_trigger"); \ +00614 case 3: return string("gating"); \ +00615 case 4: return string("triggered_gating"); \ +00616 default: return string( "unknown"); \ +00617 } }; +00618 +00625 static int getTimingMode(string s){ \ +00626 if (s== "auto") return 0; \ +00627 if (s== "trigger") return 1; \ +00628 if (s== "ro_trigger") return 2; \ +00629 if (s== "gating") return 3; \ +00630 if (s== "triggered_gating") return 4; \ +00631 return -1; }; +00632 +00633 private: +00634 multiSlsDetector *myDetector; +00635 multiSlsDetectorCommand *myCmd; +00636 }; +00637 +00638 #endif +
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h.html b/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h.html
new file mode 100644
index 000000000..504ae97e4
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h.html
@@ -0,0 +1,38 @@
+
+
+#include <stdint.h>#include <string>+Go to the source code of this file.
Namespaces | |
| namespace | std |
Classes | |
| class | slsDetectorUsers |
| Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc. More... | |
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h-source.html b/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h-source.html
new file mode 100644
index 000000000..519c48057
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h-source.html
@@ -0,0 +1,64 @@
+
+
+00001 +00002 #ifndef SLS_RECEIVER_USERS_H +00003 #define SLS_RECEIVER_USERS_H +00004 +00005 #include <stdio.h> +00006 #include <stdint.h> +00007 +00008 class slsReceiverTCPIPInterface; +00009 +00021 class slsReceiverUsers { +00022 +00023 public: +00031 slsReceiverUsers(int argc, char *argv[], int &success); +00032 +00033 +00035 ~slsReceiverUsers(); +00036 +00038 void closeFile(int p); +00039 +00044 int start(); +00045 +00047 void stop(); +00048 +00053 int64_t getReceiverVersion(); +00054 +00064 void registerCallBackStartAcquisition(int (*func)(char* filepath, char* filename,int fileindex, int datasize, void*),void *arg); +00065 +00066 +00074 void registerCallBackAcquisitionFinished(void (*func)(int nf, void*),void *arg); +00075 +00076 +00077 +00084 void registerCallBackRawDataReady(void (*func)(int framenumber, char* datapointer, int datasize, FILE* filedescriptor, char* guidatapointer, void*),void *arg); +00085 +00086 // made static to close thread files with ctrl+c +00087 static slsReceiverTCPIPInterface* receiver; +00088 }; +00089 +00090 +00091 #endif +
1.4.7
+
+
diff --git a/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h.html b/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h.html
new file mode 100644
index 000000000..ed81320a5
--- /dev/null
+++ b/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h.html
@@ -0,0 +1,35 @@
+
+
+#include <stdio.h>#include <stdint.h>+Go to the source code of this file.
Classes | |
| class | slsReceiverUsers |
| Class for implementing the SLS data receiver in the users application. Callbacks can be defined for processing and/or saving data. More... | |
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}