#include "LogParser.h" #include #include #include LogParser::LogParser(QObject* parent) : QObject{parent} { logFolder = "C:/Users/Yury/Documents/M1300LogFolder"; } LogParser::~LogParser() { } void LogParser::setLogFolder(const QString& folder) { logFolder = folder; } void LogParser::setStartDateTime(const QDateTime& dateTime) { startDateTime = dateTime; } void LogParser::setEndDateTime(const QDateTime& dateTime) { endDateTime = dateTime; } QString LogParser::getLogFolder() const { return logFolder; } QDateTime LogParser::getStartDateTime() const { return startDateTime; } QDateTime LogParser::getEndDateTime() const { return endDateTime; } QStringList LogParser::logFilesByDateTime() const { QStringList files; for (const auto& fileInfo: QDir(logFolder).entryInfoList()) { const auto fileTime = fileInfo.baseName(); auto date = QDateTime::fromString(fileTime, "yyMMdd_hhmmss"); if (date.date().year() < 2000) { date = date.addYears(100); } if (date.isValid() && date >= startDateTime && date <= endDateTime) { files.append(fileInfo.absoluteFilePath()); } } return files; } QList LogParser::logMessagesByDateTime() const { QList logMessages; const auto logFiles = logFilesByDateTime(); for (const auto& logFile: logFiles) { QFile file(logFile); if (!file.open(QFile::ReadOnly)) { qWarning() << "Can't open" << logFile; continue; } while (!file.atEnd()) { const auto line = QString::fromUtf8(file.readLine()); if (line.startsWith("RTC")) { continue; } const auto parameters = line.split(';'); if (parameters.size() < 7) { continue; } DataTypes::LogMessage message; message.dateTime = QDateTime::fromSecsSinceEpoch(parameters.at(0).toULongLong()); message.startupTime = parameters.at(1).toULongLong(); message.type = static_cast(parameters.at(2).toUInt()); message.f1 = parameters.at(3).toLongLong(); message.f2 = parameters.at(4).toLongLong(); message.f3 = parameters.at(5).toLongLong(); message.f4 = parameters.at(6).toLongLong(); // qDebug() << message.dateTime << message.startupTime << int(message.type); logMessages.append(message); } } return logMessages; }