#include "pch.h" #include "ATPControl_Serial_QT.h" #include "Logger.h" #include "SystemConfigger.h" #include "MainDataGrabber.h" #include "DataFileProcessor.h" #include "Scheduler.h" #include "GY39Controller.h" #include "MainDataUploader.h" #include "VSMD12XMovementTest.h" using namespace std; int main(int argc, char *argv[]) { using namespace ZZ_MISCDEF::ZZ_RUNPARAMS; using namespace ZZ_MISCDEF::MISC_DETECTOR; QCoreApplication a(argc, argv); //////////////////////////////////////////////////////////////////////////for test //MovementTest m_testVSMD12X; //////////////////////////////////////////////////////////////////////////// //system("gpio mode 1 output");//������ų�ʼ�� //qDebug() << "gpio mode 1 output......" << endl; // //ZZ_ATPControl_Serial_Qt test; //test.Initialize(0, "/dev/ttyS1", "2223344"); ////////////////////////////////////////////////////////////////////////// //// GY39Controller m_ctrlHumitureDetector; DataFileProcessor m_dfpSaver; ZZ_SysConfigger m_scConfiggerLoader; Scheduler m_sTimer; CMainDataGrabber m_mdgGrabber; CMainDataUploader m_mduUploader; ErrInfo m_eiErrInfo; m_eiErrInfo.fChassisTempErr = 0; m_eiErrInfo.fTecTempErr = 0; m_eiErrInfo.iDataTransferErr = 0; m_eiErrInfo.iShutterErr = 0; //// bool bRes; float m_fChassisTemp = 0, m_fChassisHum = 0; RunTimeGrabberParams m_struRuntimeParams; EContext m_struEC; MEContext m_struMEC; HumitureDeviceInfo m_struHumitureDI; //////////////////////////////////////////////////////////////////////////logger ///create main system logger QT_LOG::ZZ_InitLogger("/home/data/Log/"); //////////////////////////////////////////////////////////////////////////config ///turn on power supply //////add support to dual channel int iRet0 = 0,iRet1 = 0,iRet2 = 0,iRet3 = 0; iRet0 = system("gpio mode 1 out"); iRet1 = system("gpio mode 4 out"); iRet2 = system("gpio mode 5 out"); iRet3 = system("gpio write 1 1");//上电 qDebug() << "gpio 1;4;5; ready"<<" Ret:"<< iRet0<< iRet1<< iRet2<< endl; qDebug() << "gpio write 1 1......" <<" Ret:"<< iRet3<< endl; // QString qstrCMD_A, qstrCMD_B, qstrCMD_Temp; // qstrCMD_Temp = QString::fromStdString("4"); // qDebug() << qstrCMD_Temp << endl; // qstrCMD_A = "gpio write " + qstrCMD_Temp + " 0"; // // qstrCMD_Temp = QString::fromStdString("5"); // qDebug() << qstrCMD_Temp << endl; // qstrCMD_B = "gpio write " + qstrCMD_Temp + " 0"; // // qDebug() << qstrCMD_A << endl; // qDebug() << qstrCMD_B << endl; // system(qstrCMD_A.toLatin1()); // system(qstrCMD_B.toLatin1()); QThread::msleep(5000); bRes = m_scConfiggerLoader.Initialize(); if (bRes) { return -1; } m_scConfiggerLoader.GetParams(m_struRuntimeParams, m_struEC, m_struMEC, m_struHumitureDI); m_sTimer.SetAcqTimeParams(m_struRuntimeParams.atsParams); //m_mduUploader.SetContext(m_struEC, m_struMEC); //m_mduUploader.Initialize(); m_ctrlHumitureDetector.Initialize(m_struHumitureDI.qstrInterfaceName.toStdString()); //////////////////////////////////////////////////////////////////////////prepare 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.qstrCaseHumidity = QString("%1").arg(m_fChassisHum); m_dfpSaver.SetEnvironmentContex(m_struEC); m_dfpSaver.SetManmadeEnviromentalContext(m_struMEC); m_mduUploader.SetContext(m_struEC, m_struMEC); ////////////////////////////////////////////////////////////////////////// QThread* m_pqDataGrabberThreadHolder = new QThread(); QThread* m_pqTimerThreadHolder = new QThread(); QThread* m_pqUploaderThreadHolder = new QThread(); m_mdgGrabber.moveToThread(m_pqDataGrabberThreadHolder); 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_mduUploader); m_mdgGrabber.Init_Normal(); m_mduUploader.Initialize(); m_mduUploader.SetErr(m_eiErrInfo); m_mduUploader.UploadInfo(); m_mduUploader.UploadErr(); m_pqDataGrabberThreadHolder->start(); m_pqTimerThreadHolder->start(); m_pqUploaderThreadHolder->start(); m_mdgGrabber.Init_Self(); m_sTimer.SelfStart(); //////////////////////////////////////////////////////////////////////////test // DataFileProcessor testdp; // ZZ_SysConfigger test; // Scheduler testS; // // RunTimeGrabberParams testp; // EContext testEC; // MEContext testMEC; // test.Initialize(); // test.LoadSettingsFromFile_System(); // test.LoadSettingsFromFile_MISC(); // test.GetGrabberRunParams(testp); // test.GetECParams(testEC); // test.GetMECParams(testMEC); // // testS.SetAcqTimeParams(testp.atsParams); // testdp.SetEnvironmentContex(testEC); // testdp.SetManmadeEnviromentalContext(testMEC); //testdp.WriteDataFile(); //////////////////////////////////////////////////////////////////////////test //CMainDataGrabber testDG; //QThread* m_pqDataGrabberThreadHolder = new QThread(); //testDG.moveToThread(m_pqDataGrabberThreadHolder); //testDG.SetContext(testp, testdp, testS); //testDG.Init_Normal(); //testDG.SetGrabberFileProcessor(testdp); //testDG.SetGrabberParams(testp); //testDG.SetTimer(testS); //testDG.InitThreadStatus(); //testDG.InitializeWorkers(); //testDG.SetupMsgPipelines(); //testDG.StartWorkers(); //m_pqDataGrabberThreadHolder->start(); //testDG.Init_Self(); //testDG.InitThreadStatus(); //testDG.InitializeWorkers(); //testDG.InitLS(); //testDG.SetupMsgPipelines(); //testDG.StartWorkers(); //testDG.StartGrab(); // //QThread* m_pqTimerThreadHolder = new QThread(); //testS.moveToThread(m_pqTimerThreadHolder); //m_pqTimerThreadHolder->start(); //testS.SelfStart(); // //QString qstrTest = "This is a test message 2"; //qDebug() << qstrTest; //cout << "This is a test message"; // //test.LoadSettings_Test(); // //ZZ_DataGrabberThread m_test; //m_test.GrabOnce(); //QThread* m_pqDataGrabberThreadHolder; // // //m_pqDataGrabberThreadHolder->start(); //m_test.TestGrabOnce(); //m_test.StartGrabCall(); //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); //m_test123; //m_test123.Initialize("COM11"); //m_test123.GetHumiture(fTemp, fHum); // int aaaaa = sizeof(unsigned long int); // CalFrame OneFile; // QString aa = "C:/Users/ZhangZhuo/Desktop/qepro.cal"; // QFile qfCalFile(aa); // bRes = qfCalFile.open(QFile::ReadOnly); // using namespace ZZ_MISCDEF; // qfCalFile.read((char *)&OneFile.uiExposureTimeInMS, sizeof(ZZ_U32));//U32 // qfCalFile.read((char*)&OneFile.fTemperature, sizeof(double)); // qfCalFile.read((char*)&OneFile.iPixels, sizeof(int)); // qfCalFile.read((char*)OneFile.fWaveLength, sizeof(double)*OneFile.iPixels); // qfCalFile.read((char*)OneFile.dCal_Gain, sizeof(double)*OneFile.iPixels); // qfCalFile.read((char*)OneFile.dCal_Offset, sizeof(double)*OneFile.iPixels); ////////////////////////////////////////////////////////////////////////// return a.exec(); }