ENLIGHTEN
Cross-platform desktop GUI for Wasatch Photonics spectrometers
Loading...
Searching...
No Matches
mainwindow.h
Go to the documentation of this file.
1
23
24#ifndef MAINWINDOW_H
25#define MAINWINDOW_H
26
27#include "acquisitionworker.h"
28#include "backend.h"
29#include "display.h"
30
31#include <peak/peak.hpp>
32
33#include <QComboBox>
34#include <QGraphicsRectItem>
35#include <QLabel>
36#include <QLineEdit>
37#include <QMainWindow>
38#include <QMessageBox>
39#include <QThread>
40#include <QVBoxLayout>
41#include <QWidget>
42
43#include <cstdint>
44
45
46class MainWindow : public QMainWindow
47{
48 Q_OBJECT
49
50public:
51 explicit MainWindow(QWidget* parent = nullptr);
52 ~MainWindow() = default;
53
54 bool HasError() const;
55
56private:
58
59 bool m_hasError = true;
60
61 QWidget* m_CentralWidget{};
62 QWidget* m_ControlWidget{};
63
65 QLabel* m_labelInfo{};
66 QVBoxLayout* m_layout{};
67
68 QComboBox* m_comboFocusMode{};
69
70 QSlider* m_exposureSlider{};
71 QLineEdit* m_exposureValueEdit{};
72
73 QSlider* m_gainSlider{};
74 QLineEdit* m_gainValueEdit{};
75
76 QSlider* m_fpsSlider{};
77 QLineEdit* m_fpsValueEdit{};
78
79 QComboBox* m_comboSearchAlgo{};
80
82
85
90
91 peak_afl_size m_roiMinSize{};
92 peak_afl_size m_imageSize{};
93 peak_afl_rectangle m_ROI{};
98 QSlider* m_roiWidthSlider{};
99 QLineEdit* m_roiWidthValueEdit{};
102
103 QGraphicsRectItem* m_roiRect{};
104 bool m_showingROI = false;
105
106 void CreateStatusBar();
107 void CreateControls();
108 void InitializeControls();
109 void ConnectControls();
110
111 void ChangeFocusMode(peak_afl_controller_automode);
112
113public slots:
114 static void ShowMessageBox(const QString& messageTitle, const QString& messageText);
115 void OnFocusModeChange(const QString& text);
116 void OnAutoFocusFinished();
117 void OnCounterChanged(unsigned int frameCounter, unsigned int errorCounter);
118 void On_aboutQt_linkActivated(const QString& link);
119 void OnExposureChanged(int exposureTimeInUs);
120 void OnGainChanged(int value);
121 void OnFrameRateChanged(int value);
122 void OnSharpnessAlgoChanged(int index);
123 void OnSearchAlgoChanged(int index);
124 void OnHysteresisChanged(int value);
125 void OnSearchRangeChanged(bool minChanged);
126 void OnROIChanged();
127 void OnToggleROI();
128 void OnShowROI();
129 void OnDrawROI();
130 void OnNewROI(QRectF roi);
131};
132
133static void AutoFocusFinishedCallback(void* mainWindowInstance);
134
135#endif // MAINWINDOW_H
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....
static void AutoFocusFinishedCallback(void *mainWindowInstance)
Definition backend.h:38
Definition display.h:64
peak_afl_size m_imageSize
Definition mainwindow.h:92
void On_aboutQt_linkActivated(const QString &link)
Definition mainwindow.cpp:990
BackEnd m_backEnd
Definition mainwindow.h:57
QSlider * m_exposureSlider
Definition mainwindow.h:70
bool HasError() const
Definition mainwindow.cpp:124
void InitializeControls()
Definition mainwindow.cpp:329
QSlider * m_roiHeightSlider
Definition mainwindow.h:100
QWidget * m_CentralWidget
Definition mainwindow.h:61
void OnFrameRateChanged(int value)
Definition mainwindow.cpp:778
QLineEdit * m_searchRangeMinValueEdit
Definition mainwindow.h:87
void OnFocusModeChange(const QString &text)
Definition mainwindow.cpp:678
QComboBox * m_comboFocusMode
Definition mainwindow.h:68
QWidget * m_ControlWidget
Definition mainwindow.h:62
void OnShowROI()
Definition mainwindow.cpp:900
QLineEdit * m_roiHeightValueEdit
Definition mainwindow.h:101
void OnToggleROI()
Definition mainwindow.cpp:894
QLineEdit * m_roiOffsetYValueEdit
Definition mainwindow.h:97
QVBoxLayout * m_layout
Definition mainwindow.h:66
QComboBox * m_comboSharpnessAlgo
Definition mainwindow.h:81
QLineEdit * m_roiWidthValueEdit
Definition mainwindow.h:99
QSlider * m_roiOffsetXSlider
Definition mainwindow.h:94
void OnSearchAlgoChanged(int index)
Definition mainwindow.cpp:804
void OnGainChanged(int value)
Definition mainwindow.cpp:752
QComboBox * m_comboSearchAlgo
Definition mainwindow.h:79
~MainWindow()=default
Definition mainwindow.cpp:86
void OnSearchRangeChanged(bool minChanged)
Definition mainwindow.cpp:819
void OnNewROI(QRectF roi)
Definition mainwindow.cpp:941
QSlider * m_roiOffsetYSlider
Definition mainwindow.h:96
QSlider * m_fpsSlider
Definition mainwindow.h:76
peak_afl_rectangle m_ROI
Definition mainwindow.h:93
bool m_hasError
Definition mainwindow.h:59
void ChangeFocusMode(peak_afl_controller_automode)
Definition mainwindow.cpp:697
void OnSharpnessAlgoChanged(int index)
Definition mainwindow.cpp:809
void OnAutoFocusFinished()
Definition mainwindow.cpp:702
void ConnectControls()
Definition mainwindow.cpp:588
MainWindow(QWidget *parent=nullptr)
Definition mainwindow.cpp:50
QGraphicsRectItem * m_roiRect
Definition mainwindow.h:103
void OnDrawROI()
Definition mainwindow.cpp:936
QLineEdit * m_hysteresisValueEdit
Definition mainwindow.h:84
void OnHysteresisChanged(int value)
Definition mainwindow.cpp:814
QSlider * m_gainSlider
Definition mainwindow.h:73
void OnExposureChanged(int exposureTimeInUs)
Definition mainwindow.cpp:718
QLineEdit * m_exposureValueEdit
Definition mainwindow.h:71
peak_afl_size m_roiMinSize
Definition mainwindow.h:91
QLineEdit * m_roiOffsetXValueEdit
Definition mainwindow.h:95
QSlider * m_searchRangeMinSlider
Definition mainwindow.h:86
void CreateControls()
Definition mainwindow.cpp:149
void OnCounterChanged(unsigned int frameCounter, unsigned int errorCounter)
Definition mainwindow.cpp:979
QLineEdit * m_searchRangeMaxValueEdit
Definition mainwindow.h:89
QLineEdit * m_gainValueEdit
Definition mainwindow.h:74
QSlider * m_searchRangeMaxSlider
Definition mainwindow.h:88
QLineEdit * m_fpsValueEdit
Definition mainwindow.h:77
bool m_showingROI
Definition mainwindow.h:104
CustomDisplay * m_display
Definition mainwindow.h:64
QLabel * m_labelInfo
Definition mainwindow.h:65
QSlider * m_roiWidthSlider
Definition mainwindow.h:98
void OnROIChanged()
Definition mainwindow.cpp:857
static void ShowMessageBox(const QString &messageTitle, const QString &messageText)
Definition mainwindow.cpp:129
void CreateStatusBar()
Definition mainwindow.cpp:96
QSlider * m_hysteresisSlider
Definition mainwindow.h:83