ENLIGHTEN
Cross-platform desktop GUI for Wasatch Photonics spectrometers
Loading...
Searching...
No Matches
mainwindow.h
Go to the documentation of this file.
1
22
23#ifndef MAINWINDOW_H
24#define MAINWINDOW_H
25
26#include "acquisitionworker.h"
27#include "autofeatures.h"
28#include "device.h"
29#include "display.h"
30
31#include <peak_afl/peak_afl.hpp>
32#include <peak_ipl/peak_ipl.hpp>
33
34#include <QButtonGroup>
35#include <QGridLayout>
36#include <QHBoxLayout>
37#include <QLabel>
38#include <QMainWindow>
39#include <QPushButton>
40#include <QRadioButton>
41#include <QSpinBox>
42#include <QThread>
43#include <QVBoxLayout>
44#include <QWidget>
45#include <QSlider>
46
47class FloatControl;
48
49class MainWindow : public QMainWindow
50{
51 Q_OBJECT
52
53public:
54 explicit MainWindow(QWidget* parent = nullptr);
55 ~MainWindow() override;
56
57private:
58 std::unique_ptr<Device> m_device;
59 std::unique_ptr<AutoFeatures> m_autoFeatures;
60
61 QLabel* m_labelInfo{};
63
64 // Controls for ExposureAuto
65 QButtonGroup* m_groupExposureAuto{};
66 QButtonGroup* m_groupGainAuto{};
67 QButtonGroup* m_groupBalanceWhiteAuto{};
68
70
73
74 // Gain / Exposure Controls
78
79 // Gain limit controls
82
83
84 // Exposure limit controls
87
88 QTimer* m_updateTimer{};
89
90 void OpenDevice();
91 void CloseDevice();
92 void CreateAutoFeatures();
93
95 QLayout* CreateStatusControls();
96 QLayout* CreateAutoControls();
97 QLayout* CreateCameraControls();
98 void UpdateControls();
99
100 static QFrame* CreateHLine();
101
102private slots:
103 void OnCounterChanged(unsigned int frameCounter, unsigned int errorCounter);
104 void OnAboutQtLinkActivated(const QString& link);
105 void OnRadioExposureAuto(int mode);
106 void OnRadioGainAuto(int mode);
107 void OnRadioBalanceWhiteAuto(int mode);
108 void OnButtonReset();
109 void OnSpinBoxSkipFrames(int skipFrames);
110 void UpdateValues();
111
112 void OnImageReceived(const peak::ipl::Image* image);
113
114signals:
118};
119
120#endif // MAINWINDOW_H
Definition acquisitionworker.h:41
Definition display.h:57
Definition floatcontrol.h:34
Definition mainwindow.h:47
void OnRadioGainAuto(int mode)
Definition mainwindow.cpp:408
QButtonGroup * m_groupGainAuto
Definition mainwindow.h:66
FloatControl * m_controlExposureLimitMin
Definition mainwindow.h:85
FloatControl * m_controlFrameRate
Definition mainwindow.h:77
~MainWindow() override
void OnAboutQtLinkActivated(const QString &link)
Definition mainwindow.cpp:394
QButtonGroup * m_groupExposureAuto
Definition mainwindow.h:65
QThread m_acquisitionThread
Definition mainwindow.h:72
std::unique_ptr< AutoFeatures > m_autoFeatures
Definition mainwindow.h:59
void CloseDevice()
Definition mainwindow.cpp:150
FloatControl * m_controlExposureLimitMax
Definition mainwindow.h:86
static QFrame * CreateHLine()
Definition mainwindow.cpp:209
void OnRadioExposureAuto(int mode)
Definition mainwindow.cpp:402
QLayout * CreateStatusControls()
Definition mainwindow.cpp:219
void OnSpinBoxSkipFrames(int skipFrames)
Definition mainwindow.cpp:430
QLayout * CreateAutoControls()
Definition mainwindow.cpp:244
void UpdateControls()
Definition mainwindow.cpp:97
void AutoExposureFinished()
FloatControl * m_controlGainMax
Definition mainwindow.h:81
FloatControl * m_controlGainMin
Definition mainwindow.h:80
QLayout * CreateCameraControls()
Definition mainwindow.cpp:353
MainWindow(QWidget *parent=nullptr)
void OpenDevice()
Definition mainwindow.cpp:145
QButtonGroup * m_groupBalanceWhiteAuto
Definition mainwindow.h:67
AcquisitionWorker * m_acquisitionWorker
Definition mainwindow.h:71
FloatControl * m_controlGain
Definition mainwindow.h:76
void OnRadioBalanceWhiteAuto(int mode)
Definition mainwindow.cpp:414
void CreateControls()
void AutoGainFinished()
void UpdateValues()
Definition mainwindow.cpp:435
std::unique_ptr< Device > m_device
Definition mainwindow.h:58
void OnCounterChanged(unsigned int frameCounter, unsigned int errorCounter)
void OnImageReceived(const peak::ipl::Image *image)
Definition mainwindow.cpp:122
void CreateAutoFeatures()
Definition mainwindow.cpp:167
CustomDisplay * m_display
Definition mainwindow.h:64
QLabel * m_labelInfo
Definition mainwindow.h:65
FloatControl * m_controlExposure
Definition mainwindow.h:75
QSpinBox * m_spinBoxSkipFrames
Definition mainwindow.h:69
void OnButtonReset()
Definition mainwindow.cpp:419
QTimer * m_updateTimer
Definition mainwindow.h:88
void AutoBalanceWhiteFinished()
The AcquisitionWorker class is used in a worker thread to capture images from the device continuously...
The Display class implements an easy way to display images from a camera in a QT widgets window....