From 85b85d907d88912314b752e4f75694d145c839d4 Mon Sep 17 00:00:00 2001 From: dodoradio Date: Sat, 22 Jul 2023 14:18:59 +0100 Subject: Add current heartrate to heartrate detail page This copies a bit of code from https://github.com/AsteroidOS/asteroid-hrm/blob/master/src/main.qml --- src/heartrate/HeartrateDetailPage.qml | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/src/heartrate/HeartrateDetailPage.qml b/src/heartrate/HeartrateDetailPage.qml index 611d720..3f4e897 100644 --- a/src/heartrate/HeartrateDetailPage.qml +++ b/src/heartrate/HeartrateDetailPage.qml @@ -1,5 +1,7 @@ /* * Copyright (C) 2023 Arseniy Movshev + * 2021 Timo Könnecke + * 2021 Darrel Griët * 2019 Florent Revest * * This program is free software: you can redistribute it and/or modify @@ -18,12 +20,33 @@ import QtQuick 2.15 import org.asteroid.controls 1.0 +import QtSensors 5.11 import org.asteroid.sensorlogd 1.0 import "../graphs" Item { + id: root + property int currentHr: 0 //we ought to get the last value from hrdataloader - but it currently doesn't do any caching so operation would be a bit slow, and we run the hr sensor when app starts anyway, so we'll ignore that for now + HrmSensor { + active: true + onReadingChanged: { + currentHr = reading.bpm + } + } + + property bool pulseToggle: true + property int pulseWidth: pulseToggle ? root.height*0.2 : root.height*0.26 + Behavior on pulseWidth { NumberAnimation { duration: pulseAnimationDuration; easing.type: Easing.OutInSine } } + + Timer { + id: pulseTimer + interval: 1000 / (currentHr / 30) + running: currentHr + repeat: true + onTriggered: pulseToggle = !pulseToggle + } Flickable { anchors.fill: parent contentHeight: contentColumn.implicitHeight @@ -33,6 +56,32 @@ Item { Item { width: parent.width; height: parent.width*0.2} + // this chunk of code is modified from https://github.com/AsteroidOS/asteroid-hrm/blob/master/src/main.qml + Item { + width: parent.width*0.5 + height: root.height*0.26 + anchors.horizontalCenter: parent.horizontalCenter + Label { + text: currentHr + " bpm" + anchors { + verticalCenter: parent.verticalCenter + left: parent.left + } + } + + Text { + id: heartPicture + anchors { + verticalCenter: parent.verticalCenter + horizontalCenter: parent.right + } + font.pixelSize: pulseWidth + text: "\u2764" + } + } + // end asteroid-hrm code + Item { width: parent.width; height: parent.width*0.2} + HrGraph { id: graph anchors.horizontalCenter: parent.horizontalCenter -- cgit v1.2.3-54-g00ecf