From 04063cf0af29e09946bf3d1fa77ae91235cd8b84 Mon Sep 17 00:00:00 2001 From: Jean-François Milants Date: Sun, 17 Jan 2021 10:39:46 +0100 Subject: HR Sensor : Add start/stop button to the HeartRate app (the HR sensors stays ON when the app is closed), display the HR value on the Clock app. --- src/components/heartrate/HeartRateController.cpp | 4 ++-- src/components/heartrate/HeartRateController.h | 4 ++-- src/components/heartrate/Ppg.cpp | 4 ++++ src/components/heartrate/Ppg.h | 1 + 4 files changed, 9 insertions(+), 4 deletions(-) (limited to 'src/components') diff --git a/src/components/heartrate/HeartRateController.cpp b/src/components/heartrate/HeartRateController.cpp index 53b34e6c..62ce8aef 100644 --- a/src/components/heartrate/HeartRateController.cpp +++ b/src/components/heartrate/HeartRateController.cpp @@ -16,15 +16,15 @@ void HeartRateController::Update(HeartRateController::States newState, uint8_t h void HeartRateController::Start() { if(task != nullptr) { + state = States::NotEnoughData; task->PushMessage(Pinetime::Applications::HeartRateTask::Messages::StartMeasurement); - systemTask.PushMessage(System::SystemTask::Messages::HeartRateRunning); } } void HeartRateController::Stop() { if(task != nullptr) { + state = States::Stopped; task->PushMessage(Pinetime::Applications::HeartRateTask::Messages::StopMeasurement); - systemTask.PushMessage(System::SystemTask::Messages::HeartRateStopped); } } diff --git a/src/components/heartrate/HeartRateController.h b/src/components/heartrate/HeartRateController.h index b401f76a..bbb1b88b 100644 --- a/src/components/heartrate/HeartRateController.h +++ b/src/components/heartrate/HeartRateController.h @@ -12,7 +12,7 @@ namespace Pinetime { namespace Controllers { class HeartRateController { public: - enum class States { NotEnoughData, NoTouch, Running}; + enum class States { Stopped, NotEnoughData, NoTouch, Running}; explicit HeartRateController(System::SystemTask& systemTask); @@ -27,7 +27,7 @@ namespace Pinetime { private: System::SystemTask& systemTask; Applications::HeartRateTask* task = nullptr; - States state = States::NotEnoughData; + States state = States::Stopped; uint8_t heartRate = 0; }; } diff --git a/src/components/heartrate/Ppg.cpp b/src/components/heartrate/Ppg.cpp index c9a11030..27617c15 100644 --- a/src/components/heartrate/Ppg.cpp +++ b/src/components/heartrate/Ppg.cpp @@ -94,3 +94,7 @@ void Ppg::SetOffset(uint16_t offset) { this->offset = offset; dataIndex = 0; } + +void Ppg::Reset() { + dataIndex = 0; +} diff --git a/src/components/heartrate/Ppg.h b/src/components/heartrate/Ppg.h index 846ade08..747ae019 100644 --- a/src/components/heartrate/Ppg.h +++ b/src/components/heartrate/Ppg.h @@ -14,6 +14,7 @@ namespace Pinetime { float HeartRate(); void SetOffset(uint16_t i); + void Reset(); private: std::array data; -- cgit v1.2.3