mirror of
http://172.16.0.230/r/SIF/TowerOptoSifAndSpectral.git
synced 2025-10-18 19:39:43 +08:00
测试基类指向派生类后,槽函数用虚基类连接 是否执行派生类函数
This commit is contained in:
4
main.cpp
4
main.cpp
@ -28,8 +28,8 @@ int main(int argc, char *argv[])
|
|||||||
m_pqDataGrabberThreadHolder = new QThread();
|
m_pqDataGrabberThreadHolder = new QThread();
|
||||||
m_test.moveToThread(m_pqDataGrabberThreadHolder);
|
m_test.moveToThread(m_pqDataGrabberThreadHolder);
|
||||||
m_pqDataGrabberThreadHolder->start();
|
m_pqDataGrabberThreadHolder->start();
|
||||||
|
m_test.TestGrabOnce();
|
||||||
m_test.StartGrabCall();
|
//m_test.StartGrabCall();
|
||||||
//QThread::msleep(5000);
|
//QThread::msleep(5000);
|
||||||
|
|
||||||
//m_test.StopTestGrab();
|
//m_test.StopTestGrab();
|
||||||
|
@ -5,11 +5,17 @@ ZZ_DataGrabberThread::ZZ_DataGrabberThread(QObject* parent /*= nullptr*/)
|
|||||||
m_GrabTimer = new QTimer(this);
|
m_GrabTimer = new QTimer(this);
|
||||||
m_bFlagIsCollecting = false;
|
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();
|
InitThreadStatus();
|
||||||
SetupSignals();
|
SetupSignals();
|
||||||
StartGrabberThread();
|
StartGrabberThread();
|
||||||
|
|
||||||
//m_iTotalThreads = 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ZZ_DataGrabberThread::~ZZ_DataGrabberThread()
|
ZZ_DataGrabberThread::~ZZ_DataGrabberThread()
|
||||||
@ -18,6 +24,8 @@ ZZ_DataGrabberThread::~ZZ_DataGrabberThread()
|
|||||||
{
|
{
|
||||||
delete m_piFlagCaptureThreadStatus;
|
delete m_piFlagCaptureThreadStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZZ_DataGrabberThread::SetGrabTimer(AcqTimeSettings struAcqTimer)
|
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::SignalStartGrab, this, &ZZ_DataGrabberThread::StartGrab);
|
||||||
|
|
||||||
connect(this, &ZZ_DataGrabberThread::SignalStartGrabOnce, &m_tcISIFCtrlThread, &ZZ_iSIFControlThread::StartTestAcquisition);
|
//connect(this, &ZZ_DataGrabberThread::SignalStartGrabOnce, &m_tcISIFCtrlThread, &ZZ_ATPAbsCtrlThread::StartTestAcquisition);
|
||||||
connect(this, &ZZ_DataGrabberThread::SignalStartGrabOnce, &m_tcIS1CtrlThread, &ZZ_IS1ControlThread::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_tcISIFCtrlThread, &ZZ_iSIFControlThread::StopTestAcquisition, Qt::DirectConnection);
|
||||||
//connect(this, &ZZ_DataGrabberThread::SignalStopGrab, &m_tcIS1CtrlThread, &ZZ_IS1ControlThread::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_tcISIFCtrlThread, &ZZ_iSIFControlThread::SignalAcqFinished, this, &ZZ_DataGrabberThread::HandleThreadEvent);
|
||||||
connect(&m_tcIS1CtrlThread, &ZZ_IS1ControlThread::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);
|
connect(this, &ZZ_DataGrabberThread::SignalGrabOnceFinished, this, &ZZ_DataGrabberThread::TestGrabOnce);
|
||||||
//m_tcISIFCtrlThread.SetWaitCondition(&m_wcWaitISIF,&m_mTestMutex);
|
//m_tcISIFCtrlThread.SetWaitCondition(&m_wcWaitISIF,&m_mTestMutex);
|
||||||
@ -60,12 +74,21 @@ int ZZ_DataGrabberThread::StartGrab()
|
|||||||
|
|
||||||
int ZZ_DataGrabberThread::StartGrabberThread()
|
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_pqISIFThreadHolder = new QThread();
|
||||||
m_tcISIFCtrlThread.moveToThread(m_pqISIFThreadHolder);
|
m_pControlThread[0]->moveToThread(m_pqISIFThreadHolder);
|
||||||
m_pqISIFThreadHolder->start();
|
m_pqISIFThreadHolder->start();
|
||||||
|
|
||||||
m_pqIS1ThreadHolder = new QThread();
|
m_pqIS1ThreadHolder = new QThread();
|
||||||
m_tcIS1CtrlThread.moveToThread(m_pqIS1ThreadHolder);
|
m_pControlThread[1]->moveToThread(m_pqIS1ThreadHolder);
|
||||||
m_pqIS1ThreadHolder->start();
|
m_pqIS1ThreadHolder->start();
|
||||||
//m_stCameraServiceThread.SetController(this);
|
//m_stCameraServiceThread.SetController(this);
|
||||||
return 0;
|
return 0;
|
||||||
@ -100,6 +123,7 @@ int ZZ_DataGrabberThread::TestGrab()
|
|||||||
|
|
||||||
int ZZ_DataGrabberThread::TestGrabOnce()
|
int ZZ_DataGrabberThread::TestGrabOnce()
|
||||||
{
|
{
|
||||||
|
InitThreadStatus();
|
||||||
emit SignalStartGrabOnce();
|
emit SignalStartGrabOnce();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
#include"pch.h"
|
#include"pch.h"
|
||||||
#include "ThreadIS1Controller.h"
|
#include "ThreadIS1Controller.h"
|
||||||
#include "ThreadiSIFController.h"
|
#include "ThreadiSIFController.h"
|
||||||
|
#include <vector>
|
||||||
|
using namespace std;
|
||||||
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
||||||
class ZZ_DataGrabberThread :public QObject
|
class ZZ_DataGrabberThread :public QObject
|
||||||
{
|
{
|
||||||
@ -17,6 +19,8 @@ public:
|
|||||||
//QWaitCondition m_wcWaitISIF,m_wcWaitIS1;
|
//QWaitCondition m_wcWaitISIF,m_wcWaitIS1;
|
||||||
//QMutex m_mTestMutex;
|
//QMutex m_mTestMutex;
|
||||||
private:
|
private:
|
||||||
|
vector<ZZ_ATPAbsCtrlThread *> m_pControlThread;
|
||||||
|
|
||||||
ZZ_iSIFControlThread m_tcISIFCtrlThread;
|
ZZ_iSIFControlThread m_tcISIFCtrlThread;
|
||||||
ZZ_IS1ControlThread m_tcIS1CtrlThread;
|
ZZ_IS1ControlThread m_tcIS1CtrlThread;
|
||||||
QThread* m_pqISIFThreadHolder;
|
QThread* m_pqISIFThreadHolder;
|
||||||
|
Reference in New Issue
Block a user