Files
TowerOptoSifAndSpectral/source/Thread/ThreadDataGrabber.h

52 lines
1.3 KiB
C
Raw Normal View History

//////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
//////////////////////////////////////////////////////////////////////////
2021-11-05 17:00:48 +08:00
#pragma once
#include"pch.h"
#include "ThreadIS1Controller.h"
#include "ThreadiSIFController.h"
2021-11-19 15:39:31 +08:00
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
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;
2021-11-19 15:39:31 +08:00
QTimer *m_GrabTimer;
AcqTimeSettings m_struAcqTime;
public:
2021-11-19 15:39:31 +08:00
void SetGrabTimer(AcqTimeSettings struAcqTime);
int SetupSignals();
2021-11-19 15:39:31 +08:00
int StartGrab();
private:
2021-11-19 15:39:31 +08:00
int OnTimeCounter();
int InitThreadStatus();
2021-11-19 15:39:31 +08:00
int StartGrabberThread();
public slots:
int TestGrab();
int TestGrabOnce();
int TestStopGrab();
int HandleThreadEvent(int iThreadID, int iFlagStatus);
signals:
void SignalStartGrabOnce();
void SignalStopGrab();
void SignalGrabOnceFinished();
};