#ifndef SLS_DETECTOR_ACTIONS_H #define SLS_DETECTOR_ACTIONS_H #include "sls_detector_defs.h" #include #include #define MAX_SCAN_LEVELS 2 using namespace std; /** class implementing the script and scan utilities of the detectors */ class slsDetectorActions : public slsDetectorDefs { public : slsDetectorActions(){}; virtual ~slsDetectorActions(){}; /** set action \param iaction can be enum {startScript, scriptBefore, headerBefore, headerAfter,scriptAfter, stopScript, MAX_ACTIONS} \param fname for script ("" disable) \param par for script \returns 0 if action disabled, >0 otherwise */ int setAction(int iaction, string fname="", string par=""); /** set action \param iaction can be enum {startScript, scriptBefore, headerBefore, headerAfter,scriptAfter, stopScript, MAX_ACTIONS} \param fname for script ("" disable) \returns 0 if action disabled, >0 otherwise */ int setActionScript(int iaction, string fname=""); /** set action \param iaction can be enum {startScript, scriptBefore, headerBefore, headerAfter,scriptAfter, stopScript, MAX_ACTIONS} \param par for script ("" disable) \returns 0 if action disabled, >0 otherwise */ int setActionParameter(int iaction, string par=""); /** returns action script \param iaction can be enum {startScript, scriptBefore, headerBefore, headerAfter,scriptAfter, stopScript} \returns action script */ string getActionScript(int iaction); /** returns action parameter \param iaction can be enum {startScript, scriptBefore, headerBefore, headerAfter,scriptAfter, stopScript} \returns action parameter */ string getActionParameter(int iaction); /** returns action mode \param iaction can be enum {startScript, scriptBefore, headerBefore, headerAfter,scriptAfter, stopScript} \returns action mode */ int getActionMode(int iaction); /** set scan \param index of the scan (0,1) \param fname for script ("" disables, "none" disables and overwrites current) \param nvalues number of steps (0 disables, -1 leaves current value) \param values pointer to steps (if NULL leaves current values) \param par parameter for the scan script ("" leaves unchanged) \returns 0 is scan disabled, >0 otherwise */ int setScan(int index, string script="", int nvalues=-1, float *values=NULL, string par="", int precision=-1); int setScanScript(int index, string script=""); int setScanParameter(int index, string par=""); int setScanPrecision(int index, int precision=-1); int setScanSteps(int index, int nvalues=-1, float *values=NULL); float getScanStep(int index, int istep){if (index