Files
airborne_CO2/Source/DataFileManager.cpp
DESKTOP-4HD0KC3\ZhangZhuo a079a393bd 张卓写的代码
2024-10-30 16:20:14 +08:00

118 lines
3.9 KiB
C++

#include "DataFileManager.h"
DataFileManager::DataFileManager(QObject* parent /*= nullptr*/)
{
m_pqfData = NULL;
m_qstrFilePath = "/home/data/Data/";
}
DataFileManager::~DataFileManager()
{
}
void DataFileManager::GenerateFilePath()
{
m_qdtTime = QDateTime::currentDateTime();
// QTimeZone curZone;
// m_qdtTime.toTimeZone();
QString qstrAddYMD = m_qdtTime.toString("/yyyy_MM_dd");
m_qdtTime = m_qdtTime.addSecs(3600 * 8);
QString qstrAddHMS = m_qdtTime.toString("hh_mm_ss");
m_qstrFullFileName = m_qstrFilePath + qstrAddYMD;
QString qstrTemp = m_qstrFullFileName;
m_qstrFullFileName = m_qstrFullFileName + "/" + qstrAddHMS + ".csv";
QDir qdirPathTemp(m_qstrFilePath);
if (!qdirPathTemp.exists())
{
bool bRes = qdirPathTemp.mkdir(m_qstrFilePath);
if (!bRes)
{
qDebug() << "DataFileProcessor mkdir Failed.";
//printf("DataFileProcessor mkdir Failed");
}
}
QDir qdirPathTempA(qstrTemp);
if (!qdirPathTempA.exists())
{
bool bRes = qdirPathTempA.mkdir(qstrTemp);
if (!bRes)
{
qDebug() << "DataFileProcessor mkdir Failed.";
//printf("DataFileProcessor mkdir Failed");
}
}
//return 0;
}
int DataFileManager::GenerateFile()
{
m_pqfData = new QFile(m_qstrFullFileName);
bool bRes = m_pqfData->open(QFile::WriteOnly | QFile::Text | QIODevice::Append);
if (!bRes)
{
qDebug() << "GenerateFile Failed.";
return 1;
}
return 0;
}
int DataFileManager::WriteData(M300RTKDataFrame struM300RTKDataFrame, GSDataFrame struGSDataFrame, UASDataFrame struUASDataFrame)
{
// QFile qfData(m_qstrFullFileName);
// bool bRes = qfData.open(QFile::WriteOnly | QFile::Text | QIODevice::Append);
// if (!bRes)
// {
// qDebug() << "WriteData open Failed.";
// return 0;
// }
//////////////////////////////////////////////////////////////////////////add datetime 20230408
QString qStrDate = QDate::currentDate().toString("yyyy/MM/dd,");
QString qStrTime = QTime::currentTime().toString("hh:mm:ss,");
qint64 qRes = m_pqfData->write(qStrDate.toLatin1());
qRes = m_pqfData->write(qStrTime.toLatin1());
//////////////////////////////////////////////////////////////////////////
QString qstrTemp;
qstrTemp = QString("%1,%2,%3,%4,").arg(struM300RTKDataFrame.stGPSPosition.x).arg(struM300RTKDataFrame.stGPSPosition.y).arg(struM300RTKDataFrame.stGPSPosition.z).arg(struM300RTKDataFrame.fAltitudeFused);
qRes = m_pqfData->write(qstrTemp.toLatin1());
//qDebug() << qstrTemp;
//qDebug() << qRes;
qstrTemp= QString("%1,%2,%3,").arg(struM300RTKDataFrame.stVelocity.x).arg(struM300RTKDataFrame.stVelocity.y).arg(struM300RTKDataFrame.stVelocity.z);
qRes = m_pqfData->write(qstrTemp.toLatin1());
//qDebug() << qRes;
//qDebug() << qstrTemp;
qstrTemp= QString("%1,%2,%3,%4,").arg(struM300RTKDataFrame.stQuaternion.w_q0).arg(struM300RTKDataFrame.stQuaternion.x_q1).arg(struM300RTKDataFrame.stQuaternion.y_q2).arg(struM300RTKDataFrame.stQuaternion.z_q3);
qRes = m_pqfData->write(qstrTemp.toLatin1());
//////////////////////////////////////////////////////////////////////////20230428 add EulerAngle
qstrTemp = QString("%1,%2,%3,").arg(struM300RTKDataFrame.stEulerAngle.pitch).arg(struM300RTKDataFrame.stEulerAngle.roll).arg(struM300RTKDataFrame.stEulerAngle.yaw);
qRes = m_pqfData->write(qstrTemp.toLatin1());
//////////////////////////////////////////////////////////////////////////
qstrTemp = QString("%1,%2,%3,%4,%5,").arg(struGSDataFrame.ulCO2).arg(struGSDataFrame.ulH2O).arg(struGSDataFrame.fTemp).arg(struGSDataFrame.fPP).arg(struGSDataFrame.fPB);
qRes = m_pqfData->write(qstrTemp.toLatin1());
qstrTemp = QString("%1,%2,%3,%4,%5").arg(struUASDataFrame.fFixedWindDirection).arg(struUASDataFrame.fFixedWindSpeed).arg(struUASDataFrame.fWindDirection).arg(struUASDataFrame.fWindSpeed).arg(struUASDataFrame.fWindTemperature);
qRes = m_pqfData->write(qstrTemp.toLatin1());
m_pqfData->write("\n");
m_pqfData->flush();
//QString qstrTemp;
}
int DataFileManager::CloseData()
{
m_pqfData->flush();
m_pqfData->close();
}