添加了新的控制基类,现在iSIF和IS1的控制类将派生自基类;学习并测试了Qthread一些功能;测试了QMutex的一些功能

This commit is contained in:
2021-11-08 16:59:50 +08:00
parent 377be64388
commit 9c93e66a05
11 changed files with 254 additions and 33 deletions

View File

@ -1,25 +1,25 @@
#include "SystemConfigger.h"
ZZ_SysConfigger::ZZ_SysConfigger(QObject *parent /*= nullptr*/)
{
m_qstrFilePath = QCoreApplication::applicationDirPath()+ "/Settings/DeviceSettings.ini";
}
ZZ_SysConfigger::~ZZ_SysConfigger()
{
}
int ZZ_SysConfigger::LoadSettings_IS1()
{
return 0;
}
int ZZ_SysConfigger::LoadSettings_iSIF()
{
return 0;
}
int ZZ_SysConfigger::LoadSettings_System()
{
return 0;
}
ZZ_SysConfigger::ZZ_SysConfigger(QObject *parent /*= nullptr*/)
{
m_qstrFilePath = QCoreApplication::applicationDirPath()+ "/Settings/DeviceSettings.ini";
}
ZZ_SysConfigger::~ZZ_SysConfigger()
{
}
int ZZ_SysConfigger::LoadSettings_IS1()
{
return 0;
}
int ZZ_SysConfigger::LoadSettings_iSIF()
{
return 0;
}
int ZZ_SysConfigger::LoadSettings_System()
{
return 0;
}

View File

@ -0,0 +1,31 @@
#include "ATPAbstractController.h"
ZZ_ATPAbsCtrlThread::ZZ_ATPAbsCtrlThread(QObject* parent /*= nullptr*/)
{
}
ZZ_ATPAbsCtrlThread::~ZZ_ATPAbsCtrlThread()
{
}
int ZZ_ATPAbsCtrlThread::StartTestAcquisition()
{
m_bFlagIsCollecting = true;
while (m_bFlagIsCollecting)
{
QMutexLocker locker(&m_Mutex);
QThread::msleep(1000);
qDebug() << "ThreadATPAbsController busy";
}
qDebug() << "ThreadATPAbsController quit";
return 0;
}
int ZZ_ATPAbsCtrlThread::StopTestAcquisition()
{
//QMutexLocker locker(&m_Mutex);
m_bFlagIsCollecting = false;
return 0;
}

View File

@ -0,0 +1,29 @@
#pragma once
#include "pch.h"
#include "ATPControl_Serial_QT.h"
#include <atomic>
class ZZ_ATPAbsCtrlThread :public QObject
{
Q_OBJECT
public:
public:
std::atomic<bool> m_bFlagIsCollecting;
QMutex m_Mutex;
public:
ZZ_ATPAbsCtrlThread(QObject* parent = nullptr);
virtual ~ZZ_ATPAbsCtrlThread();
private:
ZZ_ATPControl_Serial_Qt m_iSIFctrl;
public slots:
virtual int StartTestAcquisition();
int StopTestAcquisition();
signals:
void AcqStarted();
void AcqFinished();
};

View File

@ -0,0 +1,50 @@
#include "ThreadDataGrabber.h"
ZZ_DataGrabberThread::ZZ_DataGrabberThread(QObject* parent /*= nullptr*/)
{
SetupSignals();
StartGrabberThread();
}
ZZ_DataGrabberThread::~ZZ_DataGrabberThread()
{
}
int ZZ_DataGrabberThread::SetupSignals()
{
connect(this, &ZZ_DataGrabberThread::SignalStartGrabOnce, &m_tcISIFCtrlThread, &ZZ_iSIFControlThread::StartTestAcquisition);
connect(this, &ZZ_DataGrabberThread::SignalStartGrabOnce, &m_tcIS1CtrlThread, &ZZ_IS1ControlThread::StartTestAcquisition);
bool bres = connect(this, &ZZ_DataGrabberThread::SignalStopGrab, &m_tcISIFCtrlThread, &ZZ_iSIFControlThread::StopTestAcquisition, Qt::DirectConnection);
bres = connect(this, &ZZ_DataGrabberThread::SignalStopGrab, &m_tcIS1CtrlThread, &ZZ_IS1ControlThread::StopTestAcquisition, Qt::DirectConnection);
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_stCameraServiceThread.SetController(this);
return 0;
}
int ZZ_DataGrabberThread::TestGrab()
{
emit SignalStartGrabOnce();
return 0;
}
int ZZ_DataGrabberThread::StopTestGrab()
{
emit SignalStopGrab();
//m_tcISIFCtrlThread.StopTestAcquisition();
//m_tcIS1CtrlThread.StopTestAcquisition();
return 0;
}

