Files
IRIS_FODIS/main.cpp

238 lines
5.9 KiB
C++
Raw Normal View History

2022-03-21 18:03:52 +08:00
#include "pch.h"
2022-03-25 19:07:05 +08:00
#include "Logger.h"
#include "Source/Settings/SysConfigger.h"
#include "BD357Ctrl.h"
2022-04-12 10:27:25 +08:00
#include "MainGrabber.h"
2022-03-25 19:07:05 +08:00
#include "ZZ_Types.h"
2022-04-12 10:27:25 +08:00
#include "DataFileProcessor.h"
#include "MakeDarkCurrentTable.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
2022-03-21 18:03:52 +08:00
using namespace std;
bool is_mounted(const std::string& device, const std::string& mount_point)
{
std::ifstream mounts("/proc/mounts");
std::string line;
if (mounts.is_open())
{
while (getline(mounts, line))
{
std::istringstream iss(line);
std::string dev, mnt, fstype, options;
if (iss >> dev >> mnt >> fstype >> options)
{
if (dev == device && mnt == mount_point)
{
mounts.close();
return true;
}
}
}
mounts.close();
}
return false;
}
2022-03-25 19:07:05 +08:00
int main(int argc, char* argv[])
2022-03-21 18:03:52 +08:00
{
2022-03-25 19:07:05 +08:00
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
using namespace ZZ_MISCDEF::MISC_DETECTOR;
2022-08-30 16:14:46 +08:00
QCoreApplication a(argc, argv);
//ָʾ<D6B8>ƿ<EFBFBD><C6BF><EFBFBD>
//system("sudo mount / dev / mmcblk1p1 / home / data");
2022-04-15 13:39:10 +08:00
system("gpio mode 4 out");
system("gpio mode 5 out");
2022-08-30 16:14:46 +08:00
2022-04-15 13:39:10 +08:00
qDebug() << "system(gpio mode 4 out)";
qDebug() << "system(gpio mode 5 out)";
///check tf card
2024-10-30 15:51:00 +08:00
//<2F><><EFBFBD><EFBFBD>sd<73><64><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>еƾͽ<C6BE><CDBD><EFBFBD><EFBFBD><EFBFBD>˸
std::string device = "/dev/mmcblk1p1";
std::string mount_point = "/home/data";
if (!is_mounted(device, mount_point)/*1*/)
{
while (1)
{
system("gpio write 4 1");
QEventLoop qeLoop;
QTimer::singleShot(200, &qeLoop, SLOT(quit()));
qeLoop.exec();
system("gpio write 4 0");
system("gpio write 5 1");
QTimer::singleShot(200, &qeLoop, SLOT(quit()));
qeLoop.exec();
system("gpio write 5 0");
}
}
QEventLoop qeLoop;
QTimer::singleShot(30000, &qeLoop, SLOT(quit()));
//QTimer::singleShot(10000, &qeLoop, SLOT(quit()));
qeLoop.exec();
2023-03-22 10:08:55 +08:00
OneFSContext m_struFSParam;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2022-03-25 19:07:05 +08:00
GPSInfo m_struGPSInfo;
2022-04-12 10:27:25 +08:00
//FodisRP m_struMiscRunParams;
2022-03-25 19:07:05 +08:00
2023-03-22 10:08:55 +08:00
ZZ_SysConfigger m_syscfSettings;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2022-04-12 10:27:25 +08:00
BD357Controller m_ctrlGPS;
2023-03-22 10:08:55 +08:00
CMainGrabber m_mgMainGrabber;//<2F><><EFBFBD>ɼ<EFBFBD>
2022-04-12 10:27:25 +08:00
DataFileProcessor m_dfpDataSaver;
2022-03-25 19:07:05 +08:00
#ifndef WIN32
QT_LOG::ZZ_InitLogger("/home/data/Log/"); //test
#endif
//////////////////////////////////////////////////////////////////////////test code block
//DataFrame aaaa;
//int xxxx = sizeof(aaaa);
//m_dfpDataSaver.LoadWaveLengthFile("E:/WavelengthInfo.txt");
//m_dfpDataSaver.LoadSingleDataFile("D:/Data/2023_07_04/15_55_18.dat");
//m_dfpDataSaver.RecoverBackground("D:/Data/2023_07_04/15_55_18.dat", "D:/DCTable.txt");
//////////////////////////////////////////////////////////////////////////test code block
//////////////////////////////////////////////////////////////////////////Check Settings File
bool bRes = false;
QFileInfo m_qfiSettingFileInfo("/home/data/Setting/DeviceSettings.ini");
if (!m_qfiSettingFileInfo.isFile())
{
printf ("DeviceSettings File Missing !!! Will create from default one.");
QDir qdirPath("/home/data/Setting");
if (!qdirPath.exists())
{
bool bRes = qdirPath.mkpath("/home/data/Setting");
if (!bRes)
{
qDebug() << "DataFileProcessor mkdir Failed.";
return -1;
}
}
bool bRes = QFile::copy("/root/DeviceSettings.ini", "/home/data/Setting/DeviceSettings.ini");
if (!bRes)
{
qDebug() << " QFile::copy Failed.";
return -2;
}
}
else
{
int iSize = m_qfiSettingFileInfo.size();
if (iSize<50)
{
bool bRes = QFile::remove("/home/data/Setting/DeviceSettings.ini");
if (!bRes)
{
qDebug() << " QFile::remove Failed.";
return -2;
}
bRes = QFile::copy("/root/DeviceSettings.ini", "/home/data/Setting/DeviceSettings.ini");
if (!bRes)
{
qDebug() << " QFile::copy Failed.";
return -2;
}
}
}
//////////////////////////////////////////////////////////////////////////Check Settings File
//////////////////////////////////////////////////////////////////////////Load Settings File
2022-03-25 19:07:05 +08:00
///configger
m_syscfSettings.Initialize();
bRes = m_syscfSettings.LoadSettings_FS(m_struFSParam);
if (!bRes)
{
2022-08-30 16:14:46 +08:00
//qDebug() << "LoadSettings_FS Err." << endl;
printf("LoadSettings_FS Err.");
2022-03-25 19:07:05 +08:00
return 1;
}
bRes = m_syscfSettings.LoadSettings_GPS(m_struGPSInfo);
if (!bRes)
{
2022-08-30 16:14:46 +08:00
//qDebug() << "LoadSettings_GPS Err." << endl;
printf("LoadSettings_GPS Err.");
2022-03-25 19:07:05 +08:00
return 1;
}
2022-04-12 10:27:25 +08:00
/////
//////////////////////////////////////////////////////////////////////////Check DCTable
using namespace ZZ_MISCDEF;
if (m_struFSParam.ucDeviceModel== DeviceModel::FLAME)
{
//do nothing
}
else
{
QFileInfo m_qfiDCTFileInfo("/home/data/Data/DCTable.txt");
if (!m_qfiDCTFileInfo.isFile())
{
printf("DCTable File Missing !!! Will create from default one.");
QDir qdirPath("/home/data/Data");
if (!qdirPath.exists())
{
bool bRes = qdirPath.mkpath("/home/data/Data");
if (!bRes)
{
qDebug() << "DataFileProcessor mkdir Failed.";
return -1;
}
}
bool bRes = QFile::copy("/root/DCTable.txt", "/home/data/Data/DCTable.txt");
if (!bRes)
{
qDebug() << " QFile::copy Failed.";
return -2;
}
}
}
//////////////////////////////////////////////////////////////////////////Check DCTable
////////////////////////////////test only
//MakeDCT m_test;
//m_test.SetRunParams(m_struFSParam);
//m_test.Initialize();
//m_test.MakeTable();
//m_test.Initialize_Part();
//m_test.LoadTable();
////////////////////////////////test only
2023-03-22 10:08:55 +08:00
m_ctrlGPS.SetContext(m_mgMainGrabber);//<2F><>ʼ<EFBFBD><CABC>gps
2022-04-15 13:39:10 +08:00
m_ctrlGPS.SetupMessagePipeline();
2022-03-25 19:07:05 +08:00
m_ctrlGPS.Initialize(m_struGPSInfo);
2022-04-12 10:27:25 +08:00
QThread* m_pqDataGrabberThreadHolder = new QThread();
m_mgMainGrabber.moveToThread(m_pqDataGrabberThreadHolder);
2023-03-22 10:08:55 +08:00
m_mgMainGrabber.SetRunParams(m_struFSParam);//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC>߳<EFBFBD>
2022-04-12 10:27:25 +08:00
m_mgMainGrabber.SetContext(m_ctrlGPS, m_dfpDataSaver);
m_pqDataGrabberThreadHolder->start();
2023-03-22 10:08:55 +08:00
m_mgMainGrabber.Initialize();//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
2022-04-15 13:39:10 +08:00
//m_ctrlGPS.VSlot_SkipSyncDateOnce();
cout << "System Started..." << endl;
2022-04-12 10:27:25 +08:00
///////
2022-04-15 13:39:10 +08:00
2022-08-30 16:14:46 +08:00
//long long int a1;// 8
//long long b; // 8
//double c; // 8
//qDebug()<<sizeof(a1)<< sizeof(b)<<sizeof(c);
/////
2022-04-12 10:27:25 +08:00
2022-03-25 19:07:05 +08:00
return a.exec();
2022-03-21 18:03:52 +08:00
}