添加了对/proc/mounts下硬件列表的检测功能,无法识别到TF卡挂在的话 程序将闪灯提示异常,不再继续执行

This commit is contained in:
卓 张
2024-07-09 15:45:32 +08:00
parent 3ce267dccf
commit b3b07908ea
12 changed files with 118 additions and 62 deletions

Binary file not shown.

View File

@ -1,6 +1,4 @@
{ {
"DevContainersInfoBarHidden": true,
"ActiveTargetSystem": "172.16.0.83",
"OutputFoldersPerTargetSystem": { "OutputFoldersPerTargetSystem": {
"本地计算机": [ "本地计算机": [
"out\\build\\Linux-GCC-Debug", "out\\build\\Linux-GCC-Debug",
@ -9,36 +7,11 @@
"out\\install\\x64-Debug", "out\\install\\x64-Debug",
"out\\build\\Linux-GCC-Debug-Nanopi-Air", "out\\build\\Linux-GCC-Debug-Nanopi-Air",
"out\\install\\Linux-GCC-Debug-Nanopi-Air" "out\\install\\Linux-GCC-Debug-Nanopi-Air"
],
"172.16.0.74": [
"out\\build\\Linux-GCC-Debug",
"out\\install\\Linux-GCC-Debug",
"out\\build\\x64-Debug",
"out\\install\\x64-Debug",
"out\\build\\Linux-GCC-Debug-Nanopi-Air",
"out\\install\\Linux-GCC-Debug-Nanopi-Air"
],
"172.16.0.83": [
"out\\build\\Linux-GCC-Debug",
"out\\install\\Linux-GCC-Debug",
"out\\build\\x64-Debug",
"out\\install\\x64-Debug",
"out\\build\\Linux-GCC-Debug-Nanopi-Air",
"out\\install\\Linux-GCC-Debug-Nanopi-Air"
] ]
}, },
"ExpandedNodes": [ "ExpandedNodes": [
"", ""
"\\Source",
"\\Source\\Calibration",
"\\Source\\FS",
"\\Source\\GPS",
"\\Source\\Logger",
"\\Source\\OSIF",
"\\Source\\OSIF\\include",
"\\Source\\Settings",
"\\Source\\ZZ_SDK"
], ],
"SelectedNode": "\\Source\\FS\\DataFileProcessor.cpp", "SelectedNode": "\\main.cpp",
"PreviewInSolutionExplorer": false "PreviewInSolutionExplorer": false
} }

Binary file not shown.

Binary file not shown.

View File

@ -5,9 +5,9 @@ cmake_minimum_required (VERSION 3.5)
project ("IRIS_FODIS") project ("IRIS_FODIS")
IF (WIN32) #IF (WIN32)
set(CMAKE_PREFIX_PATH "D:/Qt/Qt5.14.2/5.14.2/msvc2017_64/" ${CMAKE_PREFIX_PATH}) #set(CMAKE_PREFIX_PATH "D:/Qt/Qt5.14.2/5.14.2/msvc2017_64/" ${CMAKE_PREFIX_PATH})
ENDIF () #ENDIF ()
set(CMAKE_AUTOMOC ON) set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOUIC ON)

View File

@ -10,7 +10,7 @@
"ctestCommandArgs": "", "ctestCommandArgs": "",
"inheritEnvironments": [ "linux_arm" ], "inheritEnvironments": [ "linux_arm" ],
"intelliSenseMode": "linux-gcc-arm", "intelliSenseMode": "linux-gcc-arm",
"remoteMachineName": "-196451390;172.16.0.113 (username=root, port=22, authentication=Password)", "remoteMachineName": "-1839682806;172.16.0.87 (username=root, port=22, authentication=Password)",
"remoteCMakeListsRoot": "/home/pi/FODIS/src/", "remoteCMakeListsRoot": "/home/pi/FODIS/src/",
"remoteBuildRoot": "/home/pi/FODIS/build_d/${name}", "remoteBuildRoot": "/home/pi/FODIS/build_d/${name}",
"remoteInstallRoot": "/home/pi/FODIS/out/install/${name}", "remoteInstallRoot": "/home/pi/FODIS/out/install/${name}",

View File

@ -186,8 +186,8 @@ int MakeDCT::LoadTable()
bool bRes = qfData.open(QFile::ReadOnly); bool bRes = qfData.open(QFile::ReadOnly);
if (!bRes) if (!bRes)
{ {
//qDebug() << "LoadTable open Failed."; qDebug() << "LoadTable open Failed.";
printf("LoadTable open Failed."); //printf("LoadTable open Failed.");
return 1; return 1;
} }
QString qstrTemp; QString qstrTemp;
@ -202,7 +202,7 @@ int MakeDCT::LoadTable()
for (int i=0;i< qsList.size()-1;i++) for (int i=0;i< qsList.size()-1;i++)
{ {
dfTemp.lData[i] = qsList[i + 1].toInt(); dfTemp.lData[i] = qsList[i + 1].toInt();
qDebug() << qsList[i] << ";"; //qDebug() << qsList[i] << ";";
} }
m_vecDataFrame.push_back(dfTemp); m_vecDataFrame.push_back(dfTemp);
qDebug() << qsList.size() << endl; qDebug() << qsList.size() << endl;

