diff options
author | Arseniy-Movshev <dodoradio@outlook.com> | 2023-03-12 00:33:58 +0000 |
---|---|---|
committer | Arseniy-Movshev <dodoradio@outlook.com> | 2023-03-12 11:51:49 +0000 |
commit | 55339aacf03642657e1f9c7d087f9b9fd319de4a (patch) | |
tree | cabe8dcc069d7d63a4978e22b4baab0df861d41b /logger.h | |
parent | 47ed16926ac86295000a51fe1360a0ff9e21d84a (diff) |
Change to having one record file per day and rewrite file access infrastructure to serve this.
I believe this is a useful improvement. The main two advantages are that a) it is very cheap to check whether a record exists for a given day - just check for file presence and b) there is a reasonable limit to the size of these files (never more than a few hundred records per day) which means that they can just be loaded into ram for processing without any complex splitting operations
Currently, the necessary `~/asteroid-healthloggerd/stepCounter` and `...loggerd/heartrateMonitor` directories are not automatically created and the code just vomits errors into log if it can't write to them.
Diffstat (limited to '')
-rw-r--r-- | logger.h | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -3,6 +3,7 @@ #include <QObject> #include <QDateTime> +#include <QDate> #include <QDBusInterface> #include <QTimer> #include <QString> @@ -16,6 +17,7 @@ class Logger : public QObject public: explicit Logger(QObject *parent = 0); virtual ~Logger() {}; + private slots: void displayOn(QString displayState); @@ -25,8 +27,11 @@ private: HeartrateSensorPlugin *m_heartrateSensor; bool stepCounterEnabled = true; StepCounterPlugin *m_stepCounter; + }; -void writeReadingToFile(QString data, QString filename); -QString getLineFromFile(int lineNumber, QString filename); + void fileAddRecord(QString sensorPrefix, QString logdata, QDateTime recordTime = QDateTime::currentDateTime()); //adds a record to today's log file for the given sensor + bool dayFileExists(QString sensorPrefix, QDateTime date = QDateTime::currentDateTime()); //check if today has a log file for the given sensor + QStringList fileGetPrevRecord(QString sensorPrefix, QDateTime recordTime = QDateTime::currentDateTime()); //works backwards to find the last record in today's file before the given time - returns nothing if no file is found. + QString fileNameForDate(QDate date, QString prefix); #endif // LOGGER_H |