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 void setEnableChunks(bool enable);
54
55private:
56 std::shared_ptr<peak::core::DataStream> m_dataStream;
57 std::shared_ptr<peak::core::NodeMap> m_nodemapRemoteDevice;
58
59 std::atomic_bool m_running{true};
60 bool m_enableChunks{true};
61
62 unsigned int m_frameCounter{0};
63 unsigned int m_errorCounter{0};
64
65 size_t m_imageWidth{0};
66 size_t m_imageHeight{0};
67 static constexpr int64_t m_bytesPerPixel{4};
68 size_t m_size{0};
69
70 std::unique_ptr<peak::ipl::ImageConverter> m_imageConverter;
71
72signals:
73 void imageReceived(QImage image, double chunkDataExposureTime_ms);
74 void counterChanged(unsigned int frameCounter, unsigned int errorCounter);
75 void messageBoxTrigger(QString messageTitle, QString messageText, bool critical);
76};
77
78#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
void setNodemapRemoteDevice(std::shared_ptr< peak::core::NodeMap > nodeMap)
Definition acquisitionworker.cpp:138
size_t m_imageWidth
Definition acquisitionworker.h:65
void messageBoxTrigger(QString messageTitle, QString messageText, bool critical)
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
void start()
Definition acquisitionworker.cpp:42
bool m_running
Definition acquisitionworker.h:60
void setDataStream(std::shared_ptr< peak::core::DataStream > dataStream)
Definition acquisitionworker.cpp:133
void stop()
Definition acquisitionworker.cpp:143
void imageReceived(QImage image, double chunkDataExposureTime_ms)
unsigned int m_errorCounter
Definition acquisitionworker.h:63
void setEnableChunks(bool enable)
Definition acquisitionworker.cpp:148
size_t m_imageHeight
Definition acquisitionworker.h:66
std::unique_ptr< peak::ipl::ImageConverter > m_imageConverter
Definition acquisitionworker.h:68
~AcquisitionWorker() override=default