FSUDAQ_Qt6/Scope.h

120 lines
2.6 KiB
C
Raw Normal View History

2023-04-18 13:12:05 -04:00
#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>
2023-04-18 13:12:05 -04:00
#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();
private slots:
void StartScope();
void StopScope();
void UpdateScope();
void ReadSettingsFromBoard();
signals:
2023-04-20 18:15:30 -04:00
void SendLogMsg(const QString &msg);
2023-04-20 18:15:30 -04:00
private:
2023-04-18 13:12:05 -04:00
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);
2023-04-18 13:12:05 -04:00
void UpdateComobox(RComboBox * &cb, const Reg para);
void UpdateSpinBox(RSpinBox * &sb, const Reg para);
2023-04-20 18:15:30 -04:00
void UpdatePanelFromMomeory();
2023-04-18 13:12:05 -04:00
Digitizer ** digi;
unsigned short nDigi;
unsigned short ID; // the id of digi, index of cbScopeDigi
int ch2ns;
2023-04-18 13:12:05 -04:00
ReadDataThread ** readDataThread;
2023-04-19 16:21:14 -04:00
TimingThread * updateTraceThread;
2023-04-18 13:12:05 -04:00
bool enableSignalSlot;
Trace * plot;
TraceView * plotView;
2023-04-18 13:12:05 -04:00
QLineSeries * dataTrace[MaxNumberOfTrace]; // 2 analog, 2 digi
RComboBox * cbScopeDigi;
RComboBox * cbScopeCh;
QPushButton * bnScopeStart;
QPushButton * bnScopeStop;
QPushButton * bnReadSettingsFromBoard;
2023-04-18 13:12:05 -04:00
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;
2023-04-24 15:27:05 -04:00
RComboBox * cbAnaProbe1;
RComboBox * cbAnaProbe2;
RComboBox * cbDigiProbe1;
RComboBox * cbDigiProbe2;
2023-05-12 16:06:32 -04:00
/// PSD
RSpinBox * sbShortGate;
RSpinBox * sbLongGate;
RSpinBox * sbGateOffset;
2023-04-18 13:12:05 -04:00
};
#endif