Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 11 additions & 4 deletions src/heartratetask/HeartRateTask.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include "heartratetask/HeartRateTask.h"
#include <drivers/Hrs3300.h>
#include <components/heartrate/HeartRateController.h>
#include <components/battery/BatteryController.h>
#include <limits>

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

HeartRateTask::HeartRateTask(Drivers::Hrs3300& heartRateSensor,
Controllers::HeartRateController& controller,
Controllers::Battery& battery,
Controllers::Settings& settings)
: heartRateSensor {heartRateSensor}, controller {controller}, settings {settings} {
: heartRateSensor {heartRateSensor}, controller {controller}, battery {battery}, settings {settings} {
}

void HeartRateTask::Start() {
Expand Down Expand Up @@ -153,10 +155,15 @@ void HeartRateTask::Work() {
break;
}
}
if (newState == States::Waiting && BackgroundMeasurementNeeded()) {
newState = States::BackgroundMeasuring;
} else if (newState == States::BackgroundMeasuring && !BackgroundMeasurementNeeded()) {

if (newState != States::Disabled && battery.IsPowerPresent()) {
newState = States::Waiting;
} else {
if (newState == States::Waiting && BackgroundMeasurementNeeded()) {
newState = States::BackgroundMeasuring;
} else if (newState == States::BackgroundMeasuring && !BackgroundMeasurementNeeded()) {
newState = States::Waiting;
}
}

// Apply state transition (switch sensor on/off)
Expand Down
3 changes: 3 additions & 0 deletions src/heartratetask/HeartRateTask.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ namespace Pinetime {

namespace Controllers {
class HeartRateController;
class Battery;
}

namespace Applications {
Expand All @@ -23,6 +24,7 @@ namespace Pinetime {

explicit HeartRateTask(Drivers::Hrs3300& heartRateSensor,
Controllers::HeartRateController& controller,
Controllers::Battery& battery,
Controllers::Settings& settings);
void Start();
void Work();
Expand All @@ -47,6 +49,7 @@ namespace Pinetime {
uint16_t count;
Drivers::Hrs3300& heartRateSensor;
Controllers::HeartRateController& controller;
Controllers::Battery& battery;
Controllers::Settings& settings;
Controllers::Ppg ppg;
TickType_t lastMeasurementTime;
Expand Down
2 changes: 1 addition & 1 deletion src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ Pinetime::Controllers::Settings settingsController {fs};
Pinetime::Controllers::MotorController motorController {};

Pinetime::Controllers::HeartRateController heartRateController;
Pinetime::Applications::HeartRateTask heartRateApp(heartRateSensor, heartRateController, settingsController);
Pinetime::Applications::HeartRateTask heartRateApp(heartRateSensor, heartRateController, batteryController, settingsController);

Pinetime::Controllers::DateTime dateTimeController {settingsController};
Pinetime::Drivers::Watchdog watchdog;
Expand Down