qavrg 0.0.28
|
00001 #ifndef QAVRGSCRIPTINGENGINE_H 00002 #define QAVRGSCRIPTINGENGINE_H 00003 00004 #include <QVariant> 00005 #include <QScriptEngine> 00006 #include <QMutex> 00007 00008 class QavrgApplication; 00009 class QavrgWindow; 00010 class QavrgAcquisition; 00011 00012 class QavrgScriptingEngine : public QObject 00013 { 00014 Q_OBJECT; 00015 00016 public: 00017 QavrgScriptingEngine(QavrgApplication *app, QavrgWindow *win, QavrgAcquisition *acq); 00018 void initialize(); 00019 00020 public slots: 00021 void evaluateAppCommand(QString cmd); 00022 void evaluateServerCommand(QString cmd); 00023 void evaluateSpecCommand(QString cmd); 00024 00025 signals: 00026 void serverResultAvailable(QScriptValue cmd); 00027 void specResultAvailable(QScriptValue cmd); 00028 void appResultAvailable(QScriptValue res); 00029 void printMessage(QString msg); 00030 00031 public: 00032 bool hasUncaughtException() const; 00033 int uncaughtExceptionLineNumber() const; 00034 QString uncaughtExceptionString() const; 00035 void cancelCommand(); 00036 00037 private slots: 00038 void evaluate(int src, QString cmd); 00039 00040 private: 00041 static QScriptValue printFunc(QScriptContext *context, QScriptEngine *engine); 00042 static QScriptValue newFileFunc(QScriptContext *context, QScriptEngine *engine); 00043 static QScriptValue closeFileFunc(QScriptContext *context, QScriptEngine *engine); 00044 static QScriptValue newScanFunc(QScriptContext *context, QScriptEngine *engine); 00045 static QScriptValue acquireDataFunc(QScriptContext *context, QScriptEngine *engine); 00046 static QScriptValue acquireReferenceFunc(QScriptContext *context, QScriptEngine *engine); 00047 static QScriptValue acquireDarkFunc(QScriptContext *context, QScriptEngine *engine); 00048 static QScriptValue acquireScopeFunc(QScriptContext *context, QScriptEngine *engine); 00049 static QScriptValue acquireOnceFunc(QScriptContext *context, QScriptEngine *engine); 00050 static QScriptValue acquireCancelFunc(QScriptContext *context, QScriptEngine *engine); 00051 static QScriptValue statusFunc(QScriptContext *context, QScriptEngine *engine); 00052 static QScriptValue saveDataFunc(QScriptContext *context, QScriptEngine *engine); 00053 // static QScriptValue readDataFunc(QScriptContext *context, QScriptEngine *engine); 00054 static QScriptValue fitterFunc(QScriptContext *context, QScriptEngine *engine); 00055 00056 private: 00057 mutable QMutex m_Mutex; 00058 QScriptEngine *m_ScriptEngine; 00059 QavrgApplication *m_Application; 00060 QavrgWindow *m_Window; 00061 QavrgAcquisition *m_Acquisition; 00062 }; 00063 00064 #endif // QAVRGSCRIPTINGENGINE_H