From e228f65119bef5ba2e0a26c0f9c53d5c3f131463 Mon Sep 17 00:00:00 2001 From: Arseniy-Movshev Date: Sun, 28 May 2023 14:08:57 +0100 Subject: Allow sensorlogd to set up its directory structure This code sets up all the paths used by sensorlogd before it is started --- daemon/logger.cpp | 6 ++++++ daemon/logger.h | 1 + daemon/sensorPlugins/heartrateSensor.cpp | 2 ++ daemon/sensorPlugins/stepCounter.cpp | 2 ++ 4 files changed, 11 insertions(+) diff --git a/daemon/logger.cpp b/daemon/logger.cpp index 56d1c3c..7222c95 100644 --- a/daemon/logger.cpp +++ b/daemon/logger.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -116,3 +117,8 @@ QStringList fileGetPrevRecord(QString sensorPrefix, QDateTime recordTime) { QString fileNameForDate(QDate date, QString prefix) { return QStandardPaths::writableLocation(QStandardPaths::HomeLocation) + "/asteroid-healthloggerd/" + prefix + "/" + date.toString("yyyy-MM-dd.log"); } + +void setupFilePath(QString sensorPrefix) { + QDir().mkpath(QStandardPaths::writableLocation(QStandardPaths::HomeLocation) + "/asteroid-healthloggerd/" + sensorPrefix); +} + diff --git a/daemon/logger.h b/daemon/logger.h index 6047a04..7bfe06b 100644 --- a/daemon/logger.h +++ b/daemon/logger.h @@ -48,5 +48,6 @@ private: 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); + void setupFilePath(QString sensorPrefix); //sets up the paths for sensors to write into #endif // LOGGER_H diff --git a/daemon/sensorPlugins/heartrateSensor.cpp b/daemon/sensorPlugins/heartrateSensor.cpp index cf3bfb4..8b329b9 100644 --- a/daemon/sensorPlugins/heartrateSensor.cpp +++ b/daemon/sensorPlugins/heartrateSensor.cpp @@ -26,6 +26,8 @@ HeartrateSensorPlugin::HeartrateSensorPlugin(QObject *parent, int initInterval) hrmSensor = new QHrmSensor(this); connect(hrmSensor,SIGNAL(readingChanged()),this,SLOT(finishRecording())); + setupFilePath(sensorPathPrefix); + qDebug() << "heartrate sensor is enabled. interval is (ms) " << interval; recordIntervalTimer = new QTimer(this); connect(recordIntervalTimer,SIGNAL(timeout()),this,SLOT(triggerRecording())); diff --git a/daemon/sensorPlugins/stepCounter.cpp b/daemon/sensorPlugins/stepCounter.cpp index 8bfed03..fe8370c 100644 --- a/daemon/sensorPlugins/stepCounter.cpp +++ b/daemon/sensorPlugins/stepCounter.cpp @@ -33,6 +33,8 @@ StepCounterPlugin::StepCounterPlugin(QObject *parent, int initInterval) : QDateTime currDateTime = QDateTime::currentDateTime(); + setupFilePath(sensorPathPrefix); + if (dayFileExists(sensorPathPrefix)) { QStringList lastLineData = fileGetPrevRecord(sensorPathPrefix); lastRecordTime = QDateTime::fromSecsSinceEpoch(lastLineData[0].toInt()); -- cgit v1.2.3-54-g00ecf