View File

@ -655,7 +655,7 @@ int ZZ_ATPControl_Serial_Qt::SingleShot(DataFrame& dfData)
qbSend.resize(3); qbSend.resize(3);
// qbSend[1] = 0x00; // qbSend[1] = 0x00;
// qbSend[2] = 0x01; // qbSend[2] = 0x01;
qbSend[1] = m_iExposureTime >> 8;; qbSend[1] = m_iExposureTime >> 8;
qbSend[2] = m_iExposureTime & 0xFF; qbSend[2] = m_iExposureTime & 0xFF;
int iRes = SendCommand(qbSend); int iRes = SendCommand(qbSend);
if (iRes != 0) if (iRes != 0)
@ -691,8 +691,6 @@ int ZZ_ATPControl_Serial_Qt::SingleShot(DataFrame& dfData)
for (size_t i = 0; i < iDataSizeInPixel; i++) for (size_t i = 0; i < iDataSizeInPixel; i++)
{ {
dfData.lData[i] = qToBigEndian(usData[i]); dfData.lData[i] = qToBigEndian(usData[i]);
} }
// for (int i = 0; i < iDataSizeInPixel; i++) // for (int i = 0; i < iDataSizeInPixel; i++)
// { // {

View File

@ -191,9 +191,17 @@ void DataFileProcessor::RecoverBackground(QString qstrDataFileName, QString qstr
vecExpotime.push_back(dfDataTemp.usExposureTimeInMS); vecExpotime.push_back(dfDataTemp.usExposureTimeInMS);
vecDTime.push_back(dfDataTemp.dTimes); vecDTime.push_back(dfDataTemp.dTimes);
int iB = dfDataTemp.usExposureTimeInMS % 10; if (dfDataTemp.usExposureTimeInMS<10)
{
m_dfBackground = m_vecDataFrame[iB]; int iB = dfDataTemp.usExposureTimeInMS % 10;
m_dfBackground = m_vecDataFrame[iB];
}
else if (dfDataTemp.usExposureTimeInMS >=10&& dfDataTemp.usExposureTimeInMS<=99)
{
int iA = dfDataTemp.usExposureTimeInMS / 10;
m_dfBackground = m_vecDataFrame[8 + iA];
}
for (int i = 0; i < 2048 ; i++) for (int i = 0; i < 2048 ; i++)
{ {

View File

@ -152,6 +152,13 @@ int BD357Controller::Initialize(GPSInfo &struGPSI)
int BD357Controller::VSlot_SkipSyncDateOnce()
{
emit Signal_StartCapture();
qDebug() << "Signal_StartCapture";
return 0;
}
int BD357Controller::ZZ_FormatTime(ZZ_U8 u8Year, ZZ_U8 u8Month, ZZ_U8 u8Day, ZZ_U8 u8Hour, ZZ_U8 u8Minute, ZZ_U8 u8Second) int BD357Controller::ZZ_FormatTime(ZZ_U8 u8Year, ZZ_U8 u8Month, ZZ_U8 u8Day, ZZ_U8 u8Hour, ZZ_U8 u8Minute, ZZ_U8 u8Second)
{ {
int iYear = u8Year + 2000; int iYear = u8Year + 2000;

View File

@ -24,6 +24,9 @@ public:
int SyncDateOnce(); int SyncDateOnce();
int StartContinuousUpdating(); int StartContinuousUpdating();
int Initialize(GPSInfo &struGPSI); int Initialize(GPSInfo &struGPSI);
//test func
int VSlot_SkipSyncDateOnce();
private: private:
int ZZ_FormatTime(ZZ_U8 u8Year,ZZ_U8 u8Month, ZZ_U8 u8Day, ZZ_U8 u8Hour, ZZ_U8 u8Minute, ZZ_U8 u8Second); int ZZ_FormatTime(ZZ_U8 u8Year,ZZ_U8 u8Month, ZZ_U8 u8Day, ZZ_U8 u8Hour, ZZ_U8 u8Minute, ZZ_U8 u8Second);
public slots: public slots:

107
main.cpp
View File

@ -6,8 +6,39 @@
#include "ZZ_Types.h" #include "ZZ_Types.h"
#include "DataFileProcessor.h" #include "DataFileProcessor.h"
#include "MakeDarkCurrentTable.h" #include "MakeDarkCurrentTable.h"
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std; 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;
}
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
using namespace ZZ_MISCDEF::ZZ_RUNPARAMS; using namespace ZZ_MISCDEF::ZZ_RUNPARAMS;
@ -15,17 +46,42 @@ int main(int argc, char* argv[])
QCoreApplication a(argc, argv); QCoreApplication a(argc, argv);
QEventLoop qeLoop;
QTimer::singleShot(30000, &qeLoop, SLOT(quit()));
qeLoop.exec();
//ָʾ<D6B8>ƿ<EFBFBD><C6BF><EFBFBD> //ָʾ<D6B8>ƿ<EFBFBD><C6BF><EFBFBD>
//system("sudo mount / dev / mmcblk1p1 / home / data");
system("gpio mode 4 out"); system("gpio mode 4 out");
system("gpio mode 5 out"); system("gpio mode 5 out");
qDebug() << "system(gpio mode 4 out)"; qDebug() << "system(gpio mode 4 out)";
qDebug() << "system(gpio mode 5 out)"; qDebug() << "system(gpio mode 5 out)";
///check tf card
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();
OneFSContext m_struFSParam;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OneFSContext m_struFSParam;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GPSInfo m_struGPSInfo; GPSInfo m_struGPSInfo;
//FodisRP m_struMiscRunParams; //FodisRP m_struMiscRunParams;
@ -35,15 +91,17 @@ int main(int argc, char* argv[])
CMainGrabber m_mgMainGrabber;//<2F><><EFBFBD>ɼ<EFBFBD> CMainGrabber m_mgMainGrabber;//<2F><><EFBFBD>ɼ<EFBFBD>
DataFileProcessor m_dfpDataSaver; DataFileProcessor m_dfpDataSaver;
#ifndef WIN32
QT_LOG::ZZ_InitLogger("/home/data/Log/"); //test
#endif
//////////////////////////////////////////////////////////////////////////test code block //////////////////////////////////////////////////////////////////////////test code block
//DataFrame aaaa; //DataFrame aaaa;
//int xxxx = sizeof(aaaa); //int xxxx = sizeof(aaaa);
//m_dfpDataSaver.LoadWaveLengthFile("E:/WavelengthInfo.txt"); //m_dfpDataSaver.LoadWaveLengthFile("E:/WavelengthInfo.txt");
//m_dfpDataSaver.LoadSingleDataFile("D:/15_55_18.datrecv"); //m_dfpDataSaver.LoadSingleDataFile("D:/Data/2023_07_04/15_55_18.dat");
//m_dfpDataSaver.RecoverBackground("D:/15_55_18.dat", "D:/DCTable.txt"); //m_dfpDataSaver.RecoverBackground("D:/Data/2023_07_04/15_55_18.dat", "D:/DCTable.txt");
//////////////////////////////////////////////////////////////////////////test code block //////////////////////////////////////////////////////////////////////////test code block
//////////////////////////////////////////////////////////////////////////Check Settings File //////////////////////////////////////////////////////////////////////////Check Settings File
bool bRes = false; bool bRes = false;
@ -71,9 +129,27 @@ int main(int argc, char* argv[])
return -2; 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 //////////////////////////////////////////////////////////////////////////Check Settings File
//////////////////////////////////////////////////////////////////////////Load Settings File //////////////////////////////////////////////////////////////////////////Load Settings File
///configger ///configger
m_syscfSettings.Initialize(); m_syscfSettings.Initialize();
@ -115,8 +191,6 @@ int main(int argc, char* argv[])
return -1; return -1;
} }
} }
bool bRes = QFile::copy("/root/DCTable.txt", "/home/data/Data/DCTable.txt"); bool bRes = QFile::copy("/root/DCTable.txt", "/home/data/Data/DCTable.txt");
if (!bRes) if (!bRes)
{ {
@ -124,12 +198,8 @@ int main(int argc, char* argv[])
return -2; return -2;
} }
} }
} }
//////////////////////////////////////////////////////////////////////////Check DCTable //////////////////////////////////////////////////////////////////////////Check DCTable
////////////////////////////////test only ////////////////////////////////test only
//MakeDCT m_test; //MakeDCT m_test;
//m_test.SetRunParams(m_struFSParam); //m_test.SetRunParams(m_struFSParam);
@ -138,7 +208,6 @@ int main(int argc, char* argv[])
//m_test.Initialize_Part(); //m_test.Initialize_Part();
//m_test.LoadTable(); //m_test.LoadTable();
////////////////////////////////test only ////////////////////////////////test only
m_ctrlGPS.SetContext(m_mgMainGrabber);//<2F><>ʼ<EFBFBD><CABC>gps m_ctrlGPS.SetContext(m_mgMainGrabber);//<2F><>ʼ<EFBFBD><CABC>gps
m_ctrlGPS.SetupMessagePipeline(); m_ctrlGPS.SetupMessagePipeline();
m_ctrlGPS.Initialize(m_struGPSInfo); m_ctrlGPS.Initialize(m_struGPSInfo);
@ -153,13 +222,11 @@ int main(int argc, char* argv[])
m_mgMainGrabber.Initialize();//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> m_mgMainGrabber.Initialize();//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
//m_ctrlGPS.SyncDateOnce(); //m_ctrlGPS.VSlot_SkipSyncDateOnce();
cout << "System Started..." << endl; cout << "System Started..." << endl;
/////// ///////
//long long int a1;// 8 //long long int a1;// 8
//long long b; // 8 //long long b; // 8
//double c; // 8 //double c; // 8