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 <QObject>
32#include <QString>
33#include <QImage>
34
35#include <peak/peak.hpp>
36#include <peak_ipl/peak_ipl.hpp>
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
56 void setEnableChunks(bool enable);
57
58private:
59 std::shared_ptr<peak::core::DataStream> m_dataStream;
60 std::shared_ptr<peak::core::NodeMap> m_nodemapRemoteDevice;
61
62 std::atomic<bool> m_running{true};
63 bool m_enableChunks{true};
64
65 unsigned int m_frameCounter{0};
66 unsigned int m_errorCounter{0};
67
68 size_t m_imageWidth{0};
69 size_t m_imageHeight{0};
70 static constexpr int64_t m_bytesPerPixel{4};
71 size_t m_size{0};
72
73 std::unique_ptr<peak::ipl::ImageConverter> m_imageConverter;
74
75signals:
76 void imageReceived(QImage image, double chunkDataExposureTime_ms);
77 void counterChanged(unsigned int frameCounter, unsigned int errorCounter);
78 void messageBoxTrigger(QString messageTitle, QString messageText);
79};
80
81#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::shared_ptr< peak::core::NodeMap > m_nodemapRemoteDevice
Definition acquisitionworker.h:57
bool m_enableChunks
Definition acquisitionworker.h:60
int getImageHeight() const
Definition acquisitionworker.cpp:152
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
void counterChanged(unsigned int frameCounter, unsigned int errorCounter)
std::shared_ptr< peak::core::DataStream > m_dataStream
Definition acquisitionworker.h:56
bool m_running
Definition acquisitionworker.h:60
int getImageWidth() const
Definition acquisitionworker.cpp:147
void setDataStream(std::shared_ptr< peak::core::DataStream > dataStream)
void imageReceived(QImage image, double chunkDataExposureTime_ms)
unsigned int m_errorCounter
Definition acquisitionworker.h:63
void messageBoxTrigger(QString messageTitle, QString messageText)
void setEnableChunks(bool enable)
size_t m_imageHeight
Definition acquisitionworker.h:66
std::unique_ptr< peak::ipl::ImageConverter > m_imageConverter
Definition acquisitionworker.h:68
~AcquisitionWorker() override=default