qavrg 0.0.28
qavrgscriptingengine.h
Go to the documentation of this file.
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