From 4677f1943784d25ded0fdfda9b1695ac6da99ef7 Mon Sep 17 00:00:00 2001 From: Maliakal Dhanya Date: Mon, 26 May 2014 17:07:55 +0200 Subject: [PATCH] separate receiver, and updated docs --- manual/manual-api/Makefile | 2 +- manual/manual-api/detReceiver | Bin 7874 -> 7192 bytes .../slsDetectorUsersDocs/html/annotated.html | 29 + .../html/classdetectorData-members.html | 34 + .../html/classdetectorData.html | 316 +++ .../html/classslsDetectorUsers-members.html | 95 + .../html/classslsDetectorUsers.html | 2372 +++++++++++++++++ .../html/classslsReceiverUsers-members.html | 35 + .../html/classslsReceiverUsers.html | 332 +++ .../html/detectorData_8h-source.html | 46 + .../html/detectorData_8h.html | 35 + .../slsDetectorUsersDocs/html/doxygen.css | 358 +++ .../slsDetectorUsersDocs/html/doxygen.png | Bin 0 -> 1281 bytes .../slsDetectorUsersDocs/html/files.html | 31 + .../slsDetectorUsersDocs/html/functions.html | 165 ++ .../html/functions_func.html | 151 ++ .../html/functions_vars.html | 43 + .../slsDetectorUsersDocs/html/globals.html | 36 + .../html/globals_func.html | 36 + .../slsDetectorUsersDocs/html/index.html | 49 + .../html/mainClient_8cpp-source.html | 97 + .../html/mainClient_8cpp.html | 132 + .../html/mainReceiver_8cpp-source.html | 112 + .../html/mainReceiver_8cpp.html | 73 + .../slsDetectorUsersDocs/html/namespaces.html | 22 + .../html/namespacestd.html | 24 + .../html/slsDetectorUsers_8h-source.html | 258 ++ .../html/slsDetectorUsers_8h.html | 38 + .../html/slsReceiverUsers_8h-source.html | 64 + .../html/slsReceiverUsers_8h.html | 35 + .../slsDetectorUsersDocs/html/tab_b.gif | Bin 0 -> 35 bytes .../slsDetectorUsersDocs/html/tab_l.gif | Bin 0 -> 706 bytes .../slsDetectorUsersDocs/html/tab_r.gif | Bin 0 -> 2585 bytes .../slsDetectorUsersDocs/html/tabs.css | 102 + .../slsDetectorUsersDocs/latex/FreeSans.ttf | Bin 0 -> 22932 bytes .../slsDetectorUsersDocs/latex/Makefile | 17 + .../slsDetectorUsersDocs/latex/annotated.tex | 6 + .../latex/classdetectorData.tex | 171 ++ .../latex/classslsDetectorUsers.tex | 1187 +++++++++ .../latex/classslsReceiverUsers.tex | 164 ++ .../latex/detectorData_8h.tex | 11 + .../slsDetectorUsersDocs/latex/doxygen.sty | 77 + .../slsDetectorUsersDocs/latex/files.tex | 8 + .../slsDetectorUsersDocs/latex/index.tex | 26 + .../latex/mainClient_8cpp.tex | 79 + .../latex/mainReceiver_8cpp.tex | 35 + .../slsDetectorUsersDocs/latex/namespaces.tex | 4 + .../latex/namespacestd.tex | 6 + .../slsDetectorUsersDocs/latex/refman.tex | 57 + .../latex/slsDetectorUsers_8h.tex | 16 + .../latex/slsReceiverUsers_8h.tex | 11 + 51 files changed, 6996 insertions(+), 1 deletion(-) create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/annotated.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/classdetectorData-members.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/classdetectorData.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers-members.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/classslsDetectorUsers.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers-members.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/classslsReceiverUsers.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h-source.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/detectorData_8h.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/doxygen.css create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/doxygen.png create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/files.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/functions.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/functions_func.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/functions_vars.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/globals.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/globals_func.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/index.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp-source.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/mainClient_8cpp.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp-source.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/namespaces.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/namespacestd.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h-source.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h-source.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h.html create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/tab_b.gif create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/tab_l.gif create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/tab_r.gif create mode 100644 manual/manual-api/slsDetectorUsersDocs/html/tabs.css create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/FreeSans.ttf create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/Makefile create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/annotated.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/classdetectorData.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/classslsDetectorUsers.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/classslsReceiverUsers.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/detectorData_8h.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/doxygen.sty create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/files.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/index.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/mainClient_8cpp.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/mainReceiver_8cpp.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/namespaces.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/namespacestd.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/refman.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/slsDetectorUsers_8h.tex create mode 100644 manual/manual-api/slsDetectorUsersDocs/latex/slsReceiverUsers_8h.tex 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 cbc7f3f5e3c3b972a7844c8fe7d316a6f552ee6b..6a3d95a90ed9957b28ffd7a09ef50152f085d932 100755 GIT binary patch delta 3042 zcmZ8jeQaCR6~FKK#eL6lOzb#`DT!@Nl9~!aK^f{;o0_%}Wl(TGsJdk^5< zp*J}`_jm8P_nwb?&V8qr9$Y*a3ykhC%r>P|HncC*-98miid2CSRjrf;=8PRO%qdV7 z1HSJGA}wU!B18587%usok*VV{dE$cm#CP!>4fs zan8eOaN;i7fc7Fd@fZPG0Yv$(L$E_{w5DJ)XE=?tL2RGaU1u= z6#S;m`D0j!>v0-Am;_~8wj%(3wMUarD&jfurnX$WABXwW5nwhAVQBN_h^seks#3~O zuXS)tH6T^-Gb+u!}#~np5odGG0By9h9LPABw%Qws7de{-`tn~ynlQuyMC=b zx(l;o_*t{Tt^+G}LTGw$5FT3BKWP*x-}%(YES$GTW-&ML!Ip~Re=n6v8#~vZ9T{|* zC)~GmCC*Y?mklWd^!i!k@W~l{@5a(gyv;uz*_PP*b_+M`AJ+cNp;B~!Lf-Tf#nTll z3sNwzsxz>DV0cSph|=g-XN)G}u)J?JU$YA9id{JW%*rOSfLjjE3#=fb(}3DbQfsyN z9l2FSWM=;6DZL1@8tw2)+$`2%M3_LY0x8$}6MHT@^HpU0MU?lAxD& z%8|;resQO~3#RXq3zhLohVL(!G{$zzyx`KtG&XZ;>#ZSkKwnuw zuK>oKro%xIPzrPtXgO#ts2lWK(9@v(pg)1$1f2q5q4b2Vd#fhYqiY!%s7_ck*0L`0$-ou*wvpR0^@F85Zh4Ni>!cW!44M~Ml7S(?c{xD^AIAPJK%|Nzn4JZ7p z%I7NNP&gHsM0XMsV@ghk;})O7QF!l|d;>XF>t0JDk(6}+-2*6PL0K9}_?_3ylI}># zkNaw#w`4cEW4jG=EFf>9%ZG9*AfKSiRGJNlUX$`Oe~e05h_3TmR?1p*S!QP{<;j|q z#hA<@SQ&YxCgER#oLUl;_i9qLOv?hhC|TGkDL#W z92V+Fa$2HBXe@Y#moq$7zr1{t7w^mwAaP;=^b)k zUA((|yoP6eA!f_RYlsH3x_r8Z(>t8i?ni^Bu2k!QS)Q5M#NFV@o$hHm!rcqpw^J_E z#c!JNtl}~IFnr$gf`-(75qRz~uK{QC(pn$SUBqs*g1dbI{xUGNAdcWzR^;;ONpx7P zSr0g$1}p|;++YgnDN!(SXd9KdKNd&u&`dEnt=HnZ^AGYXyZKEVG!5f28@APgF=eM~FzL)fy*xo75V`9+`wD$`Db)l P*m##b*SJ}_;$8m-BKMlC literal 7874 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 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 @@ + + +Class List + + + + + + +

