Files
TowerOptoSifAndSpectral/source/Thread/MainDataGrabber.h

72 lines
1.5 KiB
C
Raw Normal View History

2021-11-24 17:38:18 +08:00
#pragma once
#include"pch.h"
#include <vector>
#include "AbstractFSController.h"
using namespace std;
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
class CMainDataGrabber :public QObject
{
Q_OBJECT
public:
CMainDataGrabber(QObject* parent = nullptr);
~CMainDataGrabber();
private:
vector<CAbstractFSController *> m_pControlThread;
vector<QThread* > m_pqThreadHolder;
int *m_piFlagCaptureThreadStatus_Signal;
int *m_piFlagCaptureThreadStatus_Dark;
2021-12-03 10:43:25 +08:00
2021-11-24 17:38:18 +08:00
int m_iTotalThreads;
2021-12-03 10:43:25 +08:00
int m_iFlagIsCapturing;
2021-12-03 10:43:25 +08:00
int m_iFlagIsCapturing_Signal;
int m_iFlagIsCapturing_Dark;
FSContext m_struDeviceContext;
LSContext m_struLinearShutterContext;
AcqPosSettings m_struAcqPosSetting;
AcqTimeSettings m_struAcqTime;
QTimer *m_GrabTimer;
2021-12-03 10:43:25 +08:00
private:
void Delay_MSec(ZZ_U16 usMS);
2021-11-24 17:38:18 +08:00
public:
//Call this first
int SetGrabberParams(RunTimeGrabberParams struGrabberRTParams);
int InitThreadStatus();
2021-11-24 17:38:18 +08:00
int InitializeWorkers();
int StartWorkers();
int SetupMsgPipelines();
2021-11-24 17:38:18 +08:00
int StartGrab();
public slots:
2021-12-03 10:43:25 +08:00
int StartGrabTimer();
int OnTimeCounter();
2021-12-03 10:43:25 +08:00
int HandleThreadEvent_Signal(int iThreadID, int iFlagStatus);
int HandleThreadEvent_Dark(int iThreadID, int iFlagStatus);
2021-12-03 10:43:25 +08:00
int GrabOnceFinished_Signal();
int GrabOnceFinished_Dark();
int GrabOnceFinished();
2021-12-03 10:43:25 +08:00
2021-11-24 17:38:18 +08:00
signals:
void SignalStartGrabOnce_Signal();
void SignalStartGrabOnce_Dark();
2021-12-03 10:43:25 +08:00
void SignalGrabOnceFinished_Signal();
void SignalGrabOnceFinished_Dark();
2021-11-24 17:38:18 +08:00
void SignalGrabOnceFinished();
void SignalStopGrab();
2021-11-24 17:38:18 +08:00
void SignalStartGrab();
};