添加了对/proc/mounts下硬件列表的检测功能,无法识别到TF卡挂在的话 程序将闪灯提示异常,不再继续执行
This commit is contained in:
Binary file not shown.
@ -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
|
||||||
}
|
}
|
BIN
.vs/cmake.db
BIN
.vs/cmake.db
Binary file not shown.
BIN
.vs/slnx.sqlite
BIN
.vs/slnx.sqlite
Binary file not shown.
@ -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)
|
||||||
|
@ -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}",
|
||||||
|
@ -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;
|
||||||
|
@ -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++)
|
||||||
// {
|
// {
|
||||||
|
@ -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++)
|
||||||
{
|
{
|
||||||
|
@ -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;
|
||||||
|
@ -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
107
main.cpp
@ -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
|
||||||
|
Reference in New Issue
Block a user