#pragma once #include"pch.h" #include #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 m_pControlThread; vector m_pqThreadHolder; int *m_piFlagCaptureThreadStatus_Signal; int *m_piFlagCaptureThreadStatus_Dark; int m_iTotalThreads; int m_iFlagIsCapturing; FSContext m_struDeviceContext; LSContext m_struLinearShutterContext; AcqPosSettings m_struAcqPosSetting; AcqTimeSettings m_struAcqTime; QTimer *m_GrabTimer; public: //Call this first int SetGrabberParams(RunTimeGrabberParams struGrabberRTParams); int InitThreadStatus(); int InitializeWorkers(); int StartWorkers(); int SetupMsgPipelines(); int StartGrab(); public slots: int HandleThreadEvent_Signal(int iThreadID, int iFlagStatus); int HandleThreadEvent_Dark(int iThreadID, int iFlagStatus); int StartGrabTimer(); int GrabOnceFinished(); int OnTimeCounter(); signals: void SignalStartGrabOnce_Signal(); void SignalStartGrabOnce_Dark(); void SignalGrabOnceFinished(); void SignalStopGrab(); void SignalStartGrab(); };