mirror of
http://172.16.0.230/r/SIF/TowerOptoSifAndSpectral.git
synced 2025-10-19 03:49:42 +08:00
调试上传用
This commit is contained in:
BIN
Cal/FS1_P1.dat
Normal file
BIN
Cal/FS1_P1.dat
Normal file
Binary file not shown.
BIN
Cal/FS1_P2.dat
Normal file
BIN
Cal/FS1_P2.dat
Normal file
Binary file not shown.
BIN
Cal/FS1_P3.dat
Normal file
BIN
Cal/FS1_P3.dat
Normal file
Binary file not shown.
BIN
Cal/FS1_P4.dat
Normal file
BIN
Cal/FS1_P4.dat
Normal file
Binary file not shown.
@ -17,11 +17,11 @@ include_directories("source/FS")
|
|||||||
include_directories("source/Logger")
|
include_directories("source/Logger")
|
||||||
include_directories("source/ZZ_SDK")
|
include_directories("source/ZZ_SDK")
|
||||||
include_directories("source/Settings")
|
include_directories("source/Settings")
|
||||||
include_directories("source/Thread")
|
include_directories("source/CaptureThread")
|
||||||
include_directories("source/LinearShutter")
|
include_directories("source/LinearShutter")
|
||||||
include_directories("source/OSIF/include")
|
include_directories("source/OSIF/include")
|
||||||
include_directories("source/Misc_Detector")
|
include_directories("source/Misc_Detector")
|
||||||
include_directories("source/Upload")
|
include_directories("source/Uploader")
|
||||||
|
|
||||||
link_directories("source/OSIF/DLib")
|
link_directories("source/OSIF/DLib")
|
||||||
|
|
||||||
|
10
Data/2021_12_28/beijing_13_22_08.csv
Normal file
10
Data/2021_12_28/beijing_13_22_08.csv
Normal file
File diff suppressed because one or more lines are too long
10
Data/2021_12_28/beijing_13_22_28.csv
Normal file
10
Data/2021_12_28/beijing_13_22_28.csv
Normal file
File diff suppressed because one or more lines are too long
10
Data/2021_12_28/beijing_13_50_52.csv
Normal file
10
Data/2021_12_28/beijing_13_50_52.csv
Normal file
File diff suppressed because one or more lines are too long
10
Data/2021_12_28/beijing_13_51_12.csv
Normal file
10
Data/2021_12_28/beijing_13_51_12.csv
Normal file
File diff suppressed because one or more lines are too long
10
Data/2021_12_28/beijing_13_54_33.csv
Normal file
10
Data/2021_12_28/beijing_13_54_33.csv
Normal file
File diff suppressed because one or more lines are too long
10
Data/2021_12_28/beijing_13_54_53.csv
Normal file
10
Data/2021_12_28/beijing_13_54_53.csv
Normal file
File diff suppressed because one or more lines are too long
10
Data/2021_12_28/beijing_13_55_13.csv
Normal file
10
Data/2021_12_28/beijing_13_55_13.csv
Normal file
File diff suppressed because one or more lines are too long
10
Data/2021_12_28/beijing_13_55_33.csv
Normal file
10
Data/2021_12_28/beijing_13_55_33.csv
Normal file
File diff suppressed because one or more lines are too long
10
Data/2021_12_28/beijing_13_55_53.csv
Normal file
10
Data/2021_12_28/beijing_13_55_53.csv
Normal file
File diff suppressed because one or more lines are too long
4
Data/2021_12_28/beijing_13_58_46.csv
Normal file
4
Data/2021_12_28/beijing_13_58_46.csv
Normal file
File diff suppressed because one or more lines are too long
10
Data/2021_12_28/beijing_14_46_28.csv
Normal file
10
Data/2021_12_28/beijing_14_46_28.csv
Normal file
File diff suppressed because one or more lines are too long
10
Data/2021_12_28/beijing_14_47_43.csv
Normal file
10
Data/2021_12_28/beijing_14_47_43.csv
Normal file
File diff suppressed because one or more lines are too long
@ -1,5 +1,5 @@
|
|||||||
[DEVICE INFO]
|
[DEVICE INFO]
|
||||||
TotalSpectrometer=2
|
TotalSpectrometer=1
|
||||||
[FS1]
|
[FS1]
|
||||||
Model=OSIFAlpha
|
Model=OSIFAlpha
|
||||||
Port=-1
|
Port=-1
|
||||||
@ -20,7 +20,7 @@ Model=Null
|
|||||||
Port=COM8
|
Port=COM8
|
||||||
Type=1
|
Type=1
|
||||||
DCID=1
|
DCID=1
|
||||||
TotalPosition=6
|
TotalPosition=5
|
||||||
Position0=2000
|
Position0=2000
|
||||||
Position1=110000
|
Position1=110000
|
||||||
Position2=220000
|
Position2=220000
|
||||||
|
22
main.cpp
22
main.cpp
@ -6,6 +6,7 @@
|
|||||||
#include "DataFileProcessor.h"
|
#include "DataFileProcessor.h"
|
||||||
#include "Scheduler.h"
|
#include "Scheduler.h"
|
||||||
#include "GY39Controller.h"
|
#include "GY39Controller.h"
|
||||||
|
#include "MainDataUploader.h"
|
||||||
using namespace std;
|
using namespace std;
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
@ -26,23 +27,26 @@ int main(int argc, char *argv[])
|
|||||||
ZZ_SysConfigger m_scConfiggerLoader;
|
ZZ_SysConfigger m_scConfiggerLoader;
|
||||||
Scheduler m_sTimer;
|
Scheduler m_sTimer;
|
||||||
CMainDataGrabber m_mdgGrabber;
|
CMainDataGrabber m_mdgGrabber;
|
||||||
|
CMainDataUploader m_mduUploader;
|
||||||
|
|
||||||
////
|
////
|
||||||
bool bRes;
|
bool bRes;
|
||||||
float m_fChassisTemp, m_fChassisHum;
|
float m_fChassisTemp = 0, m_fChassisHum = 0;
|
||||||
|
|
||||||
RunTimeGrabberParams m_struRuntimeParams;
|
RunTimeGrabberParams m_struRuntimeParams;
|
||||||
EContext m_struEC;
|
EContext m_struEC;
|
||||||
MEContext m_struMEC;
|
MEContext m_struMEC;
|
||||||
HumitureDeviceInfo m_struHumitureDI;
|
HumitureDeviceInfo m_struHumitureDI;
|
||||||
//////////////////////////////////////////////////////////////////////////logger
|
//////////////////////////////////////////////////////////////////////////logger
|
||||||
QT_LOG::ZZ_InitLogger("/home/data/Log/");
|
///create main system logger
|
||||||
|
//QT_LOG::ZZ_InitLogger("/home/data/Log/");
|
||||||
|
|
||||||
|
|
||||||
//m_test123;
|
//m_test123;
|
||||||
//m_test123.Initialize("COM11");
|
//m_test123.Initialize("COM11");
|
||||||
//m_test123.GetHumiture(fTemp, fHum);
|
//m_test123.GetHumiture(fTemp, fHum);
|
||||||
//////////////////////////////////////////////////////////////////////////config
|
//////////////////////////////////////////////////////////////////////////config
|
||||||
|
///turn on power supply
|
||||||
system("gpio write 1 1");//<2F>豸<EFBFBD>ϵ<EFBFBD>
|
system("gpio write 1 1");//<2F>豸<EFBFBD>ϵ<EFBFBD>
|
||||||
qDebug() << "gpio write 1 1......" << endl;
|
qDebug() << "gpio write 1 1......" << endl;
|
||||||
|
|
||||||
@ -58,25 +62,33 @@ int main(int argc, char *argv[])
|
|||||||
m_dfpSaver.SetEnvironmentContex(m_struEC);
|
m_dfpSaver.SetEnvironmentContex(m_struEC);
|
||||||
m_dfpSaver.SetManmadeEnviromentalContext(m_struMEC);
|
m_dfpSaver.SetManmadeEnviromentalContext(m_struMEC);
|
||||||
|
|
||||||
m_ctrlHumitureDetector.Initialize(m_struHumitureDI.qstrInterfaceName.toStdString());
|
m_mduUploader.SetContext(m_struEC, m_struMEC);
|
||||||
|
//m_ctrlHumitureDetector.Initialize(m_struHumitureDI.qstrInterfaceName.toStdString());
|
||||||
//////////////////////////////////////////////////////////////////////////prepare
|
//////////////////////////////////////////////////////////////////////////prepare
|
||||||
m_sTimer.Preheating();
|
m_sTimer.Preheating();
|
||||||
m_ctrlHumitureDetector.GetHumiture_retry(m_fChassisTemp, m_fChassisHum);
|
//m_ctrlHumitureDetector.GetHumiture_retry(m_fChassisTemp, m_fChassisHum);
|
||||||
|
|
||||||
m_struEC.qstrCaseTemperature= QString("%1").arg(m_fChassisTemp);
|
m_struEC.qstrCaseTemperature= QString("%1").arg(m_fChassisTemp);
|
||||||
m_struEC.qstrCaseHumidity = QString("%1").arg(m_fChassisHum);
|
m_struEC.qstrCaseHumidity = QString("%1").arg(m_fChassisHum);
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
QThread* m_pqDataGrabberThreadHolder = new QThread();
|
QThread* m_pqDataGrabberThreadHolder = new QThread();
|
||||||
QThread* m_pqTimerThreadHolder = new QThread();
|
QThread* m_pqTimerThreadHolder = new QThread();
|
||||||
|
QThread* m_pqUploaderThreadHolder = new QThread();
|
||||||
|
|
||||||
m_mdgGrabber.moveToThread(m_pqDataGrabberThreadHolder);
|
m_mdgGrabber.moveToThread(m_pqDataGrabberThreadHolder);
|
||||||
m_sTimer.moveToThread(m_pqTimerThreadHolder);
|
m_sTimer.moveToThread(m_pqTimerThreadHolder);
|
||||||
|
m_mduUploader.moveToThread(m_pqUploaderThreadHolder);
|
||||||
|
|
||||||
m_mdgGrabber.SetContext(m_struRuntimeParams, m_dfpSaver, m_sTimer);
|
//m_mdgGrabber.SetContext(m_struRuntimeParams, m_dfpSaver, m_sTimer);
|
||||||
|
m_mdgGrabber.SetContext(m_struRuntimeParams, m_dfpSaver, m_sTimer, m_mduUploader);
|
||||||
m_mdgGrabber.Init_Normal();
|
m_mdgGrabber.Init_Normal();
|
||||||
|
|
||||||
|
m_mduUploader.Initialize();
|
||||||
|
m_mduUploader.Upload();
|
||||||
|
|
||||||
m_pqDataGrabberThreadHolder->start();
|
m_pqDataGrabberThreadHolder->start();
|
||||||
m_pqTimerThreadHolder->start();
|
m_pqTimerThreadHolder->start();
|
||||||
|
m_pqUploaderThreadHolder->start();
|
||||||
|
|
||||||
m_mdgGrabber.Init_Self();
|
m_mdgGrabber.Init_Self();
|
||||||
m_sTimer.SelfStart();
|
m_sTimer.SelfStart();
|
||||||
|
@ -90,6 +90,12 @@ int CAbstractFSController::InitializeFSControl()
|
|||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iRes = m_pFSCtrl->SetDeviceTemperature(0);
|
||||||
|
if (iRes != 0)
|
||||||
|
{
|
||||||
|
qDebug() << "SetDeviceTemperature Failed" << iRes;
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -310,7 +316,7 @@ int CAbstractFSController::StartAcquisitionSignal()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
PerformAutoExposure();
|
//PerformAutoExposure();
|
||||||
TakeSignalFrame();
|
TakeSignalFrame();
|
||||||
|
|
||||||
qDebug() << "Stop acq Signal" << " Thread ID:" << m_iThreadID;
|
qDebug() << "Stop acq Signal" << " Thread ID:" << m_iThreadID;
|
@ -10,6 +10,9 @@ CMainDataGrabber::CMainDataGrabber(QObject* parent /*= nullptr*/)
|
|||||||
m_iFlagIsCapturing = false;
|
m_iFlagIsCapturing = false;
|
||||||
m_iFlagIsCapturing_Signal = false;
|
m_iFlagIsCapturing_Signal = false;
|
||||||
m_iFlagIsCapturing_Dark = false;
|
m_iFlagIsCapturing_Dark = false;
|
||||||
|
|
||||||
|
//qRegisterMetaType<DataFrame>("DataFrame");
|
||||||
|
//qRegisterMetaType<vector<vector<DataFrame>>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
CMainDataGrabber::~CMainDataGrabber()
|
CMainDataGrabber::~CMainDataGrabber()
|
||||||
@ -64,6 +67,15 @@ int CMainDataGrabber::SetContext(RunTimeGrabberParams struGrabberRTParams, DataF
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CMainDataGrabber::SetContext(RunTimeGrabberParams struGrabberRTParams, DataFileProcessor &dfpSaver, Scheduler &sScheduler, CMainDataUploader &mduUploader)
|
||||||
|
{
|
||||||
|
SetGrabberParams(struGrabberRTParams);
|
||||||
|
SetGrabberFileProcessor(dfpSaver);
|
||||||
|
SetTimer(sScheduler);
|
||||||
|
SetUploader(mduUploader/*, struGrabberRTParams*/);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void CMainDataGrabber::Init_Normal()
|
void CMainDataGrabber::Init_Normal()
|
||||||
{
|
{
|
||||||
InitThreadStatus();
|
InitThreadStatus();
|
||||||
@ -80,6 +92,8 @@ int CMainDataGrabber::SetGrabberParams(RunTimeGrabberParams struGrabberRTParams)
|
|||||||
m_struLinearShutterContext = struGrabberRTParams.lscParam;
|
m_struLinearShutterContext = struGrabberRTParams.lscParam;
|
||||||
|
|
||||||
m_iTotalThreads = m_struDeviceContext.ucDeviceNumber;
|
m_iTotalThreads = m_struDeviceContext.ucDeviceNumber;
|
||||||
|
|
||||||
|
m_struRTGP = struGrabberRTParams;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,6 +109,12 @@ int CMainDataGrabber::SetTimer(Scheduler &sScheduler)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CMainDataGrabber::SetUploader(CMainDataUploader &mduUploader/*, RunTimeGrabberParams struGrabberRTParams*/)
|
||||||
|
{
|
||||||
|
m_pmduUploader = &mduUploader;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int CMainDataGrabber::InitLS()
|
int CMainDataGrabber::InitLS()
|
||||||
{
|
{
|
||||||
PortInfo piTemp;
|
PortInfo piTemp;
|
||||||
@ -159,10 +179,11 @@ int CMainDataGrabber::InitializeWorkers()
|
|||||||
{
|
{
|
||||||
m_struDeviceContext.fWavelength[i][j] = daAttrTemp.fWaveLengthInNM[j];
|
m_struDeviceContext.fWavelength[i][j] = daAttrTemp.fWaveLengthInNM[j];
|
||||||
}
|
}
|
||||||
|
|
||||||
m_pControlThread.push_back(m_pWorkThread);
|
m_pControlThread.push_back(m_pWorkThread);
|
||||||
}
|
}
|
||||||
|
m_struRTGP.fscParams = m_struDeviceContext;
|
||||||
m_pdfpSaver->SetDeviceInfo(m_struDeviceContext);
|
m_pdfpSaver->SetDeviceInfo(m_struDeviceContext);
|
||||||
|
m_pmduUploader->SetRTGP(m_struRTGP);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,6 +222,8 @@ int CMainDataGrabber::SetupMsgPipelines()
|
|||||||
connect(this, &CMainDataGrabber::SignalGrabOnceFinished_Signal, this, &CMainDataGrabber::GrabOnceFinished_Signal);
|
connect(this, &CMainDataGrabber::SignalGrabOnceFinished_Signal, this, &CMainDataGrabber::GrabOnceFinished_Signal);
|
||||||
connect(this, &CMainDataGrabber::SignalGrabOnceFinished_Dark, this, &CMainDataGrabber::GrabOnceFinished_Dark);
|
connect(this, &CMainDataGrabber::SignalGrabOnceFinished_Dark, this, &CMainDataGrabber::GrabOnceFinished_Dark);
|
||||||
|
|
||||||
|
connect(this, &CMainDataGrabber::SignalPushOneDataFrame, m_pmduUploader,&CMainDataUploader::SlotPushOneDataFrame);
|
||||||
|
|
||||||
qDebug()<<connect(this,&CMainDataGrabber::SignalLSInit,this,&CMainDataGrabber::InitLS);
|
qDebug()<<connect(this,&CMainDataGrabber::SignalLSInit,this,&CMainDataGrabber::InitLS);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -214,7 +237,7 @@ int CMainDataGrabber::StartGrab()
|
|||||||
|
|
||||||
void CMainDataGrabber::Init_Self()
|
void CMainDataGrabber::Init_Self()
|
||||||
{
|
{
|
||||||
emit SignalLSInit();
|
//emit SignalLSInit();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -376,7 +399,7 @@ int CMainDataGrabber::GrabOnceFinished()
|
|||||||
{
|
{
|
||||||
////move to
|
////move to
|
||||||
qDebug()<<"Start ILMES_MoveToPos:"<<i+1;
|
qDebug()<<"Start ILMES_MoveToPos:"<<i+1;
|
||||||
m_ctrlLS.ILMES_MoveToPos(i+1);
|
//m_ctrlLS.ILMES_MoveToPos(i+1);
|
||||||
qDebug() << "Stop ILMES_MoveToPos:" << i + 1;
|
qDebug() << "Stop ILMES_MoveToPos:" << i + 1;
|
||||||
m_struAcqPosSetting.iPosition[i + 1];
|
m_struAcqPosSetting.iPosition[i + 1];
|
||||||
m_iFlagIsCapturing_Signal = 1;
|
m_iFlagIsCapturing_Signal = 1;
|
||||||
@ -389,7 +412,7 @@ int CMainDataGrabber::GrabOnceFinished()
|
|||||||
|
|
||||||
////move to
|
////move to
|
||||||
qDebug() << "Start ILMES_MoveToPos:" << 0;
|
qDebug() << "Start ILMES_MoveToPos:" << 0;
|
||||||
m_ctrlLS.ILMES_MoveToPos(0);
|
//m_ctrlLS.ILMES_MoveToPos(0);
|
||||||
qDebug() << "Stop ILMES_MoveToPos:" << 0;
|
qDebug() << "Stop ILMES_MoveToPos:" << 0;
|
||||||
m_struAcqPosSetting.iPosition[0];
|
m_struAcqPosSetting.iPosition[0];
|
||||||
m_iFlagIsCapturing_Dark = 1;
|
m_iFlagIsCapturing_Dark = 1;
|
||||||
@ -413,6 +436,10 @@ int CMainDataGrabber::GrabOnceFinished()
|
|||||||
}
|
}
|
||||||
vecData.push_back(vecSignal);
|
vecData.push_back(vecSignal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//emit SignalPushOneDataFrame(vecData);
|
||||||
|
m_pmduUploader->SetData(vecData);
|
||||||
|
emit SignalPushOneDataFrame();
|
||||||
m_pdfpSaver->SetData(vecData);
|
m_pdfpSaver->SetData(vecData);
|
||||||
m_pdfpSaver->WriteDataFile();
|
m_pdfpSaver->WriteDataFile();
|
||||||
m_iFlagIsCapturing = 0;
|
m_iFlagIsCapturing = 0;
|
@ -5,10 +5,13 @@
|
|||||||
#include "DataFileProcessor.h"
|
#include "DataFileProcessor.h"
|
||||||
#include "Scheduler.h"
|
#include "Scheduler.h"
|
||||||
#include "VSMD12XControl.h"
|
#include "VSMD12XControl.h"
|
||||||
|
#include "MainDataUploader.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
||||||
|
|
||||||
|
//Q_DECLARE_METATYPE(vector<vector<DataFrame>>)
|
||||||
|
|
||||||
class CMainDataGrabber :public QObject
|
class CMainDataGrabber :public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -29,16 +32,17 @@ private:
|
|||||||
int m_iFlagIsCapturing_Signal;
|
int m_iFlagIsCapturing_Signal;
|
||||||
int m_iFlagIsCapturing_Dark;
|
int m_iFlagIsCapturing_Dark;
|
||||||
|
|
||||||
DataFileProcessor* m_pdfpSaver;
|
DataFileProcessor * m_pdfpSaver;
|
||||||
Scheduler * m_psScheduler;
|
Scheduler * m_psScheduler;
|
||||||
|
CMainDataUploader * m_pmduUploader;
|
||||||
|
|
||||||
CVSMD12XControl m_ctrlLS;
|
CVSMD12XControl m_ctrlLS;
|
||||||
|
|
||||||
FSContext m_struDeviceContext;
|
FSContext m_struDeviceContext;
|
||||||
LSContext m_struLinearShutterContext;
|
LSContext m_struLinearShutterContext;
|
||||||
AcqPosSettings m_struAcqPosSetting;
|
AcqPosSettings m_struAcqPosSetting;
|
||||||
AcqTimeSettings m_struAcqTime;
|
AcqTimeSettings m_struAcqTime;
|
||||||
|
RunTimeGrabberParams m_struRTGP;
|
||||||
|
|
||||||
//QTimer *m_GrabTimer;
|
//QTimer *m_GrabTimer;
|
||||||
private:
|
private:
|
||||||
@ -49,6 +53,7 @@ private:
|
|||||||
int SetGrabberParams(RunTimeGrabberParams struGrabberRTParams);
|
int SetGrabberParams(RunTimeGrabberParams struGrabberRTParams);
|
||||||
int SetGrabberFileProcessor(DataFileProcessor &dfpSaver);
|
int SetGrabberFileProcessor(DataFileProcessor &dfpSaver);
|
||||||
int SetTimer(Scheduler &sScheduler);
|
int SetTimer(Scheduler &sScheduler);
|
||||||
|
int SetUploader(CMainDataUploader &mduUploader/*, RunTimeGrabberParams struGrabberRTParams*/);
|
||||||
|
|
||||||
int InitThreadStatus();
|
int InitThreadStatus();
|
||||||
int InitializeWorkers();
|
int InitializeWorkers();
|
||||||
@ -59,6 +64,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
int SetContext(RunTimeGrabberParams struGrabberRTParams, DataFileProcessor &dfpSaver, Scheduler &sScheduler);
|
int SetContext(RunTimeGrabberParams struGrabberRTParams, DataFileProcessor &dfpSaver, Scheduler &sScheduler);
|
||||||
|
int SetContext(RunTimeGrabberParams struGrabberRTParams, DataFileProcessor &dfpSaver, Scheduler &sScheduler,CMainDataUploader &mduUploader);
|
||||||
void Init_Normal();
|
void Init_Normal();
|
||||||
void Init_Self();
|
void Init_Self();
|
||||||
|
|
||||||
@ -88,4 +94,6 @@ signals:
|
|||||||
void SignalStartGrab();
|
void SignalStartGrab();
|
||||||
|
|
||||||
void SignalLSInit();
|
void SignalLSInit();
|
||||||
|
void SignalPushOneDataFrame();
|
||||||
|
//void SignalPushOneDataFrame(std::vector<std::vector<DataFrame>> vecData);
|
||||||
};
|
};
|
@ -1,6 +1,6 @@
|
|||||||
#include "DataFileProcessor.h"
|
#include "DataFileProcessor.h"
|
||||||
|
|
||||||
DataFileProcessor::DataFileProcessor()
|
DataFileProcessor::DataFileProcessor(QObject* parent /*= nullptr*/)
|
||||||
{
|
{
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
m_qstrFilePath = "E:/WorkSpace/TowerOptoSifAndSpectral/Data";
|
m_qstrFilePath = "E:/WorkSpace/TowerOptoSifAndSpectral/Data";
|
||||||
@ -153,6 +153,10 @@ void DataFileProcessor::WriteDeviceInfo()
|
|||||||
qfData.write("TotalSpectrometer,");
|
qfData.write("TotalSpectrometer,");
|
||||||
qstrTemp = QString::number(m_struDeviceContext.ucDeviceNumber);
|
qstrTemp = QString::number(m_struDeviceContext.ucDeviceNumber);
|
||||||
qfData.write(qstrTemp.toLatin1());
|
qfData.write(qstrTemp.toLatin1());
|
||||||
|
qfData.write(",");
|
||||||
|
qfData.write("TotalScanPoints,");
|
||||||
|
qstrTemp = QString::number(m_vecData[0].size());
|
||||||
|
qfData.write(qstrTemp.toLatin1());
|
||||||
qfData.write("\n");
|
qfData.write("\n");
|
||||||
|
|
||||||
for (int i=0;i< m_struDeviceContext.ucDeviceNumber;i++)
|
for (int i=0;i< m_struDeviceContext.ucDeviceNumber;i++)
|
||||||
@ -181,6 +185,10 @@ void DataFileProcessor::WriteDeviceInfo()
|
|||||||
qstrTemp = QString::number(m_struDeviceContext.lDepth[i]);
|
qstrTemp = QString::number(m_struDeviceContext.lDepth[i]);
|
||||||
qfData.write(qstrTemp.toLatin1());
|
qfData.write(qstrTemp.toLatin1());
|
||||||
|
|
||||||
|
qfData.write("TEC Temperature,");
|
||||||
|
qstrTemp = QString::number(m_vecData[i][0].fTemperature);
|
||||||
|
qfData.write(qstrTemp.toLatin1());
|
||||||
|
|
||||||
qfData.write("\n");
|
qfData.write("\n");
|
||||||
|
|
||||||
qfData.write("Wavelength,");
|
qfData.write("Wavelength,");
|
||||||
@ -222,7 +230,15 @@ bool DataFileProcessor::WriteData()
|
|||||||
qstrTemp = QString("_P%1").arg(j + 1);
|
qstrTemp = QString("_P%1").arg(j + 1);
|
||||||
qfData.write(qstrTemp.toLatin1());
|
qfData.write(qstrTemp.toLatin1());
|
||||||
qfData.write(",");
|
qfData.write(",");
|
||||||
qfData.write("valid");
|
if ((m_vecData[i][j].fTemperature < 5) && (m_vecData[i][j].fTemperature> -5))
|
||||||
|
{
|
||||||
|
qfData.write("valid");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qfData.write("invalid");
|
||||||
|
}
|
||||||
|
|
||||||
qfData.write(",");
|
qfData.write(",");
|
||||||
qstrTemp = QString::number(m_vecData[i][j].usExposureTimeInMS);
|
qstrTemp = QString::number(m_vecData[i][j].usExposureTimeInMS);
|
||||||
qfData.write(qstrTemp.toLatin1());
|
qfData.write(qstrTemp.toLatin1());
|
||||||
|
@ -4,10 +4,11 @@
|
|||||||
using namespace ZZ_MISCDEF::ZZ_DATAFILE;
|
using namespace ZZ_MISCDEF::ZZ_DATAFILE;
|
||||||
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
||||||
using namespace ZZ_MISCDEF::IRIS::FS;
|
using namespace ZZ_MISCDEF::IRIS::FS;
|
||||||
class DataFileProcessor
|
class DataFileProcessor :public QObject
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
DataFileProcessor();
|
DataFileProcessor(QObject* parent = nullptr);
|
||||||
virtual ~DataFileProcessor();
|
virtual ~DataFileProcessor();
|
||||||
public:
|
public:
|
||||||
public:
|
public:
|
||||||
|
@ -394,6 +394,8 @@ int OceanOptics_lib::SetDeviceTemperature(float fTemperature)
|
|||||||
//<2F><>ȡ<EFBFBD>¶<EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD>
|
//<2F><>ȡ<EFBFBD>¶<EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD>
|
||||||
int OceanOptics_lib::GetDeviceTemperature(float &fTemperature)
|
int OceanOptics_lib::GetDeviceTemperature(float &fTemperature)
|
||||||
{
|
{
|
||||||
|
fTemperature = 0;
|
||||||
|
|
||||||
if (m_iSpectralmeterHandle == -100)
|
if (m_iSpectralmeterHandle == -100)
|
||||||
{
|
{
|
||||||
printf("\nNo!!!!!!!!!!!!\n");
|
printf("\nNo!!!!!!!!!!!!\n");
|
||||||
|
@ -25,7 +25,7 @@ namespace ZZ_MISCDEF
|
|||||||
{
|
{
|
||||||
ZZ_U16 usExposureTimeInMS;
|
ZZ_U16 usExposureTimeInMS;
|
||||||
ZZ_S32 lData[4096];
|
ZZ_S32 lData[4096];
|
||||||
float fTemperature = -1000;
|
float fTemperature = 0;
|
||||||
double dTimes = 0;
|
double dTimes = 0;
|
||||||
}DataFrame;
|
}DataFrame;
|
||||||
|
|
||||||
@ -309,6 +309,24 @@ namespace ZZ_MISCDEF
|
|||||||
|
|
||||||
|
|
||||||
}ATPDataHeader;
|
}ATPDataHeader;
|
||||||
|
|
||||||
|
typedef struct tagCalibrationFrame
|
||||||
|
{
|
||||||
|
int iExposureTimeInMS;
|
||||||
|
float fTemperature;
|
||||||
|
int iPixels;
|
||||||
|
float fWaveLength[4096] = { 0 };
|
||||||
|
double dCal_Gain[4096] = { 0 };
|
||||||
|
double dCal_Offset[4096] = { 0 };
|
||||||
|
}CalFrame;
|
||||||
|
|
||||||
|
typedef struct tagCalDataFrame
|
||||||
|
{
|
||||||
|
ZZ_U16 usExposureTimeInMS;
|
||||||
|
float fTemperature = 0;
|
||||||
|
int iPixels;
|
||||||
|
double dData[4096];
|
||||||
|
}CalDataFrame;
|
||||||
}
|
}
|
||||||
|
|
||||||
//misc detector
|
//misc detector
|
||||||
|
@ -118,7 +118,7 @@ int CZZ_SeiralPort_QT::Write(const std::string strSend)
|
|||||||
{
|
{
|
||||||
QByteArray qbaTest(strSend.c_str(),(int)strSend.length());
|
QByteArray qbaTest(strSend.c_str(),(int)strSend.length());
|
||||||
qint64 qi64Write = m_pSerialPort->write(qbaTest);
|
qint64 qi64Write = m_pSerialPort->write(qbaTest);
|
||||||
m_pSerialPort->waitForBytesWritten();
|
m_pSerialPort->waitForBytesWritten(5000);
|
||||||
if (qi64Write != qbaTest.size())
|
if (qi64Write != qbaTest.size())
|
||||||
{
|
{
|
||||||
qDebug() << "Err:write Failed.Exit Code:1" << qi64Write;
|
qDebug() << "Err:write Failed.Exit Code:1" << qi64Write;
|
||||||
|
@ -19,6 +19,7 @@ GY39Controller::~GY39Controller()
|
|||||||
int GY39Controller::SendCommand(QByteArray qbCommand)
|
int GY39Controller::SendCommand(QByteArray qbCommand)
|
||||||
{
|
{
|
||||||
qint64 qi64Write = m_pSerialPort->write(qbCommand);
|
qint64 qi64Write = m_pSerialPort->write(qbCommand);
|
||||||
|
m_pSerialPort->waitForBytesWritten(5000);
|
||||||
if (qi64Write != qbCommand.size())
|
if (qi64Write != qbCommand.size())
|
||||||
{
|
{
|
||||||
qDebug() << "Err:write Failed.Exit Code:1" << qi64Write;
|
qDebug() << "Err:write Failed.Exit Code:1" << qi64Write;
|
||||||
@ -36,7 +37,7 @@ int GY39Controller::RecvHumitureData(QByteArray &qbData)
|
|||||||
int iCounter = 0;
|
int iCounter = 0;
|
||||||
while (qbData.size() < 15)
|
while (qbData.size() < 15)
|
||||||
{
|
{
|
||||||
m_pSerialPort->waitForReadyRead(50);
|
m_pSerialPort->waitForReadyRead(5000);
|
||||||
QByteArray qbTemp = m_pSerialPort->readAll();
|
QByteArray qbTemp = m_pSerialPort->readAll();
|
||||||
qbData.append(qbTemp);
|
qbData.append(qbTemp);
|
||||||
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
#include "pch.h"
|
|
||||||
#include "ZZ_Types.h"
|
|
96
source/Uploader/DataFileTransfer.cpp
Normal file
96
source/Uploader/DataFileTransfer.cpp
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
#include "DataFileTransfer.h"
|
||||||
|
ZZ_HttpTransfer::ZZ_HttpTransfer(QObject* parent /*= nullptr*/)
|
||||||
|
{
|
||||||
|
m_pNetworkManager = new QNetworkAccessManager();
|
||||||
|
connect(m_pNetworkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(SlotReplyFinished(QNetworkReply*)));
|
||||||
|
}
|
||||||
|
|
||||||
|
ZZ_HttpTransfer::~ZZ_HttpTransfer()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int ZZ_HttpTransfer::SendData()
|
||||||
|
{
|
||||||
|
QNetworkRequest qnRequest;
|
||||||
|
qnRequest.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
|
||||||
|
qnRequest.setUrl(QUrl("http://172.16.0.234/fileup/Data_uper.php"));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ZZ_HttpTransfer::SendInfo()
|
||||||
|
{
|
||||||
|
QNetworkRequest qnRequest;
|
||||||
|
qnRequest.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
|
||||||
|
qnRequest.setUrl(QUrl("http://172.16.0.234/fileup/Dev_info_uper.php"));
|
||||||
|
|
||||||
|
QString qstrSend;
|
||||||
|
QString qstrWaveLength;
|
||||||
|
for (int i = 0; i < m_struGrabberRTParams.fscParams.ucDeviceNumber; i++)
|
||||||
|
{
|
||||||
|
qstrSend = "Location:" + QString("%1").arg(m_struEC.qstrLocation) + "####";
|
||||||
|
qstrSend += "DEV_SN:" + QString("%1").arg(m_struEC.qstrDEV_SN) + "####";
|
||||||
|
qstrSend += "GPS_Longtitude:" + QString("%1").arg(m_struEC.qstrGPS_Longtitude) + "####";
|
||||||
|
qstrSend += "GPS_Latitude:" + QString("%1").arg(m_struEC.qstrGPS_Latitude) + "####";
|
||||||
|
qstrSend += "GPS_Altitude:" + QString("%1").arg(m_struEC.qstrGPS_Altitude) + "####";
|
||||||
|
qstrSend += "GPS_North:" + QString("%1").arg(m_struEC.qstrGPS_North) + "####";
|
||||||
|
qstrSend += "InstallationTime:" + QString("%1").arg(m_struMEC.qstrInstallationTime) + "####";
|
||||||
|
qstrSend += "NameOfMaintenanceStaff:" + QString("%1").arg(m_struMEC.qstrNameOfMaintenanceStaff) + "####";
|
||||||
|
qstrSend += "PhoneNumberOfMaintenanceStaff:" + QString("%1").arg(m_struMEC.qstrPhoneNumberOfMaintenanceStaff) + "####";
|
||||||
|
qstrSend += "Bands:" + QString("%1").arg(m_struGrabberRTParams.fscParams.usPixels[i]) + "####";
|
||||||
|
qstrSend += "WaveLength:";
|
||||||
|
for (int j=0;j< m_struGrabberRTParams.fscParams.usPixels[i];j++)
|
||||||
|
{
|
||||||
|
qstrWaveLength = QString("%1").arg(m_struGrabberRTParams.fscParams.fWavelength[i][j]);
|
||||||
|
qstrSend += qstrWaveLength;
|
||||||
|
if (j == m_struGrabberRTParams.fscParams.usPixels[i]-1)
|
||||||
|
{
|
||||||
|
qstrSend += "####";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
qstrSend += ",";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
qDebug() << qstrSend;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ZZ_HttpTransfer::SendErr()
|
||||||
|
{
|
||||||
|
QNetworkRequest qnRequest;
|
||||||
|
qnRequest.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
|
||||||
|
qnRequest.setUrl(QUrl("http://172.16.0.234/fileup/Warning.php"));
|
||||||
|
|
||||||
|
QByteArray abTest;
|
||||||
|
|
||||||
|
m_pNetworkManager->post(qnRequest, abTest);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ZZ_HttpTransfer::SetContext(EContext struEC, MEContext struMEC)
|
||||||
|
{
|
||||||
|
m_struEC = struEC;
|
||||||
|
m_struMEC = struMEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ZZ_HttpTransfer::SetDeviceInfo(RunTimeGrabberParams struGrabberRTParams)
|
||||||
|
{
|
||||||
|
m_struGrabberRTParams = struGrabberRTParams;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ZZ_HttpTransfer::SetCalData(vector<vector<CalDataFrame>> vecCalcedData)
|
||||||
|
{
|
||||||
|
m_vecCalcedData = vecCalcedData;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ZZ_HttpTransfer::SlotReplyFinished(QNetworkReply* qnReply)
|
||||||
|
{
|
||||||
|
QString qstrURL = qnReply->url().toString();
|
||||||
|
QByteArray qbData = qnReply->readAll();
|
||||||
|
return 0;
|
||||||
|
}
|
37
source/Uploader/DataFileTransfer.h
Normal file
37
source/Uploader/DataFileTransfer.h
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "pch.h"
|
||||||
|
#include "ZZ_Types.h"
|
||||||
|
//http://172.16.0.234/fileup/Data_uper.php
|
||||||
|
//http://172.16.0.234/fileup/Dev_info_uper.php
|
||||||
|
//http://172.16.0.234/fileup/Warning.php
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace ZZ_MISCDEF::ZZ_DATAFILE;
|
||||||
|
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
||||||
|
using namespace ZZ_MISCDEF::IRIS::FS;
|
||||||
|
|
||||||
|
class ZZ_HttpTransfer :public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ZZ_HttpTransfer(QObject* parent = nullptr);
|
||||||
|
~ZZ_HttpTransfer();
|
||||||
|
public:
|
||||||
|
public:
|
||||||
|
int SendData();
|
||||||
|
int SendInfo();
|
||||||
|
int SendErr();
|
||||||
|
|
||||||
|
void SetContext(EContext struEC, MEContext struMEC);
|
||||||
|
void SetDeviceInfo(RunTimeGrabberParams struGrabberRTParams);
|
||||||
|
void SetCalData(vector<vector<CalDataFrame>> vecCalcedData);
|
||||||
|
private:
|
||||||
|
QNetworkAccessManager *m_pNetworkManager;
|
||||||
|
EContext m_struEC;
|
||||||
|
MEContext m_struMEC;
|
||||||
|
RunTimeGrabberParams m_struGrabberRTParams;
|
||||||
|
vector<vector<CalDataFrame>> m_vecCalcedData;
|
||||||
|
private:
|
||||||
|
public slots:
|
||||||
|
int SlotReplyFinished(QNetworkReply* qnReply);
|
||||||
|
};
|
78
source/Uploader/MainDataUploader.cpp
Normal file
78
source/Uploader/MainDataUploader.cpp
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
#include "MainDataUploader.h"
|
||||||
|
|
||||||
|
CMainDataUploader::CMainDataUploader(QObject* parent /*= nullptr*/)
|
||||||
|
{
|
||||||
|
m_pRadConverter = new RadConverter;
|
||||||
|
m_pTransfer = new ZZ_HttpTransfer;
|
||||||
|
}
|
||||||
|
|
||||||
|
CMainDataUploader::~CMainDataUploader()
|
||||||
|
{
|
||||||
|
if (m_pRadConverter)
|
||||||
|
{
|
||||||
|
delete m_pRadConverter;
|
||||||
|
}
|
||||||
|
if (m_pTransfer)
|
||||||
|
{
|
||||||
|
delete m_pTransfer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMainDataUploader::SetData(vector<vector<DataFrame>> vecData)
|
||||||
|
{
|
||||||
|
m_vecData = vecData;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMainDataUploader::SetRTGP(RunTimeGrabberParams struGrabberRTParams)
|
||||||
|
{
|
||||||
|
m_struGrabberRTParams = struGrabberRTParams;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMainDataUploader::SetContext(EContext struEC, MEContext struMEC)
|
||||||
|
{
|
||||||
|
m_struEC = struEC;
|
||||||
|
m_struMEC = struMEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CMainDataUploader::Calibration()
|
||||||
|
{
|
||||||
|
int iScanPoints = m_struGrabberRTParams.apsParams.iTotalPosition - 1;
|
||||||
|
int iDevices = m_struGrabberRTParams.fscParams.ucDeviceNumber;
|
||||||
|
for (int j = 0; j < iDevices; j++)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < iScanPoints; i++)
|
||||||
|
{
|
||||||
|
for (int k=0;k< m_struGrabberRTParams.fscParams.usPixels[j];k++)
|
||||||
|
{
|
||||||
|
m_vecCalcedData[j][i].dData[k] = m_vecData[j][i].lData[k]* m_vecCalData[j][i].dCal_Gain[k];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int CMainDataUploader::Upload()
|
||||||
|
{
|
||||||
|
m_pTransfer->SendInfo();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CMainDataUploader::Initialize()
|
||||||
|
{
|
||||||
|
m_pRadConverter->LoadCalibrationFrames(m_struGrabberRTParams,m_vecCalData);
|
||||||
|
|
||||||
|
m_pTransfer->SetContext(m_struEC, m_struMEC);
|
||||||
|
m_pTransfer->SetDeviceInfo(m_struGrabberRTParams);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// int CMainDataUploader::SlotPushOneDataFrame(vector<vector<DataFrame>> vecData)
|
||||||
|
// {
|
||||||
|
// return 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
int CMainDataUploader::SlotPushOneDataFrame()
|
||||||
|
{
|
||||||
|
m_vecData.clear();
|
||||||
|
return 0;
|
||||||
|
}
|
47
source/Uploader/MainDataUploader.h
Normal file
47
source/Uploader/MainDataUploader.h
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "pch.h"
|
||||||
|
#include <vector>
|
||||||
|
#include "ZZ_Types.h"
|
||||||
|
#include "DataFileTransfer.h"
|
||||||
|
#include "RadianceConverter.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace ZZ_MISCDEF::ZZ_DATAFILE;
|
||||||
|
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
||||||
|
using namespace ZZ_MISCDEF::IRIS::FS;
|
||||||
|
|
||||||
|
class CMainDataUploader :public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
CMainDataUploader(QObject* parent = nullptr);
|
||||||
|
~CMainDataUploader();
|
||||||
|
public:
|
||||||
|
public:
|
||||||
|
|
||||||
|
//set attributes
|
||||||
|
void SetData(vector<vector<DataFrame>> vecData);
|
||||||
|
void SetRTGP(RunTimeGrabberParams struGrabberRTParams);
|
||||||
|
void SetContext(EContext struEC, MEContext struMEC);
|
||||||
|
|
||||||
|
//load calibration file after set attributes
|
||||||
|
int Initialize();
|
||||||
|
|
||||||
|
void Calibration();
|
||||||
|
|
||||||
|
int Upload();
|
||||||
|
|
||||||
|
private:
|
||||||
|
RadConverter *m_pRadConverter = NULL;
|
||||||
|
ZZ_HttpTransfer *m_pTransfer = NULL;
|
||||||
|
private:
|
||||||
|
EContext m_struEC;
|
||||||
|
MEContext m_struMEC;
|
||||||
|
RunTimeGrabberParams m_struGrabberRTParams;
|
||||||
|
vector<vector<DataFrame>> m_vecData;
|
||||||
|
vector<vector<CalFrame>> m_vecCalData;
|
||||||
|
vector<vector<CalDataFrame>> m_vecCalcedData;
|
||||||
|
public slots:
|
||||||
|
//int SlotPushOneDataFrame(vector<vector<DataFrame>> vecData);
|
||||||
|
int SlotPushOneDataFrame();
|
||||||
|
};
|
71
source/Uploader/RadianceConverter.cpp
Normal file
71
source/Uploader/RadianceConverter.cpp
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
#include "RadianceConverter.h"
|
||||||
|
RadConverter::RadConverter(QObject* parent /*= nullptr*/)
|
||||||
|
{
|
||||||
|
#ifdef _DEBUG
|
||||||
|
m_qstrCalFilePath = "E:/WorkSpace/TowerOptoSifAndSpectral/Cal";
|
||||||
|
#else
|
||||||
|
m_qstrCalFilePath = "/home/data/Cal";
|
||||||
|
#endif // DEBUG
|
||||||
|
}
|
||||||
|
|
||||||
|
RadConverter::~RadConverter()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int RadConverter::LoadCalibrationFrames(RunTimeGrabberParams struGrabberRTParams, vector<vector<CalFrame>> &struAllCalFrame)
|
||||||
|
{
|
||||||
|
/////param
|
||||||
|
int iScanPoints = struGrabberRTParams.apsParams.iTotalPosition - 1;
|
||||||
|
int iDevices = struGrabberRTParams.fscParams.ucDeviceNumber;
|
||||||
|
/////check dir
|
||||||
|
QDir qdirPath(m_qstrCalFilePath);
|
||||||
|
if (!qdirPath.exists())
|
||||||
|
{
|
||||||
|
qDebug() << "Calibration File not exist";
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
/////check quantities
|
||||||
|
QStringList qslFilter;
|
||||||
|
qslFilter << "*.dat";
|
||||||
|
qdirPath.setNameFilters(qslFilter);
|
||||||
|
QFileInfoList qfiInfo = qdirPath.entryInfoList(qslFilter);
|
||||||
|
if (qfiInfo.size()!= iScanPoints * iDevices)
|
||||||
|
{
|
||||||
|
qDebug() << "Calibration Files quantities not match";
|
||||||
|
return -2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/////read file
|
||||||
|
QString qstrFilePath;
|
||||||
|
vector<CalFrame> vecOneDev;
|
||||||
|
CalFrame OneFile;
|
||||||
|
for (int j=0;j<iDevices;j++)
|
||||||
|
{
|
||||||
|
vecOneDev.clear();
|
||||||
|
for (int i = 0; i < iScanPoints; i++)
|
||||||
|
{
|
||||||
|
qstrFilePath = m_qstrCalFilePath+QString("/FS%1_").arg(j + 1)+ QString("P%1").arg(i + 1)+".dat";
|
||||||
|
QFile qfCalFile(qstrFilePath);
|
||||||
|
bool bRes = qfCalFile.open(QFile::ReadOnly);
|
||||||
|
|
||||||
|
qfCalFile.read((char *)&OneFile.iExposureTimeInMS,sizeof(int));
|
||||||
|
qfCalFile.read((char*)&OneFile.fTemperature, sizeof(float));
|
||||||
|
qfCalFile.read((char*)&OneFile.iPixels,sizeof(int));
|
||||||
|
qfCalFile.read((char*)OneFile.fWaveLength, sizeof(float)*OneFile.iPixels);
|
||||||
|
qfCalFile.read((char*)OneFile.dCal_Gain, sizeof(double)*OneFile.iPixels);
|
||||||
|
qfCalFile.read((char*)OneFile.dCal_Offset, sizeof(double)*OneFile.iPixels);
|
||||||
|
|
||||||
|
/////check attribute
|
||||||
|
// if ()
|
||||||
|
// {
|
||||||
|
// }
|
||||||
|
|
||||||
|
vecOneDev.push_back(OneFile);
|
||||||
|
}
|
||||||
|
struAllCalFrame.push_back(vecOneDev);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
22
source/Uploader/RadianceConverter.h
Normal file
22
source/Uploader/RadianceConverter.h
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "pch.h"
|
||||||
|
#include "ZZ_Types.h"
|
||||||
|
using namespace std;
|
||||||
|
using namespace ZZ_MISCDEF::ZZ_DATAFILE;
|
||||||
|
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
|
||||||
|
using namespace ZZ_MISCDEF::IRIS::FS;
|
||||||
|
|
||||||
|
class RadConverter :public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
RadConverter(QObject* parent = nullptr);
|
||||||
|
~RadConverter();
|
||||||
|
public:
|
||||||
|
public:
|
||||||
|
int LoadCalibrationFrames(RunTimeGrabberParams struGrabberRTParams, vector<vector<CalFrame>> &struAllCalFrame);
|
||||||
|
private:
|
||||||
|
QString m_qstrCalFilePath;
|
||||||
|
private:
|
||||||
|
public slots:
|
||||||
|
};
|
@ -9,6 +9,7 @@
|
|||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
#include <QMetaType>
|
||||||
////////////////////////////Thread
|
////////////////////////////Thread
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
@ -25,4 +26,8 @@
|
|||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
////////////////////////////Serial I/O
|
////////////////////////////Serial I/O
|
||||||
#include <QtSerialPort/QSerialPort>
|
#include <QtSerialPort/QSerialPort>
|
||||||
#include <QtSerialPort/QSerialPortInfo>
|
#include <QtSerialPort/QSerialPortInfo>
|
||||||
|
////////////////////////////NetWork
|
||||||
|
#include "QNetworkRequest"
|
||||||
|
#include "QNetworkAccessManager"
|
||||||
|
#include "QNetworkReply"
|
Reference in New Issue
Block a user