mirror of
http://172.16.0.230/r/SIF/TowerOptoSifAndSpectral.git
synced 2025-10-19 03:49:42 +08:00
更新了底层逻辑
This commit is contained in:
165
UnSupported/ThreadDataGrabber.cpp
Normal file
165
UnSupported/ThreadDataGrabber.cpp
Normal file
@ -0,0 +1,165 @@
|
||||
#include "ThreadDataGrabber.h"
|
||||
|
||||
ZZ_DataGrabberThread::ZZ_DataGrabberThread(QObject* parent /*= nullptr*/)
|
||||
{
|
||||
m_GrabTimer = new QTimer(this);
|
||||
m_bFlagIsCollecting = false;
|
||||
|
||||
|
||||
|
||||
ZZ_ATPAbsCtrlThread* m_p1 = new ZZ_iSIFControlThread;
|
||||
m_pControlThread.push_back(m_p1);
|
||||
ZZ_ATPAbsCtrlThread* m_p2 = new ZZ_IS1ControlThread;
|
||||
m_pControlThread.push_back(m_p2);
|
||||
//m_iTotalThreads = 2;
|
||||
|
||||
InitThreadStatus();
|
||||
SetupSignals();
|
||||
StartGrabberThread();
|
||||
}
|
||||
|
||||
ZZ_DataGrabberThread::~ZZ_DataGrabberThread()
|
||||
{
|
||||
if (m_piFlagCaptureThreadStatus!=NULL)
|
||||
{
|
||||
delete m_piFlagCaptureThreadStatus;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void ZZ_DataGrabberThread::SetGrabTimer(AcqTimeSettings struAcqTimer)
|
||||
{
|
||||
m_struAcqTime = struAcqTimer;
|
||||
}
|
||||
|
||||
int ZZ_DataGrabberThread::SetupSignals()
|
||||
{
|
||||
connect(m_GrabTimer, &QTimer::timeout, this, &ZZ_DataGrabberThread::OnTimeCounter);
|
||||
|
||||
connect(this, &ZZ_DataGrabberThread::SignalStartGrab, this, &ZZ_DataGrabberThread::StartGrab);
|
||||
|
||||
//connect(this, &ZZ_DataGrabberThread::SignalStartGrabOnce, &m_tcISIFCtrlThread, &ZZ_ATPAbsCtrlThread::StartTestAcquisition);
|
||||
//connect(this, &ZZ_DataGrabberThread::SignalStartGrabOnce, &m_tcIS1CtrlThread, &ZZ_ATPAbsCtrlThread::StartTestAcquisition);
|
||||
|
||||
connect(this, &ZZ_DataGrabberThread::SignalStartGrabOnce, m_pControlThread[0], &ZZ_ATPAbsCtrlThread::StartTestAcquisition);
|
||||
connect(this, &ZZ_DataGrabberThread::SignalStartGrabOnce, m_pControlThread[1], &ZZ_ATPAbsCtrlThread::StartTestAcquisition);
|
||||
|
||||
//connect(this, &ZZ_DataGrabberThread::SignalStopGrab, &m_tcISIFCtrlThread, &ZZ_iSIFControlThread::StopTestAcquisition, Qt::DirectConnection);
|
||||
//connect(this, &ZZ_DataGrabberThread::SignalStopGrab, &m_tcIS1CtrlThread, &ZZ_IS1ControlThread::StopTestAcquisition, Qt::DirectConnection);
|
||||
|
||||
//connect(&m_tcISIFCtrlThread, &ZZ_iSIFControlThread::SignalAcqFinished, this, &ZZ_DataGrabberThread::HandleThreadEvent);
|
||||
//connect(&m_tcIS1CtrlThread, &ZZ_IS1ControlThread::SignalAcqFinished, this, &ZZ_DataGrabberThread::HandleThreadEvent);
|
||||
|
||||
connect(m_pControlThread[0], &ZZ_ATPAbsCtrlThread::SignalAcqFinished, this, &ZZ_DataGrabberThread::HandleThreadEvent);
|
||||
connect(m_pControlThread[1], &ZZ_ATPAbsCtrlThread::SignalAcqFinished, this, &ZZ_DataGrabberThread::HandleThreadEvent);
|
||||
|
||||
connect(this, &ZZ_DataGrabberThread::SignalGrabOnceFinished, this, &ZZ_DataGrabberThread::TestGrabOnce);
|
||||
//m_tcISIFCtrlThread.SetWaitCondition(&m_wcWaitISIF,&m_mTestMutex);
|
||||
//m_tcIS1CtrlThread.SetWaitCondition(&m_wcWaitIS1, &m_mTestMutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_DataGrabberThread::StartGrabCall()
|
||||
{
|
||||
emit SignalStartGrab();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_DataGrabberThread::StartGrab()
|
||||
{
|
||||
m_GrabTimer->start(1000);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_DataGrabberThread::StartGrabberThread()
|
||||
{
|
||||
// m_pqISIFThreadHolder = new QThread();
|
||||
// m_tcISIFCtrlThread.moveToThread(m_pqISIFThreadHolder);
|
||||
// m_pqISIFThreadHolder->start();
|
||||
//
|
||||
// m_pqIS1ThreadHolder = new QThread();
|
||||
// m_tcIS1CtrlThread.moveToThread(m_pqIS1ThreadHolder);
|
||||
// m_pqIS1ThreadHolder->start();
|
||||
|
||||
|
||||
m_pqISIFThreadHolder = new QThread();
|
||||
m_pControlThread[0]->moveToThread(m_pqISIFThreadHolder);
|
||||
m_pqISIFThreadHolder->start();
|
||||
|
||||
m_pqIS1ThreadHolder = new QThread();
|
||||
m_pControlThread[1]->moveToThread(m_pqIS1ThreadHolder);
|
||||
m_pqIS1ThreadHolder->start();
|
||||
//m_stCameraServiceThread.SetController(this);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_DataGrabberThread::InitThreadStatus()
|
||||
{
|
||||
m_piFlagCaptureThreadStatus = new int[m_iTotalThreads];
|
||||
for (int i=0;i< m_iTotalThreads;i++)
|
||||
{
|
||||
m_piFlagCaptureThreadStatus[i] = 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_DataGrabberThread::TestGrab()
|
||||
{
|
||||
m_bFlagIsCollecting = true;
|
||||
while (m_bFlagIsCollecting)
|
||||
{
|
||||
|
||||
emit SignalStartGrabOnce();
|
||||
//m_mTestMutex.lock();
|
||||
//m_wcWaitISIF.wait(&m_mTestMutex);
|
||||
//m_mTestMutex.lock();
|
||||
//m_wcWaitIS1.wait(&m_mTestMutex);
|
||||
//m_mTestMutex.unlock();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_DataGrabberThread::TestGrabOnce()
|
||||
{
|
||||
InitThreadStatus();
|
||||
emit SignalStartGrabOnce();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_DataGrabberThread::TestStopGrab()
|
||||
{
|
||||
//emit SignalStopGrab();
|
||||
m_tcISIFCtrlThread.StopTestAcquisition();
|
||||
m_tcIS1CtrlThread.StopTestAcquisition();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_DataGrabberThread::HandleThreadEvent(int iThreadID, int iFlagStatus)
|
||||
{
|
||||
m_piFlagCaptureThreadStatus[iThreadID] = iFlagStatus;
|
||||
|
||||
bool bFinished = true;
|
||||
for (int i = 0; i < m_iTotalThreads; i++)
|
||||
{
|
||||
if (m_piFlagCaptureThreadStatus[i] != 1)
|
||||
{
|
||||
bFinished = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (bFinished)
|
||||
{
|
||||
emit SignalGrabOnceFinished();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZZ_DataGrabberThread::OnTimeCounter()
|
||||
{
|
||||
qDebug() << "OnTimeCounter";
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user