diff --git a/main.cpp b/main.cpp index 4b7bbda..470138d 100644 --- a/main.cpp +++ b/main.cpp @@ -778,10 +778,14 @@ class Framework { if (heartRateController.State() == Pinetime::Controllers::HeartRateController::States::Stopped) { heartRateController.Start(); } else if (heartRateController.State() == Pinetime::Controllers::HeartRateController::States::NotEnoughData) { - heartRateController.Update(Pinetime::Controllers::HeartRateController::States::Running, 10); + heartRateController.Update(Pinetime::Controllers::HeartRateController::States::Running, std::make_optional(10)); } else { - uint8_t heartrate = heartRateController.HeartRate(); - heartRateController.Update(Pinetime::Controllers::HeartRateController::States::Running, heartrate + 10); + auto heartrate = heartRateController.HeartRate(); + if (heartrate.has_value()) { + heartRateController.Update(Pinetime::Controllers::HeartRateController::States::Running, std::make_optional(heartrate.value() + 10)); + } else { + heartRateController.Update(Pinetime::Controllers::HeartRateController::States::Running, std::make_optional(10)); + } } } else if (key == 'H') { heartRateController.Stop(); diff --git a/sim/components/heartrate/HeartRateController.cpp b/sim/components/heartrate/HeartRateController.cpp index c7d0397..edb059c 100644 --- a/sim/components/heartrate/HeartRateController.cpp +++ b/sim/components/heartrate/HeartRateController.cpp @@ -1,10 +1,11 @@ #include "components/heartrate/HeartRateController.h" #include #include "systemtask/SystemTask.h" +#include using namespace Pinetime::Controllers; -void HeartRateController::Update(HeartRateController::States newState, uint8_t heartRate) { +void HeartRateController::Update(HeartRateController::States newState, std::optional heartRate) { this->state = newState; if (this->heartRate != heartRate) { this->heartRate = heartRate; diff --git a/sim/components/heartrate/HeartRateController.h b/sim/components/heartrate/HeartRateController.h index 89feefc..4736a26 100644 --- a/sim/components/heartrate/HeartRateController.h +++ b/sim/components/heartrate/HeartRateController.h @@ -1,6 +1,7 @@ #pragma once #include +#include //#include namespace Pinetime { @@ -18,13 +19,13 @@ namespace Pinetime { HeartRateController() = default; void Start(); void Stop(); - void Update(States newState, uint8_t heartRate); + void Update(States newState, std::optional heartRate); void SetHeartRateTask(Applications::HeartRateTask* task); States State() const { return state; } - uint8_t HeartRate() const { + std::optional HeartRate() const { return heartRate; } @@ -33,7 +34,7 @@ namespace Pinetime { private: Applications::HeartRateTask* task = nullptr; States state = States::Stopped; - uint8_t heartRate = 0; + std::optional heartRate = std::nullopt; //Pinetime::Controllers::HeartRateService* service = nullptr; }; }