118 lines
3.8 KiB
C++
118 lines
3.8 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(M350RTKDataFrame struM350RTKDataFrame, NikiraDataFrame struGasDataFrame, 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(struM350RTKDataFrame.stGPSPosition.x).arg(struM350RTKDataFrame.stGPSPosition.y).arg(struM350RTKDataFrame.stGPSPosition.z).arg(struM350RTKDataFrame.fAltitudeFused);
|
|
qRes = m_pqfData->write(qstrTemp.toLatin1());
|
|
//qDebug() << qstrTemp;
|
|
//qDebug() << qRes;
|
|
|
|
qstrTemp= QString("%1,%2,%3,").arg(struM350RTKDataFrame.stVelocity.x).arg(struM350RTKDataFrame.stVelocity.y).arg(struM350RTKDataFrame.stVelocity.z);
|
|
qRes = m_pqfData->write(qstrTemp.toLatin1());
|
|
//qDebug() << qRes;
|
|
//qDebug() << qstrTemp;
|
|
|
|
qstrTemp= QString("%1,%2,%3,%4,").arg(struM350RTKDataFrame.stQuaternion.w_q0).arg(struM350RTKDataFrame.stQuaternion.x_q1).arg(struM350RTKDataFrame.stQuaternion.y_q2).arg(struM350RTKDataFrame.stQuaternion.z_q3);
|
|
qRes = m_pqfData->write(qstrTemp.toLatin1());
|
|
|
|
////////////////////////////////////////////////////////////////////////////20230428 add EulerAngle
|
|
qstrTemp = QString("%1,%2,%3,").arg(struM350RTKDataFrame.stEulerAngle.pitch).arg(struM350RTKDataFrame.stEulerAngle.roll).arg(struM350RTKDataFrame.stEulerAngle.yaw);
|
|
qRes = m_pqfData->write(qstrTemp.toLatin1());
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
qstrTemp = QString("%1,%2,").arg(struGasDataFrame.dCH4).arg(struGasDataFrame.dH2O);
|
|
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();
|
|
}
|
|
|