View File

@ -1 +1,31 @@
#pragma once
#include"pch.h"
#include "ThreadIS1Controller.h"
#include "ThreadiSIFController.h"
class ZZ_DataGrabberThread :public QObject
{
Q_OBJECT
public:
ZZ_DataGrabberThread(QObject* parent = nullptr);
~ZZ_DataGrabberThread();
public:
private:
ZZ_iSIFControlThread m_tcISIFCtrlThread;
ZZ_IS1ControlThread m_tcIS1CtrlThread;
QThread* m_pqISIFThreadHolder;
QThread* m_pqIS1ThreadHolder;
public:
int SetupSignals();
int StartGrabberThread();
private:
public slots:
int TestGrab();
int StopTestGrab();
signals:
void SignalStartGrabOnce();
void SignalStopGrab();
};

View File

@ -0,0 +1,23 @@
#include "ThreadIS1Controller.h"
ZZ_IS1ControlThread::ZZ_IS1ControlThread(QObject* parent /*= nullptr*/)
{
}
ZZ_IS1ControlThread::~ZZ_IS1ControlThread()
{
}
int ZZ_IS1ControlThread::StartTestAcquisition()
{
m_bFlagIsCollecting = true;
while (m_bFlagIsCollecting)
{
//QMutexLocker locker(&m_Mutex);
QThread::msleep(1000);
qDebug() << "ThreadIS1Controller busy";
}
qDebug() << "ThreadIS1Controller quit";
return 0;
}

View File

@ -1 +1,14 @@
#pragma once
#include "ATPAbstractController.h"
class ZZ_IS1ControlThread :public ZZ_ATPAbsCtrlThread
{
Q_OBJECT
public:
ZZ_IS1ControlThread(QObject* parent = nullptr);
~ZZ_IS1ControlThread();
private:
public slots:
int StartTestAcquisition();
signals:
};

View File

@ -1,12 +1,17 @@
#pragma once
#include "pch.h"
#include "ATPAbstractController.h"
class ZZ_iSIFControlThread :public QObject
class ZZ_iSIFControlThread :public ZZ_ATPAbsCtrlThread
{
Q_OBJECT
public:
private:
public:
ZZ_iSIFControlThread(QObject* parent = nullptr);
~ZZ_iSIFControlThread();
public slots:
int StartTestAcquisition();
};

View File

@ -0,0 +1,25 @@
#include "ThreadiSIFController.h"
ZZ_iSIFControlThread::ZZ_iSIFControlThread(QObject* parent /*= nullptr*/)
{
}
ZZ_iSIFControlThread::~ZZ_iSIFControlThread()
{
}
int ZZ_iSIFControlThread::StartTestAcquisition()
{
m_bFlagIsCollecting = true;
while (m_bFlagIsCollecting)
{
//QMutexLocker locker(&m_Mutex);
QThread::msleep(1000);
qDebug() << "ThreadiSIFController busy";
}
qDebug() << "ThreadiSIFController quit";
return 0;
}

View File

@ -7,4 +7,6 @@
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
#include <QDir>
#include <QObject>
#include <QObject>
#include <QThread>
#include <QMutex>