ENLIGHTEN
Cross-platform desktop GUI for Wasatch Photonics spectrometers
Loading...
Searching...
No Matches
backend.h
Go to the documentation of this file.
1
23
24#ifndef BACKEND_H
25#define BACKEND_H
26
27#include "acquisitionworker.h"
28#include "configdialog.h"
29
30#include <peak/peak.hpp>
31
32#include <QImage>
33#include <QObject>
34#include <QString>
35#include <QThread>
36
37#include <cstdint>
38
39class BackEnd : public QObject
40{
41 Q_OBJECT
42
43public:
44 explicit BackEnd(QObject* parent = nullptr);
45 ~BackEnd() override;
46
47 bool start();
48 bool openDevice();
50
51 int getImageWidth() const;
52 int getImageHeight() const;
53 std::shared_ptr<peak::core::NodeMap> getNodemapRemoteDevice();
54 std::pair<bool, std::pair<QString, QString>> getFrameStartTrigger();
55 std::pair<bool, std::pair<QString, QString>> getLineStartTrigger();
56
57private:
58 std::shared_ptr<peak::core::Device> m_device;
59 std::shared_ptr<peak::core::DataStream> m_dataStream;
60 std::shared_ptr<peak::core::NodeMap> m_nodemapRemoteDevice;
61
64 QThread m_acquisitionThread;
65
66 bool m_submitted = false;
67
68 std::pair<bool, std::pair<QString, QString>> m_frameStartTrigger;
69 std::pair<bool, std::pair<QString, QString>> m_lineStartTrigger;
70
71signals:
72 void imageReceived(QImage image);
73 void counterChanged(unsigned int frameCounter, unsigned int errorCounter, double frameRate_ms, double lineRate_ms);
74 void messageBoxTrigger(QString messageTitle, QString messageText);
76 void errorOccurred(QString errorText);
77 void started(bool backendStarted);
79
80private slots:
81 void handleConfigSubmitted(int offsetY, int imageHeight,
82 const std::pair<bool, std::pair<QString, QString>>& frameStartTrigger,
83 const std::pair<bool, std::pair<QString, QString>>& lineStartTrigger, int acquisitionLineRate, int PWMFrequency);
85};
86
87#endif // BACKEND_H
Definition acquisitionworker.h:41
Definition backend.h:38
int getImageHeight() const
bool openDevice()
void errorOccurred(QString errorText)
int getImageWidth() const
~BackEnd() override
void cameraDisconnected()
std::shared_ptr< peak::core::Device > m_device
Definition backend.h:100
void handleConfigSubmitted(int offsetY, int imageHeight, const std::pair< bool, std::pair< QString, QString > > &frameStartTrigger, const std::pair< bool, std::pair< QString, QString > > &lineStartTrigger, int acquisitionLineRate, int PWMFrequency)
Definition backend.cpp:120
std::shared_ptr< peak::core::NodeMap > m_nodemapRemoteDevice
Definition backend.h:102
void triggerExecuted()
std::shared_ptr< peak::core::DataStream > m_dataStream
Definition backend.h:101
std::pair< bool, std::pair< QString, QString > > m_lineStartTrigger
Definition backend.h:69
ConfigDialog * m_configDialog
Definition backend.h:62
std::pair< bool, std::pair< QString, QString > > m_frameStartTrigger
Definition backend.h:68
void imageReceived(QImage image)
bool m_submitted
Definition backend.h:66
bool start()
void counterChanged(unsigned int frameCounter, unsigned int errorCounter, double frameRate_ms, double lineRate_ms)
AcquisitionWorker * m_acquisitionWorker
Definition backend.h:111
void started(bool backendStarted)
std::pair< bool, std::pair< QString, QString > > getFrameStartTrigger()
Definition backend.cpp:311
QThread m_acquisitionThread
Definition backend.h:112
BackEnd(QObject *parent=nullptr)
void messageBoxTrigger(QString messageTitle, QString messageText)
std::pair< bool, std::pair< QString, QString > > getLineStartTrigger()
Definition backend.cpp:316
std::shared_ptr< peak::core::NodeMap > getNodemapRemoteDevice()
Definition backend.cpp:306
void closeDevice()
void handleConfigDialogClosed()
Definition backend.cpp:288
Definition configdialog.h:46
The AcquisitionWorker class is used in a worker thread to capture images from the device continuously...