#include "ChaletDataLogger.h" #include #include 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; }