diff options
| author | JF <jf@codingfield.com> | 2021-01-23 16:41:29 (GMT) |
|---|---|---|
| committer | Gitea <gitea@fake.local> | 2021-01-23 16:41:29 (GMT) |
| commit | 76ab14fa5f7979dd764b449396dc5835a286ec6d (patch) | |
| tree | 846b39f9c412854c57fd15cc37e920b7affa28c5 /src/components/heartrate/HeartRateController.h | |
| parent | 1d940af924bac5728a4d494f780e298e5b67b707 (diff) | |
| parent | 84b509ed9536e081f370d2fd7c519c9ed6acfea4 (diff) | |
Merge branch 'develop' of JF/PineTime into master
Diffstat (limited to 'src/components/heartrate/HeartRateController.h')
| -rw-r--r-- | src/components/heartrate/HeartRateController.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/components/heartrate/HeartRateController.h b/src/components/heartrate/HeartRateController.h new file mode 100644 index 0000000..001111b --- /dev/null +++ b/src/components/heartrate/HeartRateController.h @@ -0,0 +1,38 @@ +#pragma once + +#include <cstdint> +#include <components/ble/HeartRateService.h> + +namespace Pinetime { + namespace Applications { + class HeartRateTask; + } + namespace System { + class SystemTask; + } + namespace Controllers { + class HeartRateController { + public: + enum class States { Stopped, NotEnoughData, NoTouch, Running}; + + explicit HeartRateController(System::SystemTask& systemTask); + + void Start(); + void Stop(); + void Update(States newState, uint8_t heartRate); + + void SetHeartRateTask(Applications::HeartRateTask* task); + States State() const { return state; } + uint8_t HeartRate() const { return heartRate; } + + void SetService(Pinetime::Controllers::HeartRateService *service); + + private: + System::SystemTask& systemTask; + Applications::HeartRateTask* task = nullptr; + States state = States::Stopped; + uint8_t heartRate = 0; + Pinetime::Controllers::HeartRateService* service = nullptr; + }; + } +}
\ No newline at end of file |
