QXRD  0.11.16
qxrdscriptengine.h
Go to the documentation of this file.
1 #ifndef QXRDSCRIPTENGINE_H
2 #define QXRDSCRIPTENGINE_H
3 
4 #include <QObject>
5 #include <QScriptValue>
6 #include <QDateTime>
7 #include <QMutex>
8 #include <QRegExp>
9 #include <QPointF>
10 
11 #include "qcepscriptengine.h"
12 
13 #include "qxrdapplication-ptr.h"
14 #include "qxrdexperiment-ptr.h"
15 #include "qxrdacquisition-ptr.h"
16 #include "qxrddataprocessor-ptr.h"
17 #include "qxrdwindow-ptr.h"
18 
20 {
21  Q_OBJECT
22 
23 public:
25  virtual ~QxrdScriptEngine();
26  void initialize();
27 
28  void lock();
29  void unlock();
30 
31 public slots:
32  void evaluateAppCommand(QString cmd);
33  void evaluateSimpleServerCommand(QString cmd);
34  void evaluateSpecCommand(QString cmd);
35  void loadScript(QString path);
36 
37 signals:
38  void appResultAvailable(QScriptValue res);
39  void simpleServerResultAvailable(QScriptValue cmd);
40  void specResultAvailable(QScriptValue cmd);
41 
42 public:
43  bool hasUncaughtException() const;
44  int uncaughtExceptionLineNumber() const;
45  QString uncaughtExceptionString() const;
46  void cancelCommand();
47 
52  QxrdWindowWPtr window() const;
53 
54  void setWindow(QxrdWindowWPtr win);
55 
56 public slots:
57  static QString convertToString(QScriptValue result);
58 
59  void dumpLocks();
60 
61  void openScriptOutput(const QString& fileName);
62  void writeScriptOutput(const QString& outputLine);
63  void closeScriptOutput();
64 
65 private slots:
66  void evaluateScript(int src, QString cmd);
67 
68 private:
69  static QScriptValue printFunc(QScriptContext *context, QScriptEngine *engine, void *u);
70  static QScriptValue fopenFunc(QScriptContext *context, QScriptEngine *engine, void *u);
71  static QScriptValue fdeleteFunc(QScriptContext *context, QScriptEngine *engine, void *u);
72  static QScriptValue fprintFunc(QScriptContext *context, QScriptEngine *engine, void *u);
73  static QScriptValue fcloseFunc(QScriptContext *context, QScriptEngine *engine, void *u);
74  static QScriptValue acquireFunc(QScriptContext *context, QScriptEngine *engine);
75  static QScriptValue acquireDarkFunc(QScriptContext *context, QScriptEngine *engine);
76  static QScriptValue statusFunc(QScriptContext *context, QScriptEngine *engine);
77  static QScriptValue acquireStatusFunc(QScriptContext *context, QScriptEngine *engine);
78  static QScriptValue processStatusFunc(QScriptContext *context, QScriptEngine *engine);
79  static QScriptValue acquireCancelFunc(QScriptContext *context, QScriptEngine *engine);
80  static QScriptValue acquireScalersFunc(QScriptContext *context, QScriptEngine *engine);
81  static QScriptValue triggerFunc(QScriptContext *context, QScriptEngine *engine);
82  static QScriptValue exposureTimeFunc(QScriptContext *context, QScriptEngine *engine);
83  static QScriptValue summedExposuresFunc(QScriptContext *context, QScriptEngine *engine);
84  static QScriptValue skippedExposuresFunc(QScriptContext *context, QScriptEngine *engine);
85  static QScriptValue darkSummedExposuresFunc(QScriptContext *context, QScriptEngine *engine);
86  static QScriptValue phasesInGroupFunc(QScriptContext *context, QScriptEngine *engine);
87  static QScriptValue preTriggerFilesFunc(QScriptContext *context, QScriptEngine *engine);
88  static QScriptValue postTriggerFilesFunc(QScriptContext *context, QScriptEngine *engine);
89  static QScriptValue filePatternFunc(QScriptContext *context, QScriptEngine *engine);
90  static QScriptValue outputDirectoryFunc(QScriptContext *context, QScriptEngine *engine);
91  static QScriptValue fileIndexFunc(QScriptContext *context, QScriptEngine *engine);
92  static QScriptValue dataFunc(QScriptContext *context, QScriptEngine *engine);
93  static QScriptValue darkFunc(QScriptContext *context, QScriptEngine *engine);
94  static QScriptValue maskFunc(QScriptContext *context, QScriptEngine *engine);
95  static QScriptValue overflowFunc(QScriptContext *context, QScriptEngine *engine);
96  static QScriptValue liveDataFunc(QScriptContext *context, QScriptEngine *engine);
97  static QScriptValue helpFunc(QScriptContext *context, QScriptEngine *engine);
98  static QScriptValue processFunc(QScriptContext *context, QScriptEngine *engine);
99  static QScriptValue setFileNormalizationFunc(QScriptContext *context, QScriptEngine *engine);
100 // static QScriptValue typeNameFunc(QScriptContext *context, QScriptEngine *engine);
101  static QScriptValue matchFilesFunc(QScriptContext *context, QScriptEngine *engine);
102  static QScriptValue extraChannelFunc(QScriptContext *context, QScriptEngine *engine);
103  static QScriptValue mapUserFunctionFunc(QScriptContext *context, QScriptEngine *engine);
104  static QScriptValue timeStampFunc(QScriptContext *context, QScriptEngine *engine);
105 
106  static QScriptValue detectorFunc(QScriptContext *context, QScriptEngine *engine);
107  static QScriptValue roiFunc(QScriptContext *context, QScriptEngine *engine);
108 
109 // static QScriptValue dataObjectFunc(QScriptContext *context, QScriptEngine *engine);
110  static QScriptValue newDataGroupFunc(QScriptContext *context, QScriptEngine *engine);
111  static QScriptValue newDataArrayFunc(QScriptContext *context, QScriptEngine *engine);
112  static QScriptValue newDataColumnFunc(QScriptContext *context, QScriptEngine *engine);
113  static QScriptValue newDataColumnScanFunc(QScriptContext *context, QScriptEngine *engine);
114  static QScriptValue newDataImageFunc(QScriptContext *context, QScriptEngine *engine);
115  static QScriptValue newIntegratedDataFunc(QScriptContext *context, QScriptEngine *engine);
116 
117  static QScriptValue QPointFToScriptValue(QScriptEngine *engine, const QPointF &in);
118  static void QPointFFromScriptValue(const QScriptValue &object, QPointF &pt);
119 
120 private:
121  mutable QMutex m_Mutex;
128 };
129 
130 #endif // QXRDSCRIPTENGINE_H
static QScriptValue triggerFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue fdeleteFunc(QScriptContext *context, QScriptEngine *engine, void *u)
static QScriptValue QPointFToScriptValue(QScriptEngine *engine, const QPointF &in)
static QScriptValue matchFilesFunc(QScriptContext *context, QScriptEngine *engine)
virtual ~QxrdScriptEngine()
static QScriptValue roiFunc(QScriptContext *context, QScriptEngine *engine)
QWeakPointer< QxrdDataProcessor > QxrdDataProcessorWPtr
static QScriptValue newDataArrayFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue timeStampFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue setFileNormalizationFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue newDataImageFunc(QScriptContext *context, QScriptEngine *engine)
void evaluateSimpleServerCommand(QString cmd)
void openScriptOutput(const QString &fileName)
static QScriptValue exposureTimeFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue acquireFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue newDataColumnScanFunc(QScriptContext *context, QScriptEngine *engine)
QxrdExperimentWPtr m_Experiment
static QScriptValue processStatusFunc(QScriptContext *context, QScriptEngine *engine)
QxrdScriptEngine(QxrdApplicationWPtr app, QxrdExperimentWPtr exp)
QxrdWindowWPtr m_Window
void evaluateSpecCommand(QString cmd)
static QScriptValue helpFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue postTriggerFilesFunc(QScriptContext *context, QScriptEngine *engine)
QWeakPointer< QxrdApplication > QxrdApplicationWPtr
static QScriptValue newDataGroupFunc(QScriptContext *context, QScriptEngine *engine)
QWeakPointer< QxrdExperiment > QxrdExperimentWPtr
QString uncaughtExceptionString() const
void setWindow(QxrdWindowWPtr win)
QxrdDataProcessorWPtr dataProcessor() const
static QScriptValue liveDataFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue statusFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue newDataColumnFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue extraChannelFunc(QScriptContext *context, QScriptEngine *engine)
static QString convertToString(QScriptValue result)
QxrdApplicationWPtr m_Application
QxrdWindowWPtr window() const
static QScriptValue skippedExposuresFunc(QScriptContext *context, QScriptEngine *engine)
void evaluateScript(int src, QString cmd)
static QScriptValue acquireStatusFunc(QScriptContext *context, QScriptEngine *engine)
QWeakPointer< QxrdWindow > QxrdWindowWPtr
Definition: qxrdwindow-ptr.h:9
static QScriptValue fcloseFunc(QScriptContext *context, QScriptEngine *engine, void *u)
static QScriptValue printFunc(QScriptContext *context, QScriptEngine *engine, void *u)
QxrdDataProcessorWPtr m_DataProcessor
static QScriptValue dataFunc(QScriptContext *context, QScriptEngine *engine)
QxrdApplicationWPtr application() const
static QScriptValue outputDirectoryFunc(QScriptContext *context, QScriptEngine *engine)
void appResultAvailable(QScriptValue res)
static void QPointFFromScriptValue(const QScriptValue &object, QPointF &pt)
static QScriptValue phasesInGroupFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue overflowFunc(QScriptContext *context, QScriptEngine *engine)
void evaluateAppCommand(QString cmd)
static QScriptValue detectorFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue filePatternFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue darkFunc(QScriptContext *context, QScriptEngine *engine)
void closeScriptOutput()
static QScriptValue fopenFunc(QScriptContext *context, QScriptEngine *engine, void *u)
static QScriptValue fprintFunc(QScriptContext *context, QScriptEngine *engine, void *u)
QWeakPointer< QxrdAcquisition > QxrdAcquisitionWPtr
static QScriptValue mapUserFunctionFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue acquireScalersFunc(QScriptContext *context, QScriptEngine *engine)
void simpleServerResultAvailable(QScriptValue cmd)
static QScriptValue darkSummedExposuresFunc(QScriptContext *context, QScriptEngine *engine)
int uncaughtExceptionLineNumber() const
static QScriptValue processFunc(QScriptContext *context, QScriptEngine *engine)
void writeScriptOutput(const QString &outputLine)
QxrdExperimentWPtr experiment() const
static QScriptValue newIntegratedDataFunc(QScriptContext *context, QScriptEngine *engine)
void loadScript(QString path)
static QScriptValue summedExposuresFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue maskFunc(QScriptContext *context, QScriptEngine *engine)
bool hasUncaughtException() const
QxrdAcquisitionWPtr m_Acquisition
static QScriptValue acquireDarkFunc(QScriptContext *context, QScriptEngine *engine)
void specResultAvailable(QScriptValue cmd)
static QScriptValue fileIndexFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue preTriggerFilesFunc(QScriptContext *context, QScriptEngine *engine)
static QScriptValue acquireCancelFunc(QScriptContext *context, QScriptEngine *engine)
QxrdAcquisitionWPtr acquisition() const