summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArseniy-Movshev <dodoradio@outlook.com>2023-06-08 15:03:53 +0100
committerArseniy-Movshev <dodoradio@outlook.com>2023-06-20 00:05:28 +0100
commit79184000729be9c1615d3a07449d1244dcacd887 (patch)
tree8de4608b4834de47286e41234f3e5183389128b5
parenta816cfed03b7a02156377c29bd8a77b9c58333db (diff)
Add HrDataLoader
This provides a similar interface to the step data loader, but doesn't have a 'total' function because that's not really that useful.
-rw-r--r--qmlplugin/CMakeLists.txt2
-rw-r--r--qmlplugin/hrDataLoader.cpp58
-rw-r--r--qmlplugin/hrDataLoader.h32
-rw-r--r--qmlplugin/sensorlogdqmlplugin.cpp2
4 files changed, 94 insertions, 0 deletions
diff --git a/qmlplugin/CMakeLists.txt b/qmlplugin/CMakeLists.txt
index 3d24374..741f360 100644
--- a/qmlplugin/CMakeLists.txt
+++ b/qmlplugin/CMakeLists.txt
@@ -4,6 +4,8 @@ add_library(
sensorlogdqmlplugin.h
stepsDataLoader.cpp
stepsDataLoader.h
+ hrDataLoader.cpp
+ hrDataLoader.h
loggerSettings.cpp
loggerSettings.h
../common.cpp
diff --git a/qmlplugin/hrDataLoader.cpp b/qmlplugin/hrDataLoader.cpp
new file mode 100644
index 0000000..7a39929
--- /dev/null
+++ b/qmlplugin/hrDataLoader.cpp
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2023 Arseniy Movshev <dodoradio@outlook.com>
+ * This file is part of sensorlogd, a sensor logger for the AsteroidOS smartwatch OS.
+ *
+ * sensorlogd is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ * sensorlogd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include <QDebug>
+#include <QFile>
+#include <QTextStream>
+#include <QDate>
+#include <QSettings>
+#include <QDBusInterface>
+#include <QPointF>
+
+#include "hrDataLoader.h"
+#include "../common.h"
+
+HrDataLoader::HrDataLoader() : QObject()
+{
+ m_iface = new QDBusInterface("org.asteroid.sensorlogd.logger","/org/asteroid/sensorlogd/logger","", QDBusConnection::sessionBus(), this);
+ if (!m_iface->isValid()) {
+ qDebug()<<"interface is not valid";
+ } else {
+ qDebug()<<"interface is valid";
+ }
+}
+
+QList<QPointF> HrDataLoader::getTodayData() {
+ return getDataForDate(QDate::currentDate());
+}
+
+QList<QPointF> HrDataLoader::getDataForDate(QDate date) {
+ QList<QPointF> m_filedata;
+ QFile file(fileNameForDate(date, "heartrateMonitor"));
+ if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ qDebug() << "failed to open file";
+ return m_filedata;
+ }
+ QTextStream inStream(&file);
+ QString line;
+ while (!inStream.atEnd()) {
+ line = inStream.readLine();
+ QPointF point;
+ point.setX(line.split(":")[0].toInt());
+ point.setY(line.split(":")[1].toInt());
+ m_filedata.append(point);
+ }
+ file.close();
+ return m_filedata;
+}
+
+void HrDataLoader::triggerDaemonRecording() {
+ m_iface->call("triggerRecording");
+}
diff --git a/qmlplugin/hrDataLoader.h b/qmlplugin/hrDataLoader.h
new file mode 100644
index 0000000..0c6ffba
--- /dev/null
+++ b/qmlplugin/hrDataLoader.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2023 Arseniy Movshev <dodoradio@outlook.com>
+ * This file is part of sensorlogd, a sensor logger for the AsteroidOS smartwatch OS.
+ *
+ * sensorlogd is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ * sensorlogd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+#ifndef HRDATALOADER_H
+#define HRDATALOADER_H
+
+#include <QObject>
+#include <QDBusInterface>
+#include <QPointF>
+#include <QDate>
+
+class HrDataLoader : public QObject
+{
+ Q_OBJECT
+
+public:
+ explicit HrDataLoader();
+ Q_INVOKABLE QList<QPointF> getDataForDate(QDate date);
+ Q_INVOKABLE QList<QPointF> getTodayData();
+ Q_INVOKABLE void triggerDaemonRecording();
+private:
+ QDBusInterface *m_iface;
+};
+
+#endif // HRDATALOADER_H
diff --git a/qmlplugin/sensorlogdqmlplugin.cpp b/qmlplugin/sensorlogdqmlplugin.cpp
index 2bdf9a6..090679a 100644
--- a/qmlplugin/sensorlogdqmlplugin.cpp
+++ b/qmlplugin/sensorlogdqmlplugin.cpp
@@ -11,6 +11,7 @@
#include "sensorlogdqmlplugin.h"
#include "loggerSettings.h"
#include "stepsDataLoader.h"
+#include "hrDataLoader.h"
#include <QtQml>
LogdPlugin::LogdPlugin(QObject* parent)
@@ -22,5 +23,6 @@ void LogdPlugin::registerTypes(const char* uri)
{
Q_ASSERT(uri == QLatin1String("org.asteroid.sensorlogd"));
qmlRegisterType<StepsDataLoader>(uri, 1, 0, "StepsDataLoader");
+ qmlRegisterType<HrDataLoader>(uri, 1, 0, "HrDataLoader");
qmlRegisterType<LoggerSettings>(uri, 1, 0, "LoggerSettings");
}