From c82c22650cf7d7a8f31146345b9510cc6eabc5f8 Mon Sep 17 00:00:00 2001 From: Jean-François Milants Date: Sun, 10 Jan 2021 22:02:21 +0100 Subject: HR Sensor : do not go to sleep when the HR app is running. --- src/components/heartrate/HeartRateController.cpp | 15 +++++++++++++-- src/components/heartrate/HeartRateController.h | 6 ++++++ 2 files changed, 19 insertions(+), 2 deletions(-) (limited to 'src/components') diff --git a/src/components/heartrate/HeartRateController.cpp b/src/components/heartrate/HeartRateController.cpp index f296027f..53b34e6c 100644 --- a/src/components/heartrate/HeartRateController.cpp +++ b/src/components/heartrate/HeartRateController.cpp @@ -1,23 +1,34 @@ #include "HeartRateController.h" #include +#include using namespace Pinetime::Controllers; +HeartRateController::HeartRateController(Pinetime::System::SystemTask &systemTask) : systemTask{systemTask} { + +} + + void HeartRateController::Update(HeartRateController::States newState, uint8_t heartRate) { this->state = newState; this->heartRate = heartRate; } void HeartRateController::Start() { - if(task != nullptr) + if(task != nullptr) { task->PushMessage(Pinetime::Applications::HeartRateTask::Messages::StartMeasurement); + systemTask.PushMessage(System::SystemTask::Messages::HeartRateRunning); + } } void HeartRateController::Stop() { - if(task != nullptr) + if(task != nullptr) { task->PushMessage(Pinetime::Applications::HeartRateTask::Messages::StopMeasurement); + systemTask.PushMessage(System::SystemTask::Messages::HeartRateStopped); + } } void HeartRateController::SetHeartRateTask(Pinetime::Applications::HeartRateTask *task) { this->task = task; } + diff --git a/src/components/heartrate/HeartRateController.h b/src/components/heartrate/HeartRateController.h index b4d6c972..b401f76a 100644 --- a/src/components/heartrate/HeartRateController.h +++ b/src/components/heartrate/HeartRateController.h @@ -6,11 +6,16 @@ namespace Pinetime { namespace Applications { class HeartRateTask; } + namespace System { + class SystemTask; + } namespace Controllers { class HeartRateController { public: enum class States { NotEnoughData, NoTouch, Running}; + explicit HeartRateController(System::SystemTask& systemTask); + void Start(); void Stop(); void Update(States newState, uint8_t heartRate); @@ -20,6 +25,7 @@ namespace Pinetime { uint8_t HeartRate() const { return heartRate; } private: + System::SystemTask& systemTask; Applications::HeartRateTask* task = nullptr; States state = States::NotEnoughData; uint8_t heartRate = 0; -- cgit v1.2.3-70-g09d2