Masterctrl/Sources/Chalet/ChaletDataLogger.cpp

89 lines
2.6 KiB
C++

#include "ChaletDataLogger.h"
#include <QDateTime>
#include <QString>
CChaletDataLogger::CChaletDataLogger(QObject *parent) : QObject(parent)
{
bool create = false;
mChaletLogFile = new QFile(CHALET_LORA_DATA_LOG_FILENAME);
if(QFile::exists(CHALET_LORA_DATA_LOG_FILENAME) == false)
create = true;
if(mChaletLogFile->open(QIODevice::ReadWrite|QIODevice::Append/*|QIODevice::Text*/) == false)
{
delete mChaletLogFile;
mChaletLogFile = 0;
qDebug("Cannot open chalet LORA log file...");
return;
}
if(create)
{
qDebug("Creating new chalet LORA log file...");
QString Header("Date;Heure;Courant Batterie;Tension Batterie;Inverter;Wifi\n");
int bytes = mChaletLogFile->write(qPrintable(Header));
mChaletLogFile->flush();
}
// mChaletLogFile->close();
qDebug("Chalet LORA log file created successfully");
}
CChaletDataLogger::~CChaletDataLogger()
{
if(mChaletLogFile)
{
mChaletLogFile->close();
delete mChaletLogFile;
}
}
bool CChaletDataLogger::LogChaletLORAData(CChaletMainStatus *Data)
{
if(mChaletLogFile == 0)
{
qDebug("Invalid LORA log file handle");
return false;
}
// if(mChaletLogFile->open(QIODevice::ReadWrite|QIODevice::Append|QIODevice::Text) == false)
// {
// delete mChaletLogFile;
// mChaletLogFile = 0;
// qDebug("Cannot open chalet LORA log file...");
// return false;
// }
QString CSVData;// = QString("%1;%2;%3;%4;%5;%6\n").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd").arg(QDateTime::currentDateTime().toString("hh:mm:ss")).arg(Data->mBatteryCurrent).arg(Data->mBatteryVoltage).arg(Data->mInverterRelayStatus).arg(Data->mWiFiModuleStatus));
CSVData.clear();
CSVData.append(QDateTime::currentDateTime().toString("yyyy-MM-dd"));
CSVData.append(";");
CSVData.append(QDateTime::currentDateTime().toString("hh:mm:ss"));
CSVData.append(";");
CSVData.append(QString("%1;").arg(Data->mBatteryCurrent));
CSVData.append(QString("%1;").arg(Data->mBatteryVoltage));
if(Data->mInverterRelayStatus == 1)
CSVData.append(QString("ON;"));
else
CSVData.append(QString("OFF;"));
//CSVData.append(QString("%1;").arg(Data->mInverterRelayStatus));
if(Data->mWiFiModuleStatus == 0)
CSVData.append(QString("OFF\n"));
else
CSVData.append(QString("ON\n"));
// CSVData.append(QString("%1\n").arg(Data->mWiFiModuleStatus));
mChaletLogFile->write(qPrintable(CSVData));
mChaletLogFile->flush();
// mChaletLogFile->close();
return true;
}