Class List

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

detectorData Member List

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

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


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

detectorData Class Reference

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

+#include <detectorData.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

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

Public Attributes

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


Detailed Description

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

+ +

+Definition at line 9 of file detectorData.h.


Constructor & Destructor Documentation

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

+The constructor. +

+

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

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

+References fileName. +

+

+ +

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

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

+ +

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

+References angles, errors, and values. +

+

+


Member Data Documentation

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

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

+ +

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

+Referenced by ~detectorData(). +

+

+ +

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

+pointer to the errors +

+ +

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

+Referenced by ~detectorData(). +

+

+ +

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

+file name +

+ +

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

+Referenced by detectorData(). +

+

+ +

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

+number of points +

+ +

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

+Referenced by dataCallback(). +

+

+ +

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

+dimensions in y coordinate +

+ +

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

+Referenced by dataCallback(). +

+

+ +

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

+file index +

+ +

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

+

+ +

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

+pointer to the data +

+ +

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

+Referenced by ~detectorData(). +

+

+


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

slsDetectorUsers Member List

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

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


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

slsDetectorUsers Class Reference

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

+#include <slsDetectorUsers.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

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

Static Public Member Functions

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


Detailed Description

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

+ +

+Definition at line 84 of file slsDetectorUsers.h.


Constructor & Destructor Documentation

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

+default constructor +

+ +

+

+ +

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

+virtual destructor +

+ +

+

+


Member Function Documentation

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

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

+

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

+ +

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

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

+

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

+ +

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

+enable/disable angular conversion +

+

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

+ +

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

+enable/disable count rate corrections +

+

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

+ +

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

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

+

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

+ +

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

+enable/disable bad channel corrections +

+

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

+ +

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

+Enable write file function included +

+

+ +

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

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

+

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

+ +

+
+ + + + + + + + +
int slsDetectorUsers::getBeamEnergy (  ) 
+
+
+ +

+get beam energy -- only for dectris! +

+

Returns:
current beam energy
+ +
+

+ +

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

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

+

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

+Referenced by main(). +

+

+ +

+
+ + + + + + + + +
string slsDetectorUsers::getDetectorDeveloper (  ) 
+
+
+ +

+useful to define subset of working functions +

+

Returns:
"PSI" or "Dectris"
+ +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + +
int64_t slsDetectorUsers::getDetectorFirmwareVersion (  ) 
+
+
+ +

+get get Detector Firmware Version

Returns:
id
+ +
+

+ +

+
+ + + + + + + + +
int64_t slsDetectorUsers::getDetectorSerialNumber (  ) 
+
+
+ +

+get get Detector Serial Number

Returns:
id
+ +
+

+ +

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

+returns detector settings string from index +

+

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

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

+

+ +

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

+returns detector settings string from index +

+

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

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

+Referenced by main(). +

+

+ +

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

+gets detector size +

+

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

+Referenced by main(). +

+

+ +

+
+ + + + + + + + +
int64_t slsDetectorUsers::getDetectorSoftwareVersion (  ) 
+
+
+ +

+get get Detector Software Version

Returns:
id
+ +
+

+ +

+
+ + + + + + + + +
int slsDetectorUsers::getDetectorStatus (  ) 
+
+
+ +

+get run status +

+

Returns:
status mask
+ +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + +
string slsDetectorUsers::getDetectorType (  ) 
+
+
+ +

+useful for data plotting etc. +

+

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

+ +

+
+ + + + + + + + +
int slsDetectorUsers::getFileIndex (  ) 
+
+
+ +

