134 lines
3.0 KiB
C++
134 lines
3.0 KiB
C++
#ifndef SCOPE_H
|
|
#define SCOPE_H
|
|
|
|
#include <QMainWindow>
|
|
#include <QChart>
|
|
#include <QChartView>
|
|
#include <QSpinBox>
|
|
#include <QLabel>
|
|
#include <QPushButton>
|
|
#include <QCheckBox>
|
|
#include <QLineEdit>
|
|
#include <QComboBox>
|
|
#include <QGridLayout>
|
|
#include <QGroupBox>
|
|
#include <QLineSeries>
|
|
#include <QRubberBand>
|
|
#include <QMouseEvent>
|
|
#include <QGestureEvent>
|
|
|
|
#include "macro.h"
|
|
#include "ClassDigitizer.h"
|
|
#include "CustomThreads.h"
|
|
#include "CustomWidgets.h"
|
|
|
|
//^====================================================
|
|
//^====================================================
|
|
class Scope : public QMainWindow{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
Scope(Digitizer ** digi, unsigned int nDigi, ReadDataThread ** readDataThread, QMainWindow * parent = nullptr);
|
|
~Scope();
|
|
|
|
void closeEvent(QCloseEvent * event){
|
|
StopScope();
|
|
emit CloseWindow();
|
|
event->accept();
|
|
}
|
|
|
|
public slots:
|
|
void StartScope();
|
|
void StopScope();
|
|
void UpdateScope();
|
|
void ReadSettingsFromBoard();
|
|
void UpdatePanelFromMomeory();
|
|
|
|
signals:
|
|
|
|
void CloseWindow();
|
|
void SendLogMsg(const QString &msg);
|
|
void TellACQOnOff(const bool onOff);
|
|
void UpdateScaler();
|
|
void UpdateOtherPanels();
|
|
|
|
private:
|
|
|
|
void SetUpComboBoxSimple(RComboBox * &cb, QString str, int row, int col);
|
|
void SetUpComboBox(RComboBox * &cb, QString str, int row, int col, const Reg para);
|
|
void SetUpSpinBox(RSpinBox * &sb, QString str, int row, int col, const Reg para);
|
|
|
|
void CleanUpSettingsGroupBox();
|
|
void SetUpPHAPanel();
|
|
void SetUpPSDPanel();
|
|
void EnableControl(bool enable);
|
|
|
|
void UpdateComobox(RComboBox * &cb, const Reg para);
|
|
void UpdateSpinBox(RSpinBox * &sb, const Reg para);
|
|
void UpdatePHAPanel();
|
|
void UpdatePSDPanel();
|
|
|
|
Digitizer ** digi;
|
|
unsigned short nDigi;
|
|
unsigned short ID; // the id of digi, index of cbScopeDigi
|
|
bool isACQStarted;
|
|
int tick2ns;
|
|
bool traceOn[MaxNDigitizer];
|
|
|
|
ReadDataThread ** readDataThread;
|
|
TimingThread * updateTraceThread;
|
|
|
|
bool enableSignalSlot;
|
|
|
|
RChart * plot;
|
|
RChartView * plotView;
|
|
QLineSeries * dataTrace[MaxNumberOfTrace]; // 2 analog, 2 digi
|
|
|
|
RComboBox * cbScopeDigi;
|
|
RComboBox * cbScopeCh;
|
|
|
|
QPushButton * bnScopeStart;
|
|
QPushButton * bnScopeStop;
|
|
QPushButton * bnReadSettingsFromBoard;
|
|
|
|
QLineEdit * leTriggerRate;
|
|
|
|
QGroupBox * settingGroup;
|
|
QGridLayout * settingLayout;
|
|
|
|
/// common to PSD and PHA
|
|
RSpinBox * sbReordLength;
|
|
RSpinBox * sbPreTrigger;
|
|
RSpinBox * sbDCOffset;
|
|
RComboBox * cbDynamicRange;
|
|
RComboBox * cbPolarity;
|
|
|
|
/// PHA
|
|
RSpinBox * sbInputRiseTime;
|
|
RSpinBox * sbTriggerHoldOff;
|
|
RSpinBox * sbThreshold;
|
|
RComboBox * cbSmoothingFactor;
|
|
|
|
RSpinBox * sbTrapRiseTime;
|
|
RSpinBox * sbTrapFlatTop;
|
|
RSpinBox * sbDecayTime;
|
|
RSpinBox * sbPeakingTime;
|
|
RSpinBox * sbPeakHoldOff;
|
|
RComboBox * cbPeakAvg;
|
|
RComboBox * cbBaselineAvg;
|
|
|
|
RComboBox * cbAnaProbe1;
|
|
RComboBox * cbAnaProbe2;
|
|
RComboBox * cbDigiProbe1;
|
|
RComboBox * cbDigiProbe2;
|
|
|
|
/// PSD
|
|
RSpinBox * sbShortGate;
|
|
RSpinBox * sbLongGate;
|
|
RSpinBox * sbGateOffset;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif |