//////////////////////////////////////////////////////////////////////////
//ATPÉè±¸»ùÀà
//////////////////////////////////////////////////////////////////////////
#pragma once
#include "pch.h"
#include "ATPControl_Serial_QT.h"
#include <atomic>


class ZZ_ATPAbsCtrlThread :public QObject
{
	Q_OBJECT
public:
	std::atomic<bool> m_bFlagIsCollecting;
	//QMutex *m_pMutex;
	//QWaitCondition *m_pwcFinish;
public:
	 ZZ_ATPAbsCtrlThread(QObject* parent = nullptr);
	virtual ~ZZ_ATPAbsCtrlThread();
private:
	CIrisFSBase *m_pFSCtrl;
	//ZZ_ATPControl_Serial_Qt m_iSIFctrl;
public slots:
	
	//create derived class from base class 
	virtual int InitializeFSControl();

	virtual int StartAcquisition();
	virtual int StopAcquisition();

	virtual int StartTestAcquisition();
	int StopTestAcquisition();

	//virtual void SetWaitCondition(QWaitCondition *pFinish, QMutex *pMutex);
signals:
	void SignalAcqStarted();
	void SignalAcqFinished(int iThreadID,int iFlagStatus);
};