Skip to content

Commit 0e67cff

Browse files
committed
Disable heart rate tracking while power is connected (charging)
1 parent 7128fc0 commit 0e67cff

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

src/heartratetask/HeartRateTask.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "heartratetask/HeartRateTask.h"
22
#include <drivers/Hrs3300.h>
33
#include <components/heartrate/HeartRateController.h>
4+
#include <components/battery/BatteryController.h>
45
#include <limits>
56

67
using namespace Pinetime::Applications;
@@ -90,8 +91,9 @@ TickType_t HeartRateTask::CurrentTaskDelay() {
9091

9192
HeartRateTask::HeartRateTask(Drivers::Hrs3300& heartRateSensor,
9293
Controllers::HeartRateController& controller,
94+
Controllers::Battery& battery,
9395
Controllers::Settings& settings)
94-
: heartRateSensor {heartRateSensor}, controller {controller}, settings {settings} {
96+
: heartRateSensor {heartRateSensor}, controller {controller}, battery {battery}, settings {settings} {
9597
}
9698

9799
void HeartRateTask::Start() {
@@ -153,10 +155,15 @@ void HeartRateTask::Work() {
153155
break;
154156
}
155157
}
156-
if (newState == States::Waiting && BackgroundMeasurementNeeded()) {
157-
newState = States::BackgroundMeasuring;
158-
} else if (newState == States::BackgroundMeasuring && !BackgroundMeasurementNeeded()) {
158+
159+
if (newState != States::Disabled && battery.IsPowerPresent()) {
159160
newState = States::Waiting;
161+
} else {
162+
if (newState == States::Waiting && BackgroundMeasurementNeeded()) {
163+
newState = States::BackgroundMeasuring;
164+
} else if (newState == States::BackgroundMeasuring && !BackgroundMeasurementNeeded()) {
165+
newState = States::Waiting;
166+
}
160167
}
161168

162169
// Apply state transition (switch sensor on/off)

src/heartratetask/HeartRateTask.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ namespace Pinetime {
1414

1515
namespace Controllers {
1616
class HeartRateController;
17+
class Battery;
1718
}
1819

1920
namespace Applications {
@@ -23,6 +24,7 @@ namespace Pinetime {
2324

2425
explicit HeartRateTask(Drivers::Hrs3300& heartRateSensor,
2526
Controllers::HeartRateController& controller,
27+
Controllers::Battery& battery,
2628
Controllers::Settings& settings);
2729
void Start();
2830
void Work();
@@ -47,6 +49,7 @@ namespace Pinetime {
4749
uint16_t count;
4850
Drivers::Hrs3300& heartRateSensor;
4951
Controllers::HeartRateController& controller;
52+
Controllers::Battery& battery;
5053
Controllers::Settings& settings;
5154
Controllers::Ppg ppg;
5255
TickType_t lastMeasurementTime;

src/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ Pinetime::Controllers::Settings settingsController {fs};
9999
Pinetime::Controllers::MotorController motorController {};
100100

101101
Pinetime::Controllers::HeartRateController heartRateController;
102-
Pinetime::Applications::HeartRateTask heartRateApp(heartRateSensor, heartRateController, settingsController);
102+
Pinetime::Applications::HeartRateTask heartRateApp(heartRateSensor, heartRateController, batteryController, settingsController);
103103

104104
Pinetime::Controllers::DateTime dateTimeController {settingsController};
105105
Pinetime::Drivers::Watchdog watchdog;

0 commit comments

Comments
 (0)