+

Returns:
the default output file index
+ +
+

+ +

+
+ + + + + + + + +
string slsDetectorUsers::getFileName (  ) 
+
+
+ +

+

Returns:
the default output files root name
+ +
+

+ +

+
+ + + + + + + + +
string slsDetectorUsers::getFilePath (  ) 
+
+
+ +

+returns the default output files path +

+ +

+

+ +

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

+get flat field corrections file directory +

+

Returns:
flat field correction file directory
+ +
+

+ +

+
+ + + + + + + + +
string slsDetectorUsers::getFlatFieldCorrectionFile (  ) 
+
+
+ +

+get flat field corrections file name +

+

Returns:
flat field correction file name
+ +
+

+ +

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

+setsthe maximum detector size +

+

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

+ +

+
+ + + + + + + + +
int64_t slsDetectorUsers::getModuleFirmwareVersion (  ) 
+
+
+ +

+get get Module Firmware Version

Returns:
id
+ +
+

+ +

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

+get get Module Serial Number

Parameters:
+ + +
imod module number
+
+
Returns:
id
+ +
+

+ +

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

+get positions for the acquisition +

+

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

+ +

+
+ + + + + + + + +
int64_t slsDetectorUsers::getThisSoftwareVersion (  ) 
+
+
+ +

+get this Software Version

Returns:
id
+ +
+

+ +

+
+ + + + + + + + +
int slsDetectorUsers::getThresholdEnergy (  ) 
+
+
+ +

+get threshold energy +

+

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

+ +

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

+returns external communication mode string from index +

+

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

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

+

+ +

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

+returns external communication mode string from index +

+

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

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

+

+ +

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

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

+

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

+ +

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

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

+

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

+ +

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

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

+

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

+Referenced by main(). +

+

+ +

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

+register calbback for accessing detector final data +

+

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

+ +

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

+register callback for connecting to the epics channels +

+

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

+ +

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

+register calbback for accessing detector final data +

+

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

+Referenced by main(). +

+

+ +

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

+register callback to disconnect the epics channels +

+

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

+ +

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

+register calbback reading to I0 +

+

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

+ +

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

+register calbback for reading detector position +

+

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

+ +

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

+register callback for moving the detector +

+

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

+ +

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

+register callback for moving the detector without waiting +

+

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

+ +

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

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

+

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

+ +

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

+Loads the detector setup from file. +

+

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

+Referenced by main(). +

+

+ +

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

+returns string from run status index +

+

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

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

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
int slsDetectorUsers::setBeamEnergy (int  e_eV  ) 
+
+
+ +

+set beam energy -- only for dectris! +

+

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

+ +

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

+set/get dynamic range +

+

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

+ +

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

+set/get delay after trigger +

+

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

+ +

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

+sets the detector size +

+

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

+Referenced by main(). +

+

+ +

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

+set/get exposure period +

+

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

+Referenced by main(). +

+

+ +

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

+set/get exposure time value +

+

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

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
int slsDetectorUsers::setFileIndex (int  i  ) 
+
+
+ +

+sets the default output file index +

+

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

+ +

+
+ + + + + + + + + +
string slsDetectorUsers::setFileName (string  s  ) 
+
+
+ +

+sets the default output files path +

+

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

+ +

+
+ + + + + + + + + +
string slsDetectorUsers::setFilePath (string  s  ) 
+
+
+ +

+sets the default output files path +

+

Parameters:
+ + +
s file path
+
+
Returns:
file path
+ +
+

+ +

+
+ + + + + + + + + +
string slsDetectorUsers::setFlatFieldCorrectionDir (string  dir  ) 
+
+
+ +

+set flat field corrections file directory +

+

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

+ +

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

+set flat field correction file +

+

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

+ +

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

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

+

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

+ +

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

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

+

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

+Referenced by main(). +

+

+ +

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

+set/get number of gates +

+

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

+ +

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

+sets the onlineFlag +

+

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

+Referenced by main(). +

+

+ +

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

+set positions for the acquisition +

+

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

+ +

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

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

+

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

+ +

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

+set detector settings +

+

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

+Referenced by main(). +

+

+ +

+
+ + + + + + + + + +
int slsDetectorUsers::setThresholdEnergy (int  e_eV  ) 
+
+
+ +

+set threshold energy +

+

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

+ +

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

+set/get the external communication mode +

+

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

+ +

+
+ + + + + + + + +
void slsDetectorUsers::startMeasurement (  ) 
+
+
+ +

+start measurement and acquires +

+

Returns:
OK/FAIL
+ +

+Referenced by main(). +

+

+ +

+
+ + + + + + + + +
int slsDetectorUsers::stopMeasurement (  ) 
+
+
+ +

+stop measurement +

+

Returns:
OK/FAIL
+ +
+

+


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

slsReceiverUsers Member List

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

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


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

slsReceiverUsers Class Reference

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

+#include <slsReceiverUsers.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

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

Static Public Attributes

static slsReceiverTCPIPInterface * receiver
+


Detailed Description

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

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

+ +

+Definition at line 21 of file slsReceiverUsers.h.


Constructor & Destructor Documentation

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

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

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

+ +

+
+ + + + + + + + +
slsReceiverUsers::~slsReceiverUsers (  ) 
+
+
+ +

+Destructor +

+

+


Member Function Documentation

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

+Close File and exits receiver server +

+

+ +

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

+get get Receiver Version

Returns:
id
+ +
+

+ +

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

+register callback for end of acquisition

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

+ +

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

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

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

+ +

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

+register calbback for starting the acquisition

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

+ +

+
+ + + + + + + + +
int slsReceiverUsers::start (  ) 
+
+
+ +

+starts listening on the TCP port for client comminication

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

+Referenced by main(). +

