From 1a582815ba218d2a9047abae92b9f33a3301ffd5 Mon Sep 17 00:00:00 2001 From: Jean-François Milants Date: Sun, 10 Jan 2021 17:57:26 +0100 Subject: First implementation of the HR sensor using 100% foss code (ported from waspos) --- src/heartratetask/HeartRateTask.h | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/heartratetask/HeartRateTask.h (limited to 'src/heartratetask/HeartRateTask.h') diff --git a/src/heartratetask/HeartRateTask.h b/src/heartratetask/HeartRateTask.h new file mode 100644 index 00000000..f142af1a --- /dev/null +++ b/src/heartratetask/HeartRateTask.h @@ -0,0 +1,43 @@ +#pragma once +#include +#include +#include +#include + + +namespace Pinetime { + namespace Drivers { + class Hrs3300; + } + namespace Controllers{ + class HeartRateController; + } + namespace Applications { + class HeartRateTask { + public: + enum class Messages : uint8_t {GoToSleep, WakeUp, StartMeasurement, StopMeasurement }; + enum class States {Idle, Running}; + + explicit HeartRateTask(Drivers::Hrs3300& heartRateSensor, Controllers::HeartRateController& controller); + void Start(); + void Work(); + void PushMessage(Messages msg); + + private: + static void Process(void* instance); + void StartMeasurement(); + void StopMeasurement(); + + TaskHandle_t taskHandle; + QueueHandle_t messageQueue; + States state = States::Running; + Drivers::Hrs3300 &heartRateSensor; + Controllers::HeartRateController& controller; + Controllers::Ppg ppg; + bool measurementStarted = false; + + }; + + } +} + -- cgit v1.2.3-70-g09d2