summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArseniy-Movshev <dodoradio@outlook.com>2023-05-29 16:30:31 +0100
committerArseniy-Movshev <dodoradio@outlook.com>2023-05-29 18:06:51 +0100
commitfd718937e22c22e716a951e2bb58ac1bc624f70e (patch)
tree88b7ebd962c1224dbfb4daacf578084a79fd17cc
parent66e8fe3ba76cf72a71a8fece1532fb9597813e0a (diff)
Add a method for daemon recordings to be triggered from qml
This allows the app to always show an up-to-date value
-rw-r--r--daemon/logger.cpp10
-rw-r--r--daemon/logger.h1
-rw-r--r--qmlplugin/stepsDataLoader.cpp12
-rw-r--r--qmlplugin/stepsDataLoader.h4
4 files changed, 27 insertions, 0 deletions
diff --git a/daemon/logger.cpp b/daemon/logger.cpp
index 984ae33..4488a03 100644
--- a/daemon/logger.cpp
+++ b/daemon/logger.cpp
@@ -78,6 +78,16 @@ void Logger::displayOn(QString displayState) {
}
}
+void Logger::triggerRecording() {
+ if (heartrateSensorEnabled) {
+ m_heartrateSensor->triggerRecording();
+ }
+
+ if (stepCounterEnabled) {
+ m_stepCounter->triggerRecording();
+ }
+}
+
void fileAddRecord(QString sensorPrefix, QString logdata, QDateTime recordTime) { //adds a record to today's log file for the given sensor
qDebug() << fileNameForDate(recordTime.date(), sensorPrefix);
QFile file(fileNameForDate(recordTime.date(), sensorPrefix));
diff --git a/daemon/logger.h b/daemon/logger.h
index 7bfe06b..515adb2 100644
--- a/daemon/logger.h
+++ b/daemon/logger.h
@@ -32,6 +32,7 @@ public:
public slots:
void setup();
void resetup();
+ void triggerRecording();
private slots:
void displayOn(QString displayState);
diff --git a/qmlplugin/stepsDataLoader.cpp b/qmlplugin/stepsDataLoader.cpp
index 0c084ea..199b324 100644
--- a/qmlplugin/stepsDataLoader.cpp
+++ b/qmlplugin/stepsDataLoader.cpp
@@ -14,11 +14,18 @@
#include <QDate>
#include <QSettings>
#include <QStandardPaths>
+#include <QDBusInterface>
#include "stepsDataLoader.h"
StepsDataLoader::StepsDataLoader() : 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";
+ }
}
int StepsDataLoader::getTodayData() {
@@ -45,6 +52,11 @@ int StepsDataLoader::getDataForDate(QDate date) { // This is obvious garbage. Th
return line.split(":")[1].toInt();
}
+void StepsDataLoader::triggerDaemonRecording() {
+ m_iface->call("triggerRecording");
+}
+
+
QString fileNameForDate(QDate date, QString prefix) {
QSettings settings("asteroid","sensorlogd"); //this should be moved out of here at some point TODO
return settings.value("loggerRootPath",QStandardPaths::writableLocation(QStandardPaths::HomeLocation) + "/.asteroid-sensorlogd/").toString() + prefix + "/" + date.toString("yyyy-MM-dd.log");
diff --git a/qmlplugin/stepsDataLoader.h b/qmlplugin/stepsDataLoader.h
index 4937ee9..869b434 100644
--- a/qmlplugin/stepsDataLoader.h
+++ b/qmlplugin/stepsDataLoader.h
@@ -12,6 +12,7 @@
#define STEPSDATALOADER_H
#include <QObject>
+#include <QDBusInterface>
class StepsDataLoader : public QObject
{
@@ -21,6 +22,9 @@ public:
explicit StepsDataLoader();
Q_INVOKABLE int getDataForDate(QDate date);
Q_INVOKABLE int getTodayData();
+ Q_INVOKABLE void triggerDaemonRecording();
+private:
+ QDBusInterface *m_iface;
};
QString fileNameForDate(QDate date, QString prefix);