+

+ +

+
+ + + + + + + + +
void slsReceiverUsers::stop (  ) 
+
+
+ +

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

+Referenced by main(). +

+

+


Member Data Documentation

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

+ +

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

+

+


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

detectorData.h

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

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

detectorData.h File Reference

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

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

Classes

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


Generated on Mon May 26 17:07:05 2014 by  + +doxygen 1.4.7
+ + diff --git a/manual/manual-api/slsDetectorUsersDocs/html/doxygen.css b/manual/manual-api/slsDetectorUsersDocs/html/doxygen.css 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 0000000000000000000000000000000000000000..f0a274bbaffdd67f6d784c894d9cf28729db0e14 GIT binary patch literal 1281 zcmaJ>ZA?>F7(Vx-ms?uoS`b@hdRtpo6o^%HU>M$hfGrBvQnk$LE?p^P!kn&ikhyq! zX~V@&tPF5Qt@V?oTL96Bi%aRiwbe1)9DWQI#?)=HxS7QSw`J`5fAJ*eJbB;uNuKA& zdERDo*{Y<(If(#(B$Lr#;nB(8Y#ia=ZCeW?JfPLuQY`=@cW$k}Rivq|vbxGrRq1Tl9;+(gNt?}UtVKM2`T5t1jLzuL@0UIs`S#vlhl4)^ zLgSYrPj@$+`|j?eSbXTmiHGkWxV8V}BzNR?pl9k_s4pDu9vd5a_UzZEPk)}Ad{AV_ zzddrjrh4=Imr`E06;LY{)YYt?o}L~H@7C}F^WB!Ra=v`Q0bj{>5&$66CWF>mf6vjP z2N>RRY6ZYa=K`76>+|_)Xdwko+7wv}7cN|btOhWb(*{sta~6b?S8Omrxw}!4`NhGr zZVpNqpu1@BE`QGWNTpEpcJVW5izu~2B^GlM?1(OPg)zwW;QcP@Ltcclm>XbJL9C|j z=9!2?ua=uIlf0%AndzHsRC}IyTL$EhAee(fdKB`?27KeS^2M8M_7b~PiCFO&r5LC7 z7gl1*a<8;SjNaw#h=843_AV9iZbWQOAp5YOC^&_F*9K0> zB|6%IDb?aM#3viTxkLU4aXg&@+CkNTOnQ1iMP*^?b|^lJy$4C)Zk4isV!|RZ*XhXh zw8q3$=*0LeGC!XI_Wc?dkT~3+*Gu%%yIqP+Wr3H$=&ROMQU6q}Ag^P~>c5vAEO;a- z_dK-3PPeKar%)6$j~vI2#*-YH!1h6HYVtwCX5_wM`iF#UKz&&@9Oo5w3%XGYrX zW>dY~)SG-((Yim%`InwgTvyRC?e=Wh^8KCao!R6Eg&TpVWUY1sN~4G}V?nFnEGo-; zHZ_$eW9-GnC%^WS9b z@p;-$oH#MtC0v>Q$HX%4^JdFdO$0cbv-W)Q TtK}Eh@>>I#ipmV1>S*>q-hkC} literal 0 HcmV?d00001 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 @@ + + +File Index + + + + + + +

File List

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

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

+

- a -

+

- c -

+

- d -

+

- e -

+

- f -

+

- g -

+

- i -

+

- n -

+

- p -

+

- r -

+

- s -

+

- v -

+

- ~ -

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

+  +

+

- a -

+

- c -

+

- d -

+

- e -

+

- f -

+

- g -

+

- i -

+

- p -

+

- r -

+

- s -

+

- ~ -

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

+

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

+

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

+

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

+

+

API for SLS detectors data acquisition

+

+


+

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

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

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

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

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

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

+

Authors:
Anna Bergamaschi, Dhanya Maliakal
+
Version:
0.2

Currently supported detectors

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

    Coming soon

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

mainClient.cpp

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

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

mainClient.cpp File Reference

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

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

Functions

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


Detailed Description

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

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

+where lib is the location of libSlsDetector.so +

+Definition in file mainClient.cpp.


Function Documentation

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

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

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

+References detectorData::npoints, and detectorData::npy. +

+Referenced by main(). +

+

+ +

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

+example of a main program using the slsDetectorUsers class +

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

+slsDetectorUsers is instantiated

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

