From 36ba2a39f3c096a58b6bb0cfdbecd35259b0ae2a Mon Sep 17 00:00:00 2001 From: zhangzhuo Date: Mon, 22 Nov 2021 17:41:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=9F=BA=E7=B1=BB=E6=8C=87?= =?UTF-8?q?=E5=90=91=E6=B4=BE=E7=94=9F=E7=B1=BB=E5=90=8E=EF=BC=8C=E6=A7=BD?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E7=94=A8=E8=99=9A=E5=9F=BA=E7=B1=BB=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=20=E6=98=AF=E5=90=A6=E6=89=A7=E8=A1=8C=E6=B4=BE?= =?UTF-8?q?=E7=94=9F=E7=B1=BB=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cpp | 4 +-- source/Thread/ThreadDataGrabber.cpp | 40 +++++++++++++++++++++++------ source/Thread/ThreadDataGrabber.h | 4 +++ 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/main.cpp b/main.cpp index 8e66133..f9f54d9 100644 --- a/main.cpp +++ b/main.cpp @@ -28,8 +28,8 @@ int main(int argc, char *argv[]) m_pqDataGrabberThreadHolder = new QThread(); m_test.moveToThread(m_pqDataGrabberThreadHolder); m_pqDataGrabberThreadHolder->start(); - - m_test.StartGrabCall(); + m_test.TestGrabOnce(); + //m_test.StartGrabCall(); //QThread::msleep(5000); //m_test.StopTestGrab(); diff --git a/source/Thread/ThreadDataGrabber.cpp b/source/Thread/ThreadDataGrabber.cpp index 3271b4e..9c0b207 100644 --- a/source/Thread/ThreadDataGrabber.cpp +++ b/source/Thread/ThreadDataGrabber.cpp @@ -5,11 +5,17 @@ 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(); - - //m_iTotalThreads = 2; } ZZ_DataGrabberThread::~ZZ_DataGrabberThread() @@ -18,6 +24,8 @@ ZZ_DataGrabberThread::~ZZ_DataGrabberThread() { delete m_piFlagCaptureThreadStatus; } + + } void ZZ_DataGrabberThread::SetGrabTimer(AcqTimeSettings struAcqTimer) @@ -31,14 +39,20 @@ int ZZ_DataGrabberThread::SetupSignals() connect(this, &ZZ_DataGrabberThread::SignalStartGrab, this, &ZZ_DataGrabberThread::StartGrab); - connect(this, &ZZ_DataGrabberThread::SignalStartGrabOnce, &m_tcISIFCtrlThread, &ZZ_iSIFControlThread::StartTestAcquisition); - connect(this, &ZZ_DataGrabberThread::SignalStartGrabOnce, &m_tcIS1CtrlThread, &ZZ_IS1ControlThread::StartTestAcquisition); + //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_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); @@ -60,12 +74,21 @@ int ZZ_DataGrabberThread::StartGrab() 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_tcISIFCtrlThread.moveToThread(m_pqISIFThreadHolder); + m_pControlThread[0]->moveToThread(m_pqISIFThreadHolder); m_pqISIFThreadHolder->start(); m_pqIS1ThreadHolder = new QThread(); - m_tcIS1CtrlThread.moveToThread(m_pqIS1ThreadHolder); + m_pControlThread[1]->moveToThread(m_pqIS1ThreadHolder); m_pqIS1ThreadHolder->start(); //m_stCameraServiceThread.SetController(this); return 0; @@ -100,6 +123,7 @@ int ZZ_DataGrabberThread::TestGrab() int ZZ_DataGrabberThread::TestGrabOnce() { + InitThreadStatus(); emit SignalStartGrabOnce(); return 0; } diff --git a/source/Thread/ThreadDataGrabber.h b/source/Thread/ThreadDataGrabber.h index 38aae27..04ea78b 100644 --- a/source/Thread/ThreadDataGrabber.h +++ b/source/Thread/ThreadDataGrabber.h @@ -5,6 +5,8 @@ #include"pch.h" #include "ThreadIS1Controller.h" #include "ThreadiSIFController.h" +#include +using namespace std; using namespace ZZ_MISCDEF::ZZ_RUNPARAMS; class ZZ_DataGrabberThread :public QObject { @@ -17,6 +19,8 @@ public: //QWaitCondition m_wcWaitISIF,m_wcWaitIS1; //QMutex m_mTestMutex; private: + vector m_pControlThread; + ZZ_iSIFControlThread m_tcISIFCtrlThread; ZZ_IS1ControlThread m_tcIS1CtrlThread; QThread* m_pqISIFThreadHolder;