mirror of
http://172.16.0.230/r/SIF/TowerOptoSifAndSpectral.git
synced 2025-10-19 03:49:42 +08:00
添加了新的控制基类,现在iSIF和IS1的控制类将派生自基类;学习并测试了Qthread一些功能;测试了QMutex的一些功能
This commit is contained in:
25
main.cpp
25
main.cpp
@ -1,6 +1,7 @@
|
||||
#include "pch.h"
|
||||
#include "ATPControl_Serial_QT.h"
|
||||
#include "Logger.h"
|
||||
#include "ThreadDataGrabber.h"
|
||||
using namespace std;
|
||||
#pragma once
|
||||
|
||||
@ -14,13 +15,25 @@ int main(int argc, char *argv[])
|
||||
qDebug() << qstrTest;
|
||||
cout << "This is a test message";
|
||||
//////////////////////////////////////////////////////////////////////////test
|
||||
ZZ_ATPControl_Serial_Qt m_ctrlATP;
|
||||
QByteArray qbTest;
|
||||
m_ctrlATP.ATPInitialize(7);
|
||||
m_ctrlATP.GetDeviceAttribute();
|
||||
m_ctrlATP.SetExposureTime(m_ctrlATP.m_adaDeviceAttr.iMinIntegrationTime);
|
||||
ZZ_DataGrabberThread m_test;
|
||||
//m_test.GrabOnce();
|
||||
QThread* m_pqDataGrabberThreadHolder;
|
||||
|
||||
m_ctrlATP.RecvData(qbTest);
|
||||
m_pqDataGrabberThreadHolder = new QThread();
|
||||
m_test.moveToThread(m_pqDataGrabberThreadHolder);
|
||||
m_pqDataGrabberThreadHolder->start();
|
||||
|
||||
m_test.TestGrab();
|
||||
|
||||
QThread::msleep(5000);
|
||||
|
||||
m_test.StopTestGrab();
|
||||
// ZZ_ATPControl_Serial_Qt m_ctrlATP;
|
||||
// QByteArray qbTest;
|
||||
// m_ctrlATP.ATPInitialize(7);
|
||||
// m_ctrlATP.GetDeviceAttribute();
|
||||
// m_ctrlATP.SetExposureTime(m_ctrlATP.m_adaDeviceAttr.iMinIntegrationTime);
|
||||
// m_ctrlATP.RecvData(qbTest);
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
return a.exec();
|
||||
}
|
||||
|
@ -1,25 +1,25 @@
|
||||
#include "SystemConfigger.h"
|
||||
|
||||
ZZ_SysConfigger::ZZ_SysConfigger(QObject *parent /*= nullptr*/)
|
||||
{
|
||||
ZZ_SysConfigger::ZZ_SysConfigger(QObject *parent /*= nullptr*/)
|
||||
{
|
||||
m_qstrFilePath = QCoreApplication::applicationDirPath()+ "/Settings/DeviceSettings.ini";
|
||||
}
|
||||
}
|
||||
|
||||
ZZ_SysConfigger::~ZZ_SysConfigger()
|
||||
{
|
||||
}
|
||||
ZZ_SysConfigger::~ZZ_SysConfigger()
|
||||
{
|
||||
}
|
||||
|
||||
int ZZ_SysConfigger::LoadSettings_IS1()
|
||||
{
|
||||
int ZZ_SysConfigger::LoadSettings_IS1()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int ZZ_SysConfigger::LoadSettings_iSIF()
|
||||
{
|
||||
int ZZ_SysConfigger::LoadSettings_iSIF()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int ZZ_SysConfigger::LoadSettings_System()
|
||||
{
|
||||
int ZZ_SysConfigger::LoadSettings_System()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
31
source/Thread/ATPAbstractController.cpp
Normal file
31
source/Thread/ATPAbstractController.cpp
Normal 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;
|
||||
}
|
29
source/Thread/ATPAbstractController.h
Normal file
29
source/Thread/ATPAbstractController.h
Normal 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();
|
||||
};
|
@ -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;
|
||||
}
|
||||
|
@ -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();
|
||||
};
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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:
|
||||
};
|
@ -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();
|
||||
};
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -8,3 +8,5 @@
|
||||
#include <QtSerialPort/QSerialPortInfo>
|
||||
#include <QDir>
|
||||
#include <QObject>
|
||||
#include <QThread>
|
||||
#include <QMutex>
|
Reference in New Issue
Block a user