+Setting the detector online (should be by default

+Load setup file if argv[2] specified

+defining the detector size

+registering data callback

+checking detector status and exiting if not idle

+checking and setting detector settings

+Settings exposure time to 10ms

+Settings exposure time to 100ms

+Settingsnumber of frames to 30

+start measurement

+returning when acquisition is finished or data are avilable +

+Definition at line 26 of file mainClient.cpp. +

+References dataCallback(), slsDetectorUsers::getCommand(), slsDetectorUsers::getDetectorDeveloper(), slsDetectorUsers::getDetectorSettings(), slsDetectorUsers::getDetectorSize(), slsDetectorUsers::getDetectorStatus(), slsDetectorUsers::readConfigurationFile(), slsDetectorUsers::registerDataCallback(), slsDetectorUsers::retrieveDetectorSetup(), slsDetectorUsers::runStatusType(), slsDetectorUsers::setDetectorSize(), slsDetectorUsers::setExposurePeriod(), slsDetectorUsers::setExposureTime(), slsDetectorUsers::setNumberOfFrames(), slsDetectorUsers::setOnline(), slsDetectorUsers::setSettings(), and slsDetectorUsers::startMeasurement(). +

+

+


Generated on Mon May 26 17:07:05 2014 by  + +doxygen 1.4.7
+ + diff --git a/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp-source.html b/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp-source.html new file mode 100644 index 000000000..0a9de8685 --- /dev/null +++ b/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp-source.html @@ -0,0 +1,112 @@ + + +mainReceiver.cpp Source File + + + + + + +

mainReceiver.cpp

Go to the documentation of this file.
00001 /* A simple server in the internet domain using TCP
+00002    The port number is passed as an argument 
+00003 */
+00004 
+00018 #include "slsReceiverUsers.h"
+00019 
+00020 
+00021 #include <iostream>
+00022 using namespace std;
+00023 
+00024 
+00025 int main(int argc, char *argv[]) {
+00026   int ret = 0;
+00027 
+00028 
+00029   /*
+00030       Instantiate the slsReceieverUsers class
+00031       The port number is passed as an argument
+00032 */
+00033   slsReceiverUsers *receiver = new slsReceiverUsers(argc, argv, ret);
+00034   
+00035   /*
+00036       return if could not open TCP socket for interfacing to client 
+00037   */
+00038   if(ret==1)
+00039     return -1;
+00040   
+00041 
+00042   /*register callbacks */
+00043 
+00044 
+00045         /*
+00046            callback arguments are
+00047            filepath
+00048            filename
+00049            fileindex
+00050            datasize
+00051            
+00052            return value is 
+00053            0 raw data ready callback takes care of open,close,write file
+00054            1 callback writes file, we have to open, close it
+00055            2 we open, close, write file, callback does not do anything
+00056 
+00057 
+00058            registerCallBackStartAcquisition(int (*func)(char*, char*,int, int, void*),void *arg);
+00059         */
+00060         
+00061         //receiver->registerCallBackStartAcquisition(func,arg);
+00062 
+00063 
+00064         /*
+00065           callback argument is
+00066           total farmes caught
+00067           registerCallBackAcquisitionFinished(void (*func)(int, void*),void *arg);
+00068         */
+00069         
+00070         
+00071         //receiver->registerCallBackAcquisitionFinished(func,arg);
+00072         
+00073 
+00074 
+00075         /*
+00076           args to raw data ready callback are
+00077           framenum
+00078           datapointer
+00079           file descriptor
+00080           guidatapointer (NULL, no data required)
+00081           
+00082           NEVER DELETE THE DATA POINTER
+00083           REMEMBER THAT THE CALLBACK IS BLOCKING
+00084 
+00085           registerCallBackRawDataReady(void (*func)(int, char*, FILE*, char*, void*),void *arg);
+00086 
+00087         */
+00088         
+00089         //receiver->registerCallBackRawDataReady(func,arg);
+00090 
+00091 
+00092   /* start receiver to listen for commands from the client (and data from detectors when expected */
+00093   receiver->start();
+00094 
+00096   usleep(10000000);
+00097 
+00099   receiver->stop();
+00100   
+00101   return 0;
+00102 }
+00103 
+

Generated on Mon May 26 17:07:05 2014 by  + +doxygen 1.4.7
+ + diff --git a/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp.html b/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp.html new file mode 100644 index 000000000..35c837ff0 --- /dev/null +++ b/manual/manual-api/slsDetectorUsersDocs/html/mainReceiver_8cpp.html @@ -0,0 +1,73 @@ + + +mainReceiver.cpp File Reference + + + + + + +

mainReceiver.cpp File Reference

#include "slsReceiverUsers.h"
+#include <iostream>
+ +

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

Functions

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


Detailed Description

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

+gcc mainReceiver.cpp -L lib -l SlsDetector -lm -lpthread

+where lib is the location of libSlsDetector.so +

+Definition in file mainReceiver.cpp.


Function Documentation

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

+ +

+Definition at line 25 of file mainReceiver.cpp. +

+References slsReceiverUsers::start(), and slsReceiverUsers::stop(). +

+

+


Generated on Mon May 26 17:07:05 2014 by  + +doxygen 1.4.7
+ + diff --git a/manual/manual-api/slsDetectorUsersDocs/html/namespaces.html b/manual/manual-api/slsDetectorUsersDocs/html/namespaces.html new file mode 100644 index 000000000..356cca187 --- /dev/null +++ b/manual/manual-api/slsDetectorUsersDocs/html/namespaces.html @@ -0,0 +1,22 @@ + + +Namespace Index + + + + + +

Namespace List

Here is a list of all namespaces with brief descriptions: + +
std
+
Generated on Mon May 26 17:07:05 2014 by  + +doxygen 1.4.7
+ + diff --git a/manual/manual-api/slsDetectorUsersDocs/html/namespacestd.html b/manual/manual-api/slsDetectorUsersDocs/html/namespacestd.html new file mode 100644 index 000000000..1bdaa268c --- /dev/null +++ b/manual/manual-api/slsDetectorUsersDocs/html/namespacestd.html @@ -0,0 +1,24 @@ + + +std Namespace Reference + + + + + +

std Namespace Reference

+

+ + +
+


Generated on Mon May 26 17:07:05 2014 by  + +doxygen 1.4.7
+ + diff --git a/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h-source.html b/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h-source.html new file mode 100644 index 000000000..c1cac7d20 --- /dev/null +++ b/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h-source.html @@ -0,0 +1,258 @@ + + +slsDetectorUsers.h Source File + + + + + + +

slsDetectorUsers.h

Go to the documentation of this file.
00001 #ifndef SLS_DETECTOR_USERS_H
+00002 #define SLS_DETECTOR_USERS_H
+00003 
+00004 
+00005 
+00016 class detectorData;
+00017 class multiSlsDetector;
+00018 class multiSlsDetectorCommand;
+00019 
+00020 
+00021 #include <stdint.h>
+00022 #include <string>
+00023 
+00024 
+00025 using namespace std;
+00026 
+00027 
+00028 
+00029 /*
+00030    \mainpage 
+00031 <CENTER><H1>API for SLS detectors data acquisition</H1></CENTER>
+00032 <HR>
+00033 */
+00084 class slsDetectorUsers
+00085  { 
+00086 
+00087  public:
+00088 
+00090    slsDetectorUsers(int id=0);
+00091 
+00092    
+00094    virtual ~slsDetectorUsers();
+00095 
+00096 
+00097 
+00102    string getDetectorDeveloper();
+00103 
+00104 
+00105 
+00110   int setOnline(int const online=-1);
+00111 
+00116   void startMeasurement();
+00117 
+00122    int stopMeasurement();
+00123  
+00128    int getDetectorStatus();
+00129 
+00133    string getFilePath();
+00134 
+00140    string setFilePath(string s);
+00141 
+00146    string getFileName();  
+00147 
+00154    string setFileName(string s);  
+00155   
+00160    int getFileIndex();
+00161   
+00167    int setFileIndex(int i);
+00168 
+00173    string getFlatFieldCorrectionDir(); 
+00174   
+00180    string setFlatFieldCorrectionDir(string dir);
+00181   
+00186    string getFlatFieldCorrectionFile();
+00187   
+00193    int setFlatFieldCorrectionFile(string fname=""); 
+00194 
+00195   
+00196 
+00202    int enableFlatFieldCorrection(int i=-1);
+00203 
+00209    int enableCountRateCorrection(int i=-1);
+00210 
+00216    int enablePixelMaskCorrection(int i=-1);
+00217 
+00223    int enableAngularConversion(int i=-1);
+00224 
+00227    int enableWriteToFile(int i=-1);
+00228 
+00235    int setPositions(int nPos, double *pos);
+00236   
+00242    int getPositions(double *pos=NULL);
+00243   
+00252    int setDetectorSize(int x0=-1, int y0=-1, int nx=-1, int ny=-1);
+00253 
+00254 
+00263    int getDetectorSize(int &x0, int &y0, int &nx, int &ny);
+00272    int getMaximumDetectorSize(int &nx, int &ny);
+00273 
+00274 
+00280    int setBitDepth(int i=-1);
+00281 
+00282 
+00283  
+00289    int setSettings(int isettings=-1);
+00290    
+00295    int getThresholdEnergy();  
+00296 
+00297 
+00303    int setThresholdEnergy(int e_eV);
+00304 
+00309    int getBeamEnergy();  
+00310 
+00311 
+00317    int setBeamEnergy(int e_eV);
+00318 
+00326    double setExposureTime(double t=-1, bool inseconds=false);
+00327 
+00334    double setExposurePeriod(double t=-1, bool inseconds=false);
+00335 
+00342    double setDelayAfterTrigger(double t=-1, bool inseconds=false);
+00343 
+00349    int64_t setNumberOfGates(int64_t t=-1); 
+00350   
+00356    int64_t setNumberOfFrames(int64_t t=-1);
+00357 
+00363    int64_t setNumberOfCycles(int64_t t=-1);
+00364   
+00365 
+00371    int setTimingMode(int pol=-1);
+00372 
+00378    int readConfigurationFile(string const fname);  
+00379 
+00380 
+00387    int dumpDetectorSetup(string const fname); 
+00394    int retrieveDetectorSetup(string const fname);
+00395 
+00400    string getDetectorType();
+00401 
+00407    int setReceiverMode(int n=-1);
+00408 
+00414    void registerDataCallback(int( *userCallback)(detectorData* d, int f, void*), void *pArg);
+00415 
+00421    void registerRawDataCallback(int( *userCallback)(double* p, int n, void*), void *pArg);
+00422 
+00428   virtual void initDataset(int refresh);
+00429 
+00430 
+00441   virtual void addFrame(double *data, double pos, double i0, double t, string fname, double var);
+00442 
+00451   virtual void finalizeDataset(double *a, double *v, double *e, int &np); 
+00452 
+00457   int64_t getModuleFirmwareVersion();
+00458 
+00464   int64_t getModuleSerialNumber(int imod=-1);
+00465 
+00470   int64_t getDetectorFirmwareVersion();
+00471 
+00476   int64_t getDetectorSerialNumber();
+00477 
+00482   int64_t getDetectorSoftwareVersion();
+00483 
+00488   int64_t getThisSoftwareVersion();
+00489 
+00495    void registerAcquisitionFinishedCallback(int( *func)(double,int, void*), void *pArg);
+00496   
+00502    void registerGetPositionCallback( double (*func)(void*),void *arg);
+00507    void registerConnectChannelsCallback( int (*func)(void*),void *arg);
+00512    void registerDisconnectChannelsCallback( int (*func)(void*),void *arg);  
+00517    void registerGoToPositionCallback( int (*func)(double,void*),void *arg);
+00522    void registerGoToPositionNoWaitCallback( int (*func)(double,void*),void *arg);
+00527    void registerGetI0Callback( double (*func)(int,void*),void *arg);
+00528 
+00536    string putCommand(int narg, char *args[], int pos=-1);
+00537 
+00545    string getCommand(int narg, char *args[], int pos=-1);
+00546 
+00547   /************************************************************************
+00548 
+00549                            STATIC FUNCTIONS
+00550 
+00551   *********************************************************************/  
+00552 
+00557   static string runStatusType(int s){                                   \
+00558     switch (s) {                                                        \
+00559     case 0:     return string("idle");                                  \
+00560     case 1:       return string("error");                               \
+00561     case 2:      return  string("waiting");                             \
+00562     case 3:      return string("finished");                             \
+00563     case 4:      return string("data");                                 \
+00564     case 5:      return string("running");                              \
+00565     default:       return string("unknown");                            \
+00566     }};
+00567 
+00568 
+00569 
+00575   static int getDetectorSettings(string s){             \
+00576     if (s=="standard") return 0;                        \
+00577     if (s=="fast") return 1;                            \
+00578     if (s=="highgain") return 2;                        \
+00579     if (s=="dynamicgain") return 3;                     \
+00580     if (s=="lowgain") return 4;                         \
+00581     if (s=="mediumgain") return 5;                      \
+00582     if (s=="veryhighgain") return 6;                    \
+00583     return -1;                                   };
+00584 
+00589   static string getDetectorSettings(int s){\
+00590     switch(s) {                                         \
+00591     case 0:      return string("standard");\
+00592     case 1:      return string("fast");\
+00593     case 2:      return string("highgain");\
+00594     case 3:    return string("dynamicgain");    \
+00595     case 4:    return string("lowgain");                \
+00596     case 5:    return string("mediumgain");     \
+00597     case 6:    return string("veryhighgain");                   \
+00598     default:    return string("undefined");                     \
+00599     }};
+00600 
+00601 
+00602 
+00609   static string getTimingMode(int f){   \
+00610     switch(f) {                                          \
+00611     case 0:      return string( "auto");                        \
+00612     case 1: return string("trigger");                   \
+00613     case 2: return string("ro_trigger");                                \
+00614     case 3: return string("gating");                    \
+00615     case 4: return string("triggered_gating");  \
+00616     default:    return string( "unknown");                              \
+00617     }      };
+00618 
+00625   static int getTimingMode(string s){                                   \
+00626     if (s== "auto") return 0;                                           \
+00627     if (s== "trigger") return 1;                                        \
+00628     if (s== "ro_trigger") return 2;                                     \
+00629     if (s== "gating") return 3;                                         \
+00630     if (s== "triggered_gating") return 4;                               \
+00631     return -1;                                                  };
+00632 
+00633  private:
+00634   multiSlsDetector *myDetector;
+00635   multiSlsDetectorCommand *myCmd;
+00636  };
+00637 
+00638 #endif
+

Generated on Mon May 26 17:07:05 2014 by  + +doxygen 1.4.7
+ + diff --git a/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h.html b/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h.html new file mode 100644 index 000000000..504ae97e4 --- /dev/null +++ b/manual/manual-api/slsDetectorUsersDocs/html/slsDetectorUsers_8h.html @@ -0,0 +1,38 @@ + + +slsDetectorUsers.h File Reference + + + + + + +

slsDetectorUsers.h File Reference

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

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

Namespaces

namespace  std

Classes

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


Generated on Mon May 26 17:07:05 2014 by  + +doxygen 1.4.7
+ + diff --git a/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h-source.html b/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h-source.html new file mode 100644 index 000000000..519c48057 --- /dev/null +++ b/manual/manual-api/slsDetectorUsersDocs/html/slsReceiverUsers_8h-source.html @@ -0,0 +1,64 @@ + + +slsReceiverUsers.h Source File + + + + + + +

slsReceiverUsers.h

Go to the documentation of this file.
00001 
+00002 #ifndef SLS_RECEIVER_USERS_H
+00003 #define SLS_RECEIVER_USERS_H
+00004 
+00005 #include <stdio.h>
+00006 #include <stdint.h>
+00007 
+00008 class slsReceiverTCPIPInterface;
+00009 
+00021 class slsReceiverUsers {
+00022 
+00023 public:
+00031   slsReceiverUsers(int argc, char *argv[], int &success);
+00032 
+00033 
+00035         ~slsReceiverUsers();
+00036 
+00038         void closeFile(int p);
+00039 
+00044         int start();
+00045 
+00047         void stop();
+00048 
+00053         int64_t getReceiverVersion();
+00054 
+00064         void registerCallBackStartAcquisition(int (*func)(char* filepath, char* filename,int fileindex, int datasize, void*),void *arg);
+00065 
+00066 
+00074         void registerCallBackAcquisitionFinished(void (*func)(int nf, void*),void *arg);
+00075         
+00076 
+00077 
+00084         void registerCallBackRawDataReady(void (*func)(int framenumber, char* datapointer, int datasize, FILE* filedescriptor, char* guidatapointer, void*),void *arg);
+00085 
+00086         // made static to close thread files with ctrl+c
+00087         static slsReceiverTCPIPInterface* receiver;
+00088 };
+00089 
+00090 
+00091 #endif
+

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

slsReceiverUsers.h File Reference

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

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

Classes

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


Generated on Mon May 26 17:07:05 2014 by  + +doxygen 1.4.7
+ + diff --git a/manual/manual-api/slsDetectorUsersDocs/html/tab_b.gif b/manual/manual-api/slsDetectorUsersDocs/html/tab_b.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d623483ffdf5f9f96900108042a7ab0643fe2a3 GIT binary patch literal 35 ncmZ?wbhEHbWMp7uXkcJy*>IeJfk6j|fqX^=1|}vKMh0sDa2W*H literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9b1e6337c9299a700401a2a78a2c6ffced475216 GIT binary patch literal 706 zcmZ?wbhEHbZT`}F1e&(Gg}Y(8=I;HA5#Z$3JI=gGB)FQ#odI(O&E^@q;x zK6mr*m3xOS-#u~t!I@i+u0DKm^U160k6t`|^WpV}&n+8{U%dD9&a>B#U%!9-@yol< zU%&tQ{rk_K|NsC0`}dE5ET99@1@a36+kb~?0UJ*yc&I3X_m z!ND^5$O7$#8OFRuDhG}!?8z?cdZK&!`PWjdR;Aj^wZ` zeK{IEYHBJ)6K8VIp1`BVt++swf6j+=L{p1*nO(VhE`pFexG@5$|>uaCcd z`0m=9m+yak{QmXN#Sc$^{$X9h9&q2jiKAI|&T)a;PPx2K9p`YIdw8HtR5k2Q$2-O2 z*;3y{MQ-RnJTgJfI&R5|O)AHxDf_00XbPvDZPy4t=hHd)nfLPvms&O`Ok(sD()5v$ z5U@&h;a=#xbxVbo2~X&Xj0Ie(f{v>vERH+qC+nTG=B8Nca=wU-O$?1&vUgV~9=!H; zx>3p9Yn%*<>t~sk+&0xfyS8RsPfYBd<~wWK%j-LmpU>O7yX^h#UCp1x-p#i7@bE;py8XI6 zmY<)m>~)W~yIWcMVoiPg{duuf<*)9qZ9l$m*Ph&W&$jlv*Vpa+{pH@n=IQ$L?0$ax ec60Ul|8o2P|NVbd{6P)#weSbE3}s?04AuZvx_~SI literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ce9dd9f533cb5486d6941844f442b59d4a9e9175 GIT binary patch literal 2585 zcmbV}`9Bkk1ILFF--w5zJc=ZZT(zjE=;2|_S)Qm~rCWz1Pc)KPl;jv%A#&v2*x}yc zmf2~Jm~&=xjJY?PqwIN}f8qQ2{r$uH{c*nJbmr{cR5??*egHrs-B=MzCF`3%e{FAW z{oL5xTHn~5TM{jaB;@|_Ue5F&Zb@p(kMyG{*;gWDg zyeL|eZf7Qd8=#bXzSiR{yzRgLSj-fJS8>lBjVHN z^o-0eS=nE6a`W;LChBs=`+QAJP~{b93>H^eRb5kCSC1zUNezun%`L5M?RDzv#%jk7 zYVRX=vATPD`+oEfum^{RM@GjuP?-r=yh0!p;Vx^T9G7~`7%5ydH%70=jyJ;;`d;hv92x3R=z{xp+Lg2!*@OK*K15-t&okoPtSED)h&$RLxdbA zseWm^C3d%-yRNi-ryk^!ek+C`n&~cd$#ZWct_cUL{l~i+Nzx^5d!n94(>bW-iL~Rl z&8r)?q|1DIo=0=judQ{FaGcfLERz8gfn3-Qt<2lksh{mzpT}DXxUuR^z=^key&q4! z+wWI45vL0k$R^(F#{qfqhUsN@WA+w-V?LPH33!Q?WFSB3)WBojE@hK41Nb?KfS+Qo zXgrzfsP$wr4Qzy*{OD>uJBjdgGM@VMml5)2f~_}lD*YyOb}Hjeobhz#4c`w(l^>KK zr?Ud;W~Z}*w;%hZ|2^p^+f06gJDJQD zeIhGADbDmm&6arh(q>EZ<7mjzg7l|z$hRL8=1>)Nv=S7CY$B}iYJ&*T_-T_OG*L1q ztZ3Lana33?y3AKnyq^YCF|4x%Rb5WU&2qcl{TFKey%QJeMxn^SdT!hZ5+0i1zeusiYVp-phBl7b5+Px-X&LhByq z0F&<;K0l2+v>qiHlXb#$jXMv$uK-dEGE9L~qtdU(XeRXmvu*K2Q&6!fD**JxYP4b4BR7FdJ$Qx9G9`J%-_X!a#LGpp3g9)VWytGCa;7`S1_e8F~!R+aSJ zOF17p2`H?2kPs8Q`_;U}+D%3p zs2-0BTqFwpUoBk`?P;iPQ(IbEA|JmMx!P&YYG|R@S=5Mnw;-?A6rEEVyV%d7{iU4a zNk`i!%F(Ykpm`}#oH;BjY->@b8vQedv;pza2FL&*6ufjd+*3Ute&>kes~TU?^KkojsTh(o~(3tk1Y6>4(yn( z#U*ID9@eg-beKo1B;HXe+}{Z%n@7m0+yxivuqk9~;!1LGQlah)xYK4>wgL}l6dsaN zIxlRlq`*`j9PG4*0hD6YV_b_2w5b#)o7J?`q#{GjvvKlD`T*dWcZx<-s(ZvLB44E# z=!|sw!?)@%y$oRNL#25WS3lzdii}TuQ3?CLnvQ1_n};2sT_;Y;#d3=+-(O% zMN$>O!3;ke(UuLR%h_&)N zs^!-@A>QR}4yB1bPp`9S19ikTbZ~O{&FF-yHK{En;mmShDUIEw03`j(DBIsM}Rjki2J#SQa3gFZTKBPDeIiLt9Z z%bL3(B@Qw%(B`wSMS~dPh$=R`(}lBoFXKy(s|*{#ru$wjsBc_O#zxNk9w+UUHmx(U zmJ8+M+ndtnZ<7|VU9Mbt61zpo9T&3%Wx&XII=#QJxjR`CZf22ac3d51Z?GD%LEe_&*t46Qf;4`bZ7p2K(Ab5>GfT^}4! zBT&HZD`^PEgWoI&{~o-ID0F?O`75sm(87x%A{(}Ch1)QlzdJ)1B-eqe5a(weg0`4lQIf1evjvbBY50DVbzO7CLf|vP z2#0(U-|jZ`H{y5N^o7%iK6H>_HEGN->U6^!)1{XpJV!!4(Ig7wzZQ*9WYF4X1rG0x z=1uA@i`rIAciubDC{;~b(|&|A@xkjRP5aRcvRU9tvIm}jDB6J eQ0-6-y)mpwdT=ayS0tBxKDA*~;EWmo literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..b550b90ba5480f9a3db170a19a1f86daecb0dc92 GIT binary patch literal 22932 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 RlllN>Fk>(~eFPlj{{dxA`xyWL literal 0 HcmV?d00001 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}