2021-11-24 17:38:18 +08:00
|
|
|
#pragma once
|
|
|
|
#include "pch.h"
|
|
|
|
#include "ATPControl_Serial_QT.h"
|
2021-12-02 18:07:29 +08:00
|
|
|
#include "OControl_USB.h"
|
2021-11-24 17:38:18 +08:00
|
|
|
#include <atomic>
|
|
|
|
|
2021-11-26 17:32:50 +08:00
|
|
|
typedef struct tagFSInfo
|
|
|
|
{
|
|
|
|
ZZ_U8 ucDeviceModel;
|
|
|
|
int iInterface;
|
|
|
|
std::string strSN;
|
|
|
|
}FSInfo;
|
|
|
|
|
2021-11-24 17:38:18 +08:00
|
|
|
class CAbstractFSController :public QObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
CAbstractFSController(QObject* parent = nullptr);
|
|
|
|
virtual ~CAbstractFSController();
|
|
|
|
public:
|
|
|
|
//call first
|
2021-11-26 17:32:50 +08:00
|
|
|
virtual int SetRunParas(int iThreadID, FSInfo fsInfo);
|
2021-11-24 17:38:18 +08:00
|
|
|
|
|
|
|
//create derived class from base class
|
|
|
|
virtual int InitializeFSControl();
|
|
|
|
|
2021-12-02 18:07:29 +08:00
|
|
|
DataFrame GetLastDataFrame();
|
|
|
|
|
2021-11-26 17:32:50 +08:00
|
|
|
private:
|
|
|
|
CIrisFSBase *m_pFSCtrl;
|
|
|
|
int m_iThreadID;
|
|
|
|
FSInfo m_fsInfo;
|
2021-12-02 18:07:29 +08:00
|
|
|
DataFrame m_dfDark,m_dfSignal;
|
2021-11-24 17:38:18 +08:00
|
|
|
|
2021-12-02 18:07:29 +08:00
|
|
|
private:
|
|
|
|
int PerformAutoExposure();
|
|
|
|
int TakeDarkFrame();
|
|
|
|
int TakeSignal();
|
|
|
|
int SaveDataFile();
|
2021-11-26 17:32:50 +08:00
|
|
|
public slots:
|
2021-12-02 18:07:29 +08:00
|
|
|
virtual int StartAcquisitionSignal();
|
|
|
|
virtual int StartAcquisitionDark();
|
|
|
|
|
2021-11-24 17:38:18 +08:00
|
|
|
virtual int StopAcquisition();
|
|
|
|
|
|
|
|
signals:
|
|
|
|
void SignalAcqStarted();
|
2021-12-02 18:07:29 +08:00
|
|
|
void SignalAcqFinished_Signal(int iThreadID, int iFlagStatus);
|
|
|
|
void SignalAcqFinished_Dark (int iThreadID, int iFlagStatus);
|
2021-11-24 17:38:18 +08:00
|
|
|
};
|