ENLIGHTEN
Cross-platform desktop GUI for Wasatch Photonics spectrometers
Loading...
Searching...
No Matches
acquisitionworker.h
Go to the documentation of this file.
1
27
28#ifndef ACQUISITIONWORKER_H
29#define ACQUISITIONWORKER_H
30
31#include <peak/peak.hpp>
32#include <peak_ipl/peak_ipl.hpp>
33
34#include <QImage>
35#include <QObject>
36#include <QString>
37
38#include <atomic>
39
40class AcquisitionWorker : public QObject
41{
42 Q_OBJECT
43
44public:
45 explicit AcquisitionWorker(QObject* parent = nullptr);
46 ~AcquisitionWorker() override = default;
47
48 void start();
49 void stop();
50 void setDataStream(std::shared_ptr<peak::core::DataStream> dataStream);
51 void setNodemapRemoteDevice(std::shared_ptr<peak::core::NodeMap> nodeMap);
52
53 int getImageWidth() const;
54 int getImageHeight() const;
55
56public slots:
57 void triggerExecuted();
58
59private:
60 std::shared_ptr<peak::core::DataStream> m_dataStream;
61 std::shared_ptr<peak::core::NodeMap> m_nodemapRemoteDevice;
62
63 std::atomic<bool> m_running{true};
64 std::chrono::steady_clock::time_point m_timeStampLastFrame;
65
70
71 unsigned int m_frameCounter{0};
72 unsigned int m_errorCounter {0};
73
74 size_t m_imageWidth{0};
75 size_t m_imageHeight{0};
76 static constexpr int64_t m_bytesPerPixel{4};
77 size_t m_size{0};
78
79 std::unique_ptr<peak::ipl::ImageConverter> m_imageConverter;
80
81 void emitCounterChanged();
82
83signals:
84 void imageReceived(QImage image);
86 unsigned int frameCounter, unsigned int errorCounter, double frameRate_fps, double lineRate_lps);
87 void messageBoxTrigger(QString messageTitle, QString messageText);
88 void errorOccurred(QString errorText);
90
91
92};
93
94#endif // ACQUISITIONWORKER_H
Definition acquisitionworker.h:41
AcquisitionWorker(QObject *parent=nullptr)
static constexpr int64_t m_bytesPerPixel
Definition acquisitionworker.h:67
unsigned int m_frameCounter
Definition acquisitionworker.h:62
std::string m_lineStartTriggerMode
Definition acquisitionworker.h:68
std::string m_lineStartTriggerSource
Definition acquisitionworker.h:69
std::shared_ptr< peak::core::NodeMap > m_nodemapRemoteDevice
Definition acquisitionworker.h:57
int getImageHeight() const
void setNodemapRemoteDevice(std::shared_ptr< peak::core::NodeMap > nodeMap)
size_t m_imageWidth
Definition acquisitionworker.h:65
size_t m_size
Definition acquisitionworker.h:68
std::shared_ptr< peak::core::DataStream > m_dataStream
Definition acquisitionworker.h:56
bool m_running
Definition acquisitionworker.h:60
int getImageWidth() const
std::chrono::steady_clock::time_point m_timeStampLastFrame
Definition acquisitionworker.h:64
void setDataStream(std::shared_ptr< peak::core::DataStream > dataStream)
std::string m_frameStartTriggerMode
Definition acquisitionworker.h:66
void cameraDisconnected()
unsigned int m_errorCounter
Definition acquisitionworker.h:63
void messageBoxTrigger(QString messageTitle, QString messageText)
std::string m_frameStartTriggerSource
Definition acquisitionworker.h:67
void errorOccurred(QString errorText)
size_t m_imageHeight
Definition acquisitionworker.h:66
void counterChanged(unsigned int frameCounter, unsigned int errorCounter, double frameRate_fps, double lineRate_lps)
void imageReceived(QImage image)
void triggerExecuted()
Definition acquisitionworker.cpp:198
std::unique_ptr< peak::ipl::ImageConverter > m_imageConverter
Definition acquisitionworker.h:68
void emitCounterChanged()
Definition acquisitionworker.cpp:248
~AcquisitionWorker() override=default