diff options
author | JF002 <JF002@users.noreply.github.com> | 2021-01-20 20:11:56 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-20 20:11:56 +0000 |
commit | a0f2fa8469f3a2c0f5f2f914ad174029da321cc0 (patch) | |
tree | 4ac5f59cd088aea9af51d2d183376de279808e63 /src/components/heartrate/HeartRateController.h | |
parent | 35d4f6d4875b68ff8fdecb436e3bc0a6f91099f3 (diff) | |
parent | 68674cec53e2e2add1c0a0b109e5a0e7d9ed5479 (diff) |
Merge pull request #169 from JF002/heartRateSensor
Heart rate sensor
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 00000000..001111b5 --- /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 |