SOLARIS_QT6_DAQ/digiSettingsPanel.h

172 lines
6.4 KiB
C
Raw Normal View History

2023-02-23 16:08:47 -05:00
#ifndef DigiSettings_H
#define DigiSettings_H
#include <QWidget>
#include <QLineEdit>
#include <QSpinBox>
#include <QDoubleSpinBox>
#include <QGridLayout>
#include <QScrollArea>
#include <QTabWidget>
#include <QGroupBox>
#include <QCheckBox>
#include <QComboBox>
#include <QTableWidget>
#include <QDebug>
#include <QPushButton>
#include <QFrame>
#include <QSignalMapper>
#include "ClassDigitizer2Gen.h"
#define MaxNumberOfDigitizer 20
class DigiSettingsPanel : public QWidget{
Q_OBJECT
public:
DigiSettingsPanel(Digitizer2Gen ** digi, unsigned short nDigi, QWidget * parent = nullptr);
~DigiSettingsPanel();
private slots:
void onTriggerClick(int haha);
void RefreshSettings();
void SaveSettings();
void LoadSettings();
signals:
void sendLogMsg(const QString &msg);
private:
Digitizer2Gen ** digi;
unsigned short nDigi;
unsigned short ID; // index for digitizer;
void ShowSettingsToPanel();
2023-02-24 19:21:27 -05:00
bool enableSignalSlot;
//------------ status
2023-02-23 16:08:47 -05:00
QLineEdit * leInfo[MaxNumberOfChannel][12];
QPushButton * LEDStatus[MaxNumberOfDigitizer][19];
QPushButton * ACQStatus[MaxNumberOfDigitizer][19];
2023-02-24 19:21:27 -05:00
QLineEdit * leTemp[MaxNumberOfDigitizer][8];
2023-02-23 16:08:47 -05:00
//-------------- board settings
2023-02-24 19:21:27 -05:00
QComboBox * cbbClockSource[MaxNumberOfDigitizer];
QCheckBox * ckbStartSource[MaxNumberOfDigitizer][5];
QCheckBox * ckbGlbTrgSource[MaxNumberOfDigitizer][5];
QComboBox * cbbTrgOut[MaxNumberOfDigitizer];
QComboBox * cbbGPIO[MaxNumberOfDigitizer];
QComboBox * cbbAutoDisarmAcq[MaxNumberOfDigitizer];
QComboBox * cbbBusyIn[MaxNumberOfDigitizer];
QComboBox * cbbStatEvents[MaxNumberOfDigitizer];
QComboBox * cbbSyncOut[MaxNumberOfDigitizer];
QComboBox * cbbBoardVetoSource[MaxNumberOfDigitizer];
QSpinBox * spbBdVetoWidth[MaxNumberOfDigitizer];
QComboBox * cbbBdVetoPolarity[MaxNumberOfDigitizer];
QComboBox * cbbIOLevel[MaxNumberOfDigitizer];
QSpinBox * spbRunDelay[MaxNumberOfDigitizer];
QDoubleSpinBox * dsbVolatileClockOutDelay[MaxNumberOfDigitizer];
QDoubleSpinBox * dsbClockOutDelay[MaxNumberOfDigitizer];
//-------------- Test pulse
QGroupBox * testPulseBox;
QDoubleSpinBox * dsbTestPuslePeriod[MaxNumberOfDigitizer];
QDoubleSpinBox * dsbTestPusleWidth[MaxNumberOfDigitizer];
QSpinBox * spbTestPusleLowLevel[MaxNumberOfDigitizer];
QSpinBox * spbTestPusleHighLevel[MaxNumberOfDigitizer];
//---------------
2023-02-23 16:08:47 -05:00
QPushButton *bn[MaxNumberOfChannel][MaxNumberOfChannel];
bool bnClickStatus[MaxNumberOfChannel][MaxNumberOfChannel];
//--------------- Channel settings
QComboBox * cbbOnOff[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
2023-02-23 16:08:47 -05:00
QSpinBox * spbRecordLength[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbPreTrigger[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbDCOffset[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbThreshold[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbParity[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbWaveSource[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbWaveRes[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbWaveSave[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbInputRiseTime[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbTriggerGuard[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbTrapRiseTime[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbTrapFlatTop[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbTrapPoleZero[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
2023-02-28 13:28:30 -05:00
QSpinBox * spbPeaking[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbBaselineGuard[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbPileupGuard[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbPeakingAvg[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbBaselineAvg[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbFineGain[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbLowFilter[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbAnaProbe0[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbAnaProbe1[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbDigProbe0[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbDigProbe1[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbDigProbe2[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbDigProbe3[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
2023-02-23 16:08:47 -05:00
QComboBox * cbbEvtTrigger[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbWaveTrigger[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbChVetoSrc[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
2023-02-28 13:28:30 -05:00
QLineEdit * leTriggerMask[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbEventSelector[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbWaveSelector[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
2023-02-28 13:28:30 -05:00
QComboBox * cbbCoinMask[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QComboBox * cbbAntiCoinMask[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
2023-02-23 16:08:47 -05:00
2023-02-28 13:28:30 -05:00
QSpinBox * spbCoinLength[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbADCVetoWidth[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbEnergySkimLow[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
QSpinBox * spbEnergySkimHigh[MaxNumberOfDigitizer][MaxNumberOfChannel + 1];
//-------------------------
2023-02-23 16:08:47 -05:00
QLineEdit * leSettingFile[MaxNumberOfDigitizer];
void SetStartSource();
void SetGlobalTriggerSource();
2023-02-28 13:28:30 -05:00
void SetupShortComboBox(QComboBox * cbb, Reg para);
void SetupComboBox(QComboBox * &cbb, const Reg para, int ch_index, bool isMaster, QString labelTxt, QGridLayout * layout, int row, int col, int srow = 1, int scol = 1);
void SetupSpinBox(QSpinBox * &spb, const Reg para, int ch_index, QString labelTxt, QGridLayout * layout, int row, int col, int srow = 1, int scol = 1);
void SyncComboBox(QComboBox *(&cbb)[][MaxNumberOfChannel+1], int ch);
void SyncSpinBox(QSpinBox *(&spb)[][MaxNumberOfChannel+1], int ch);
void SetupSpinBoxTab(QSpinBox *(&spb)[][MaxNumberOfChannel+1], const Reg para, QString text, QTabWidget * tabWidget, int iDigi, int nChannel);
void SetupComboBoxTab(QComboBox *(&cbb)[][MaxNumberOfChannel+1], const Reg para, QString text, QTabWidget * tabWidget, int iDigi, int nChannel, int nCol = 4);
2023-02-23 16:08:47 -05:00
void ReadCombBoxValue(QComboBox * cbb, const Reg para );
2023-02-24 19:21:27 -05:00
2023-02-23 16:08:47 -05:00
};
#endif