Files
TowerOptoSifAndSpectral/source/Thread/ThreadDataGrabber.h

45 lines
1.1 KiB
C++

//////////////////////////////////////////////////////////////////////////
//Ö÷²É¼¯¿ØÖÆÏß³Ì
//////////////////////////////////////////////////////////////////////////
#pragma once
#include"pch.h"
#include "ThreadIS1Controller.h"
#include "ThreadiSIFController.h"
class ZZ_DataGrabberThread :public QObject
{
Q_OBJECT
public:
ZZ_DataGrabberThread(QObject* parent = nullptr);
~ZZ_DataGrabberThread();
public:
//QWaitCondition m_wcWaitISIF,m_wcWaitIS1;
//QMutex m_mTestMutex;
private:
ZZ_iSIFControlThread m_tcISIFCtrlThread;
ZZ_IS1ControlThread m_tcIS1CtrlThread;
QThread* m_pqISIFThreadHolder;
QThread* m_pqIS1ThreadHolder;
std::atomic<bool> m_bFlagIsCollecting;
std::atomic<bool> m_bFlagIsCollectingFinished;
int *m_piFlagCaptureThreadStatus;
const int m_iTotalThreads = 2;
public:
int SetupSignals();
int StartGrabberThread();
private:
int InitThreadStatus();
public slots:
int TestGrab();
int TestGrabOnce();
int TestStopGrab();
int HandleThreadEvent(int iThreadID, int iFlagStatus);
signals:
void SignalStartGrabOnce();
void SignalStopGrab();
void SignalGrabOnceFinished();
};