qavrg 0.0.28
|
00001 #ifndef QAVRGWINDOW_H 00002 #define QAVRGWINDOW_H 00003 00004 #include <QMainWindow> 00005 #include <QPushButton> 00006 #include <QVector> 00007 #include <QTimer> 00008 #include "ui_qavrgwindow.h" 00009 #include "qcepproperty.h" 00010 #include <QScriptValue> 00011 00012 #include "qavrgacquiredialog.h" 00013 #include "qavrginputsdialog.h" 00014 #include "qavrgoutputdialog.h" 00015 #include "qavrgtimingdialog.h" 00016 #include "qavrgviewdialog.h" 00017 00018 class QCheckBox; 00019 class QavrgApplication; 00020 class QavrgAcquisition; 00021 class QavrgScriptingEngine; 00022 class QwtPlotZoomer; 00023 class QwtPlotMagnifier; 00024 class QwtPlotPanner; 00025 class QavrgMeasurer; 00026 class QwtLegend; 00027 class QavrgHighlighter; 00028 class QProgressBar; 00029 class QavrgSettings; 00030 00031 class QavrgWindow : public QMainWindow, public Ui::QavrgWindow 00032 { 00033 Q_OBJECT 00034 00035 Q_PROPERTY( int displayXUnits READ get_DisplayXUnits WRITE set_DisplayXUnits) 00036 QCEP_INTEGER_PROPERTY(DisplayXUnits) 00037 00038 Q_PROPERTY( int displayXRange READ get_DisplayXRange WRITE set_DisplayXRange) 00039 QCEP_INTEGER_PROPERTY(DisplayXRange) 00040 00041 Q_PROPERTY( int displayOrbit READ get_DisplayOrbit WRITE set_DisplayOrbit) 00042 QCEP_INTEGER_PROPERTY(DisplayOrbit) 00043 00044 Q_PROPERTY( int displayBunch READ get_DisplayBunch WRITE set_DisplayBunch) 00045 QCEP_INTEGER_PROPERTY(DisplayBunch) 00046 00047 public: 00048 QavrgWindow(QavrgApplication *app, QWidget *parent=0); 00049 00050 public slots: 00051 void new_RawData(); 00052 void new_ReferenceData(); 00053 void new_DarkData(); 00054 void new_FitData(); 00055 void viewScalingChanged(); 00056 void viewParametersChanged(); 00057 void autoScale(); 00058 void chooserClicked(int n); 00059 void showDeviceError(); 00060 void possiblyClose(); 00061 void acquireCancel(); 00062 void onAcquisitionStarted(); 00063 void onAcquisitionCancelled(); 00064 void onAcquisitionProgress(double pct); 00065 void onAcquisitionCompleted(); 00066 00067 void displayStatusMessage(QString msg, double time=5.0); 00068 void clearStatusMessage(); 00069 void doScript(); 00070 void cancelScript(); 00071 void printMessage(QString msg); 00072 void warningMessage(QString msg); 00073 // void loadData(); 00074 // void saveData(); 00075 00076 void setZoomingMode(); 00077 void zoomOut(); 00078 void zoomAll(); 00079 void setMeasuringMode(); 00080 00081 void browseOutputDirectory(); 00082 00083 void specialSecretTest(int useProxy, int useTransaction); 00084 00085 void saveData(); 00086 void loadData(); 00087 00088 signals: 00089 void executeCommand(QString cmd); 00090 public slots: 00091 void finishedCommand(QScriptValue result); 00092 00093 public: 00094 void setAcquisition(QavrgAcquisition *acq); 00095 void setScriptingEngine(QavrgScriptingEngine *engine); 00096 00097 void updateGraph(); 00098 QPen curvePen(int ch); 00099 void closeEvent (QCloseEvent * event); 00100 bool wantToClose(); 00101 void readSettings(QavrgSettings *settings); 00102 void writeSettings(QavrgSettings *settings); 00103 00104 private slots: 00105 void fillPatternModeChanged(); 00106 00107 private: 00108 enum Signal { 00109 DataSignal, 00110 RawSignal, 00111 DarkSignal, 00112 RefSignal, 00113 FitSignal 00114 }; 00115 00116 QString signalName(Signal sig); 00117 00118 private: 00119 QavrgApplication *m_Application; 00120 QavrgAcquisition *m_Acquisition; 00121 QavrgScriptingEngine *m_ScriptingEngine; 00122 QProgressBar *m_Progress; 00123 QLabel *m_StatusMessage; 00124 QTimer m_StatusTimer; 00125 QwtPlotZoomer *m_Zoomer; 00126 QwtPlotMagnifier *m_Magnifier; 00127 QwtPlotPanner *m_Panner; 00128 QavrgMeasurer *m_Measurer; 00129 QwtLegend *m_Legend; 00130 int m_XUnits; 00131 double m_XStep; 00132 QavrgHighlighter *m_Highlighter; 00133 QVector< QCheckBox*> m_CheckBoxes; 00134 00135 QavrgAcquireDialog *m_AcquireDockWidget; 00136 QavrgInputsDialog *m_InputsDockWidget; 00137 QavrgOutputDialog *m_OutputDockWidget; 00138 QavrgTimingDialog *m_TimingDockWidget; 00139 QavrgViewDialog *m_ViewDockWidget; 00140 00141 enum ViewOption { 00142 ViewAllData, 00143 ViewThreeOrbits, 00144 ViewOneOrbit, 00145 ViewOneBunch 00146 }; 00147 00148 enum ViewUnits { 00149 NanosecondUnits, 00150 MicrosecondUnits, 00151 MillisecondUnits, 00152 OrbitUnits, 00153 FilledBunchUnits 00154 }; 00155 }; 00156 00157 #endif