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:
61
UnSupported/ATPAbstractController.cpp
Normal file
61
UnSupported/ATPAbstractController.cpp
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
#include "ATPAbstractController.h"
|
||||||
|
|
||||||
|
ZZ_ATPAbsCtrlThread::ZZ_ATPAbsCtrlThread(QObject* parent /*= nullptr*/)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ZZ_ATPAbsCtrlThread::~ZZ_ATPAbsCtrlThread()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int ZZ_ATPAbsCtrlThread::InitializeFSControl()
|
||||||
|
{
|
||||||
|
qDebug() << "base class not implemented";
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ZZ_ATPAbsCtrlThread::StartAcquisition()
|
||||||
|
{
|
||||||
|
qDebug() << "base class not implemented";
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ZZ_ATPAbsCtrlThread::StopAcquisition()
|
||||||
|
{
|
||||||
|
qDebug() << "base class not implemented";
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// void ZZ_ATPAbsCtrlThread::SetWaitCondition(QWaitCondition *pFinish, QMutex *pMutex)
|
||||||
|
// {
|
||||||
|
// m_pwcFinish = pFinish;
|
||||||
|
// m_pMutex = pMutex;
|
||||||
|
// }
|
||||||
|
|
||||||
|
int ZZ_ATPAbsCtrlThread::StartTestAcquisition()
|
||||||
|
{
|
||||||
|
qDebug() << "base class not implemented";
|
||||||
|
return 0;
|
||||||
|
// m_bFlagIsCollecting = true;
|
||||||
|
// while (m_bFlagIsCollecting)
|
||||||
|
// {
|
||||||
|
// //QMutexLocker locker(&m_Mutex);
|
||||||
|
// QThread::msleep(1000);
|
||||||
|
// qDebug() << "ThreadATPAbsController busy";
|
||||||
|
// }
|
||||||
|
// qDebug() << "ThreadATPAbsController quit";
|
||||||
|
//
|
||||||
|
// //m_pwcFinish->wakeAll();
|
||||||
|
// emit SignalAcqFinished(0,1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int ZZ_ATPAbsCtrlThread::StopTestAcquisition()
|
||||||
|
{
|
||||||
|
qDebug() << "base class not implemented";
|
||||||
|
return 0;
|
||||||
|
//QMutexLocker locker(&m_Mutex);
|
||||||
|
//m_bFlagIsCollecting = false;
|
||||||
|
}
|
@ -10,9 +10,6 @@
|
|||||||
class ZZ_ATPAbsCtrlThread :public QObject
|
class ZZ_ATPAbsCtrlThread :public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::atomic<bool> m_bFlagIsCollecting;
|
std::atomic<bool> m_bFlagIsCollecting;
|
||||||
//QMutex *m_pMutex;
|
//QMutex *m_pMutex;
|
||||||
@ -21,11 +18,20 @@ public:
|
|||||||
ZZ_ATPAbsCtrlThread(QObject* parent = nullptr);
|
ZZ_ATPAbsCtrlThread(QObject* parent = nullptr);
|
||||||
virtual ~ZZ_ATPAbsCtrlThread();
|
virtual ~ZZ_ATPAbsCtrlThread();
|
||||||
private:
|
private:
|
||||||
ZZ_ATPControl_Serial_Qt m_iSIFctrl;
|
CIrisFSBase *m_pFSCtrl;
|
||||||
|
//ZZ_ATPControl_Serial_Qt m_iSIFctrl;
|
||||||
public slots:
|
public slots:
|
||||||
//virtual void SetWaitCondition(QWaitCondition *pFinish, QMutex *pMutex);
|
|
||||||
|
//create derived class from base class
|
||||||
|
virtual int InitializeFSControl();
|
||||||
|
|
||||||
|
virtual int StartAcquisition();
|
||||||
|
virtual int StopAcquisition();
|
||||||
|
|
||||||
virtual int StartTestAcquisition();
|
virtual int StartTestAcquisition();
|
||||||
int StopTestAcquisition();
|
int StopTestAcquisition();
|
||||||
|
|
||||||
|
//virtual void SetWaitCondition(QWaitCondition *pFinish, QMutex *pMutex);
|
||||||
signals:
|
signals:
|
||||||
void SignalAcqStarted();
|
void SignalAcqStarted();
|
||||||
void SignalAcqFinished(int iThreadID,int iFlagStatus);
|
void SignalAcqFinished(int iThreadID,int iFlagStatus);
|
@ -3,8 +3,6 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
#pragma once
|
#pragma once
|
||||||
#include"pch.h"
|
#include"pch.h"
|
||||||
#include "ThreadIS1Controller.h"
|
|
||||||
#include "ThreadiSIFController.h"
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
||||||
@ -21,8 +19,8 @@ public:
|
|||||||
private:
|
private:
|
||||||
vector<ZZ_ATPAbsCtrlThread *> m_pControlThread;
|
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;
|
||||||
QThread* m_pqIS1ThreadHolder;
|
QThread* m_pqIS1ThreadHolder;
|
||||||
|
|
1
UnSupported/ThreadOSIFAController.cpp
Normal file
1
UnSupported/ThreadOSIFAController.cpp
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "ThreadOSIFAController.h"
|
12
UnSupported/ThreadOSIFAController.h
Normal file
12
UnSupported/ThreadOSIFAController.h
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "ATPAbstractController.h"
|
||||||
|
|
||||||
|
|
||||||
|
class ZZ_OSIFAControlThread :public ZZ_ATPAbsCtrlThread
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ZZ_OSIFAControlThread(QObject* parent = nullptr);
|
||||||
|
~ZZ_OSIFAControlThread();
|
||||||
|
public slots:
|
||||||
|
};
|
1
UnSupported/ThreadOSIFBController.cpp
Normal file
1
UnSupported/ThreadOSIFBController.cpp
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "ThreadOSIFBController.h"
|
11
UnSupported/ThreadOSIFBController.h
Normal file
11
UnSupported/ThreadOSIFBController.h
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "ATPAbstractController.h"
|
||||||
|
|
||||||
|
class ZZ_OSIFBControlThread :public ZZ_ATPAbsCtrlThread
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ZZ_OSIFBControlThread(QObject* parent = nullptr);
|
||||||
|
~ZZ_OSIFBControlThread();
|
||||||
|
public slots:
|
||||||
|
};
|
10
config/DeviceSettings.ini
Normal file
10
config/DeviceSettings.ini
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
[DEVICE INFO]
|
||||||
|
TotalSpectrometer=1
|
||||||
|
[FS1]
|
||||||
|
Model=OSIFAlpha
|
||||||
|
[FS2]
|
||||||
|
Model=Null
|
||||||
|
[LinearShutter]
|
||||||
|
TotalPosition=2
|
||||||
|
Position0=100000
|
||||||
|
Position1=200000
|
0
config/SystemSettings.ini
Normal file
0
config/SystemSettings.ini
Normal file
28
main.cpp
28
main.cpp
@ -1,8 +1,8 @@
|
|||||||
#include "pch.h"
|
#include "pch.h"
|
||||||
#include "ATPControl_Serial_QT.h"
|
#include "ATPControl_Serial_QT.h"
|
||||||
#include "Logger.h"
|
#include "Logger.h"
|
||||||
#include "ThreadDataGrabber.h"
|
|
||||||
#include "SystemConfigger.h"
|
#include "SystemConfigger.h"
|
||||||
|
#include "MainDataGrabber.h"
|
||||||
using namespace std;
|
using namespace std;
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
@ -12,23 +12,27 @@ int main(int argc, char *argv[])
|
|||||||
QCoreApplication a(argc, argv);
|
QCoreApplication a(argc, argv);
|
||||||
//////////////////////////////////////////////////////////////////////////logger
|
//////////////////////////////////////////////////////////////////////////logger
|
||||||
//QT_LOG::ZZ_InitLogger(QCoreApplication::applicationDirPath() + "/Log/");
|
//QT_LOG::ZZ_InitLogger(QCoreApplication::applicationDirPath() + "/Log/");
|
||||||
QString qstrTest="This is a test message 2";
|
|
||||||
qDebug() << qstrTest;
|
|
||||||
cout << "This is a test message";
|
|
||||||
//////////////////////////////////////////////////////////////////////////configger
|
//////////////////////////////////////////////////////////////////////////configger
|
||||||
ZZ_SysConfigger test;
|
ZZ_SysConfigger test;
|
||||||
test.Initialize();
|
test.Initialize();
|
||||||
test.LoadSettingsFromFile_System();
|
test.LoadSettingsFromFile_System();
|
||||||
test.LoadSettings_Test();
|
|
||||||
//////////////////////////////////////////////////////////////////////////test
|
//////////////////////////////////////////////////////////////////////////test
|
||||||
ZZ_DataGrabberThread m_test;
|
//QString qstrTest = "This is a test message 2";
|
||||||
//m_test.GrabOnce();
|
//qDebug() << qstrTest;
|
||||||
QThread* m_pqDataGrabberThreadHolder;
|
//cout << "This is a test message";
|
||||||
|
|
||||||
m_pqDataGrabberThreadHolder = new QThread();
|
//test.LoadSettings_Test();
|
||||||
m_test.moveToThread(m_pqDataGrabberThreadHolder);
|
|
||||||
m_pqDataGrabberThreadHolder->start();
|
//ZZ_DataGrabberThread m_test;
|
||||||
m_test.TestGrabOnce();
|
//m_test.GrabOnce();
|
||||||
|
//QThread* m_pqDataGrabberThreadHolder;
|
||||||
|
|
||||||
|
//m_pqDataGrabberThreadHolder = new QThread();
|
||||||
|
//m_test.moveToThread(m_pqDataGrabberThreadHolder);
|
||||||
|
//m_pqDataGrabberThreadHolder->start();
|
||||||
|
//m_test.TestGrabOnce();
|
||||||
//m_test.StartGrabCall();
|
//m_test.StartGrabCall();
|
||||||
//QThread::msleep(5000);
|
//QThread::msleep(5000);
|
||||||
|
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
#pragma once
|
#pragma once
|
||||||
#include "pch.h"
|
#include "pch.h"
|
||||||
|
#include <string>
|
||||||
|
#define MAX_DEVICENUMBER_FS 2
|
||||||
namespace ZZ_MISCDEF
|
namespace ZZ_MISCDEF
|
||||||
{
|
{
|
||||||
typedef unsigned char ZZ_U8;
|
typedef unsigned char ZZ_U8;
|
||||||
@ -40,8 +41,57 @@ namespace ZZ_MISCDEF
|
|||||||
}DeviceAttribute;
|
}DeviceAttribute;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum DeviceModel
|
||||||
|
{
|
||||||
|
OSIFAlpha=0,
|
||||||
|
OSIFBeta,
|
||||||
|
ISIF,
|
||||||
|
IS1,
|
||||||
|
IS2
|
||||||
|
};
|
||||||
|
|
||||||
}
|
// inline std::string GetDeviceModelName(int iModel)
|
||||||
|
// {
|
||||||
|
// switch (iModel)
|
||||||
|
// {
|
||||||
|
// case DeviceModel::OSIFAlpha: return "OSIFAlpha"; break;
|
||||||
|
// case DeviceModel::OSIFBeta: return "OSIFBeta"; break;
|
||||||
|
// case DeviceModel::ISIF: return "ISIF"; break;
|
||||||
|
// case DeviceModel::IS1: return "IS1"; break;
|
||||||
|
// case DeviceModel::IS2: return "IS2"; break;
|
||||||
|
// default: return "error"; break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// inline int GetIndex(std::string strDeviceModelName)
|
||||||
|
// {
|
||||||
|
// if (strDeviceModelName== "OSIFAlpha")
|
||||||
|
// {
|
||||||
|
// return DeviceModel::OSIFAlpha;
|
||||||
|
// }
|
||||||
|
// else if (strDeviceModelName == "OSIFBeta")
|
||||||
|
// {
|
||||||
|
// return DeviceModel::OSIFBeta;
|
||||||
|
// }
|
||||||
|
// else if (strDeviceModelName == "ISIF")
|
||||||
|
// {
|
||||||
|
// return DeviceModel::ISIF;
|
||||||
|
// }
|
||||||
|
// else if (strDeviceModelName == "IS1")
|
||||||
|
// {
|
||||||
|
// return DeviceModel::IS1;
|
||||||
|
// }
|
||||||
|
// else if(strDeviceModelName == "IS2")
|
||||||
|
// {
|
||||||
|
// return DeviceModel::IS2;
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// return -1;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
//ATPָ<50><D6B8>ת<EFBFBD><D7AA>
|
//ATPָ<50><D6B8>ת<EFBFBD><D7AA>
|
||||||
namespace ATP
|
namespace ATP
|
||||||
@ -116,6 +166,12 @@ namespace ZZ_MISCDEF
|
|||||||
//<2F><><EFBFBD>в<EFBFBD><D0B2><EFBFBD>
|
//<2F><><EFBFBD>в<EFBFBD><D0B2><EFBFBD>
|
||||||
namespace ZZ_RUNPARAMS
|
namespace ZZ_RUNPARAMS
|
||||||
{
|
{
|
||||||
|
typedef struct tagDeviceContext
|
||||||
|
{
|
||||||
|
ZZ_U8 ucDeviceNumber;
|
||||||
|
ZZ_U8 ucDeviceModel[MAX_DEVICENUMBER_FS];
|
||||||
|
}DeviceContext;
|
||||||
|
|
||||||
typedef struct tagAcquisitionTimeSettings
|
typedef struct tagAcquisitionTimeSettings
|
||||||
{
|
{
|
||||||
QTime qtStartTime;
|
QTime qtStartTime;
|
||||||
@ -123,6 +179,13 @@ namespace ZZ_MISCDEF
|
|||||||
QTime qtInterval;
|
QTime qtInterval;
|
||||||
}AcqTimeSettings;
|
}AcqTimeSettings;
|
||||||
|
|
||||||
|
typedef struct tagRunTimeGrabberParams
|
||||||
|
{
|
||||||
|
DeviceContext dcParams;
|
||||||
|
AcqTimeSettings atsParams;
|
||||||
|
}RunTimeGrabberParams;
|
||||||
|
|
||||||
|
|
||||||
typedef struct tagATPCalibrationSettings
|
typedef struct tagATPCalibrationSettings
|
||||||
{
|
{
|
||||||
//Up0 Down1,2,3
|
//Up0 Down1,2,3
|
||||||
@ -217,4 +280,4 @@ namespace ZZ_MISCDEF
|
|||||||
}ATPDataHeader;
|
}ATPDataHeader;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
};
|
||||||
|
@ -1,34 +1,59 @@
|
|||||||
#include "SystemConfigger.h"
|
#include "SystemConfigger.h"
|
||||||
|
|
||||||
|
|
||||||
ZZ_SysConfigger::ZZ_SysConfigger(QObject *parent /*= nullptr*/)
|
ZZ_SysConfigger::ZZ_SysConfigger(QObject *parent /*= nullptr*/)
|
||||||
{
|
{
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
m_qstrFilePath = QCoreApplication::applicationDirPath() + "/home/data/Settings/DeviceSettings.ini";
|
m_qstrDeviceConfigFilePath = "E:/WorkSpace/TowerOptoSifAndSpectral/config/DeviceSettings.ini";
|
||||||
m_qstrJSONConfigFilePath = "E:/WorkSpace/TowerOptoSifAndSpectral/config/config.json";
|
m_qstrJSONConfigFilePath = "E:/WorkSpace/TowerOptoSifAndSpectral/config/config.json";
|
||||||
#else
|
#else
|
||||||
m_qstrJSONConfigFilePath = ("/home/data/Setting/config.json");
|
m_qstrJSONConfigFilePath = ("/home/data/Setting/config.json");
|
||||||
#endif // DEBUG
|
#endif // DEBUG
|
||||||
|
|
||||||
|
m_qsDeviceConfig = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ZZ_SysConfigger::~ZZ_SysConfigger()
|
ZZ_SysConfigger::~ZZ_SysConfigger()
|
||||||
{
|
{
|
||||||
if (qfConfig.isOpen())
|
if (qfJConfig.isOpen())
|
||||||
{
|
{
|
||||||
qfConfig.close();
|
qfJConfig.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int ZZ_SysConfigger::Initialize()
|
int ZZ_SysConfigger::Initialize()
|
||||||
{
|
{
|
||||||
qfConfig.setFileName(m_qstrJSONConfigFilePath);
|
//////////////////////////////////////////////////////////////////////////load device settings
|
||||||
bool bRes = qfConfig.open(QIODevice::ReadOnly);
|
using namespace ZZ_MISCDEF;
|
||||||
|
QMetaEnum enumDeviceModel = QMetaEnum::fromType<ConfiggerDeviceModel>();
|
||||||
|
|
||||||
|
if (m_qsDeviceConfig!=NULL)
|
||||||
|
{
|
||||||
|
delete m_qsDeviceConfig;
|
||||||
|
}
|
||||||
|
m_qsDeviceConfig = new QSettings(m_qstrDeviceConfigFilePath, QSettings::IniFormat);
|
||||||
|
m_struDeviceContext.ucDeviceNumber = m_qsDeviceConfig->value(QString("DEVICE INFO/TotalSpectrometer"),-1).toInt();
|
||||||
|
if (m_struDeviceContext.ucDeviceNumber == -1)
|
||||||
|
{
|
||||||
|
qDebug() << "DEVICE INFO TotalSpectrometer Value Err.";
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
for (ZZ_U8 i=0;i< m_struDeviceContext.ucDeviceNumber;i++)
|
||||||
|
{
|
||||||
|
QString qstrTemp= m_qsDeviceConfig->value(QString("FS%1/Model").arg(i+1), "Null").toString();
|
||||||
|
m_struDeviceContext.ucDeviceModel[i]= enumDeviceModel.keysToValue(qstrTemp.toLatin1().data());
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////load json settings
|
||||||
|
qfJConfig.setFileName(m_qstrJSONConfigFilePath);
|
||||||
|
bool bRes = qfJConfig.open(QIODevice::ReadOnly);
|
||||||
if (!bRes)
|
if (!bRes)
|
||||||
{
|
{
|
||||||
qDebug() << "QFile open config file Err.";
|
qDebug() << "QFile open config file Err.";
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_qbaJData = qfConfig.readAll();
|
m_qbaJData = qfJConfig.readAll();
|
||||||
m_qjdJDoc= QJsonDocument::fromJson(m_qbaJData, &m_qjpeJErr);
|
m_qjdJDoc= QJsonDocument::fromJson(m_qbaJData, &m_qjpeJErr);
|
||||||
if (m_qjpeJErr.error != QJsonParseError::NoError)
|
if (m_qjpeJErr.error != QJsonParseError::NoError)
|
||||||
{
|
{
|
||||||
@ -39,6 +64,13 @@
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ZZ_SysConfigger::GetGrabberRunParams(RunTimeGrabberParams &struGrabberRTParams)
|
||||||
|
{
|
||||||
|
struGrabberRTParams.atsParams = m_struAcqTime;
|
||||||
|
struGrabberRTParams.dcParams = m_struDeviceContext;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int ZZ_SysConfigger::LoadSettingsFromFile_IS1()
|
int ZZ_SysConfigger::LoadSettingsFromFile_IS1()
|
||||||
{
|
{
|
||||||
m_struIS1Info.qstrCalFile_U0 = m_qjoJObj.value("IS1UpCalFile").toString();
|
m_struIS1Info.qstrCalFile_U0 = m_qjoJObj.value("IS1UpCalFile").toString();
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
||||||
using namespace ZZ_MISCDEF::ZZ_DATAFILE;
|
using namespace ZZ_MISCDEF::ZZ_DATAFILE;
|
||||||
|
|
||||||
|
|
||||||
class ZZ_SysConfigger :public QObject
|
class ZZ_SysConfigger :public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -14,24 +13,38 @@ public:
|
|||||||
virtual ~ZZ_SysConfigger();
|
virtual ~ZZ_SysConfigger();
|
||||||
public:
|
public:
|
||||||
int Initialize();
|
int Initialize();
|
||||||
|
int GetGrabberRunParams(RunTimeGrabberParams &struGrabberRTParams);
|
||||||
|
|
||||||
int LoadSettingsFromFile_IS1();
|
int LoadSettingsFromFile_IS1();
|
||||||
int LoadSettingsFromFile_iSIF();
|
int LoadSettingsFromFile_iSIF();
|
||||||
int LoadSettingsFromFile_System();
|
int LoadSettingsFromFile_System();
|
||||||
int LoadSettingsFromFile_MISC();
|
int LoadSettingsFromFile_MISC();
|
||||||
|
|
||||||
int LoadSettings_Test();
|
int LoadSettings_Test();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
AcqTimeSettings m_struAcqTime;
|
enum ConfiggerDeviceModel
|
||||||
|
{
|
||||||
|
OSIFAlpha = 0,
|
||||||
|
OSIFBeta,
|
||||||
|
ISIF,
|
||||||
|
IS1,
|
||||||
|
IS2,
|
||||||
|
Null
|
||||||
|
};
|
||||||
|
Q_ENUM(ConfiggerDeviceModel);
|
||||||
|
//////////////////////////////////////////////////////////////////////////run-time settings
|
||||||
|
AcqTimeSettings m_struAcqTime;
|
||||||
|
DeviceContext m_struDeviceContext;
|
||||||
|
//////////////////////////////////////////////////////////////////////////
|
||||||
EContext m_struEC;
|
EContext m_struEC;
|
||||||
MEContext m_struMEC;
|
MEContext m_struMEC;
|
||||||
IS1Info m_struIS1Info;
|
IS1Info m_struIS1Info;
|
||||||
ISIFInfo m_struISIFInfo;
|
ISIFInfo m_struISIFInfo;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_qstrFilePath;
|
QString m_qstrDeviceConfigFilePath;
|
||||||
QString m_qstrJSONConfigFilePath;
|
QString m_qstrJSONConfigFilePath;
|
||||||
QFile qfConfig;
|
QFile qfJConfig/*,qfDeviceConfig*/;
|
||||||
|
QSettings *m_qsDeviceConfig;
|
||||||
|
|
||||||
QByteArray m_qbaJData;
|
QByteArray m_qbaJData;
|
||||||
QJsonParseError m_qjpeJErr;
|
QJsonParseError m_qjpeJErr;
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
#include "ATPAbstractController.h"
|
|
||||||
|
|
||||||
ZZ_ATPAbsCtrlThread::ZZ_ATPAbsCtrlThread(QObject* parent /*= nullptr*/)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ZZ_ATPAbsCtrlThread::~ZZ_ATPAbsCtrlThread()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
//
|
|
||||||
// void ZZ_ATPAbsCtrlThread::SetWaitCondition(QWaitCondition *pFinish, QMutex *pMutex)
|
|
||||||
// {
|
|
||||||
// m_pwcFinish = pFinish;
|
|
||||||
// m_pMutex = pMutex;
|
|
||||||
// }
|
|
||||||
|
|
||||||
int ZZ_ATPAbsCtrlThread::StartTestAcquisition()
|
|
||||||
{
|
|
||||||
m_bFlagIsCollecting = true;
|
|
||||||
while (m_bFlagIsCollecting)
|
|
||||||
{
|
|
||||||
//QMutexLocker locker(&m_Mutex);
|
|
||||||
QThread::msleep(1000);
|
|
||||||
qDebug() << "ThreadATPAbsController busy";
|
|
||||||
}
|
|
||||||
qDebug() << "ThreadATPAbsController quit";
|
|
||||||
|
|
||||||
//m_pwcFinish->wakeAll();
|
|
||||||
emit SignalAcqFinished(0,1);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int ZZ_ATPAbsCtrlThread::StopTestAcquisition()
|
|
||||||
{
|
|
||||||
//QMutexLocker locker(&m_Mutex);
|
|
||||||
m_bFlagIsCollecting = false;
|
|
||||||
return 0;
|
|
||||||
}
|
|
60
source/Thread/AbstractFSController.cpp
Normal file
60
source/Thread/AbstractFSController.cpp
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#include "AbstractFSController.h"
|
||||||
|
CAbstractFSController::CAbstractFSController(QObject* parent /*= nullptr*/)
|
||||||
|
{
|
||||||
|
m_iThreadID = -1;
|
||||||
|
m_iDeviceType = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
CAbstractFSController::~CAbstractFSController()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int CAbstractFSController::SetRunParas(int iThreadID, int iDeviceType)
|
||||||
|
{
|
||||||
|
m_iThreadID = iThreadID;
|
||||||
|
m_iDeviceType = iDeviceType;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int CAbstractFSController::InitializeFSControl()
|
||||||
|
{
|
||||||
|
if (m_iThreadID == -1|| m_iDeviceTyp == -1)
|
||||||
|
{
|
||||||
|
qDebug() << "Params Err. Call SetRunParas first";
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
switch (m_iDeviceType)
|
||||||
|
{
|
||||||
|
case DeviceModel::OSIFAlpha:
|
||||||
|
|
||||||
|
break;
|
||||||
|
case DeviceModel::OSIFBeta:
|
||||||
|
break;
|
||||||
|
case DeviceModel::ISIF:
|
||||||
|
m_pFSCtrl = new ZZ_ATPControl_Serial_Qt;
|
||||||
|
break;
|
||||||
|
case DeviceModel::IS1:
|
||||||
|
m_pFSCtrl = new ZZ_ATPControl_Serial_Qt;
|
||||||
|
break;
|
||||||
|
case DeviceModel::IS2:
|
||||||
|
m_pFSCtrl = new ZZ_ATPControl_Serial_Qt;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CAbstractFSController::StartAcquisition()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CAbstractFSController::StopAcquisition()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
33
source/Thread/AbstractFSController.h
Normal file
33
source/Thread/AbstractFSController.h
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "pch.h"
|
||||||
|
#include "ATPControl_Serial_QT.h"
|
||||||
|
#include <atomic>
|
||||||
|
|
||||||
|
class CAbstractFSController :public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
CAbstractFSController(QObject* parent = nullptr);
|
||||||
|
virtual ~CAbstractFSController();
|
||||||
|
public:
|
||||||
|
private:
|
||||||
|
CIrisFSBase *m_pFSCtrl;
|
||||||
|
|
||||||
|
int m_iThreadID;
|
||||||
|
int m_iDeviceType;
|
||||||
|
public slots:
|
||||||
|
|
||||||
|
//call first
|
||||||
|
virtual int SetRunParas(int iThreadID, int iDeviceType);
|
||||||
|
|
||||||
|
//create derived class from base class
|
||||||
|
virtual int InitializeFSControl();
|
||||||
|
|
||||||
|
virtual int StartAcquisition();
|
||||||
|
|
||||||
|
virtual int StopAcquisition();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void SignalAcqStarted();
|
||||||
|
void SignalAcqFinished(int iThreadID, int iFlagStatus);
|
||||||
|
};
|
17
source/Thread/MainDataGrabber.cpp
Normal file
17
source/Thread/MainDataGrabber.cpp
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
int CMainDataGrabber::SetGrabberParams(RunTimeGrabberParams struGrabberRTParams)
|
||||||
|
{
|
||||||
|
m_struAcqTime = struGrabberRTParams.atsParams;
|
||||||
|
m_struDeviceContext = struGrabberRTParams.dcParams;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CMainDataGrabber::InitializeWorkers()
|
||||||
|
{
|
||||||
|
for (ZZ_U8 i = 0; i < m_struDeviceContext.ucDeviceNumber; i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
39
source/Thread/MainDataGrabber.h
Normal file
39
source/Thread/MainDataGrabber.h
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#pragma once
|
||||||
|
#include"pch.h"
|
||||||
|
#include <vector>
|
||||||
|
#include "AbstractFSController.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
||||||
|
|
||||||
|
class CMainDataGrabber :public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
CMainDataGrabber(QObject* parent = nullptr);
|
||||||
|
~CMainDataGrabber();
|
||||||
|
|
||||||
|
private:
|
||||||
|
vector<CAbstractFSController *> m_pControlThread;
|
||||||
|
vector<QThread* > m_pqThreadHolder;
|
||||||
|
|
||||||
|
int m_iTotalThreads;
|
||||||
|
|
||||||
|
AcqTimeSettings m_struAcqTime;
|
||||||
|
DeviceContext m_struDeviceContext;
|
||||||
|
|
||||||
|
public:
|
||||||
|
//Call this first
|
||||||
|
int SetGrabberParams(RunTimeGrabberParams struGrabberRTParams);
|
||||||
|
|
||||||
|
int InitializeWorkers();
|
||||||
|
public slots:
|
||||||
|
int HandleThreadEvent(int iThreadID, int iFlagStatus);
|
||||||
|
int StartGrab();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void SignalStartGrabOnce();
|
||||||
|
void SignalStopGrab();
|
||||||
|
void SignalGrabOnceFinished();
|
||||||
|
void SignalStartGrab();
|
||||||
|
};
|
10
source/pch.h
10
source/pch.h
@ -1,12 +1,15 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
////////////////////////////setings
|
||||||
|
#include <QSettings>
|
||||||
|
#include <QMetaEnum>
|
||||||
|
////////////////////////////Basic
|
||||||
#include <QtCore/QCoreApplication>
|
#include <QtCore/QCoreApplication>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QtSerialPort/QSerialPort>
|
|
||||||
#include <QtSerialPort/QSerialPortInfo>
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
////////////////////////////Thread
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
#include <QWaitCondition>
|
#include <QWaitCondition>
|
||||||
@ -20,3 +23,6 @@
|
|||||||
#include <QtCore/QTime>
|
#include <QtCore/QTime>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
////////////////////////////Serial I/O
|
||||||
|
#include <QtSerialPort/QSerialPort>
|
||||||
|
#include <QtSerialPort/QSerialPortInfo>
|
Reference in New Issue
Block a user