diff options
author | Jean-François Milants <jf@codingfield.com> | 2021-01-10 17:57:26 +0100 |
---|---|---|
committer | Jean-François Milants <jf@codingfield.com> | 2021-01-10 17:57:26 +0100 |
commit | 1a582815ba218d2a9047abae92b9f33a3301ffd5 (patch) | |
tree | 18aa0aeba146d990a0302f4840e870cad1c4ad6f /src/systemtask/SystemTask.cpp | |
parent | 50ae0ae5e073ac48652e6c26549f9b19655e8da3 (diff) |
First implementation of the HR sensor using 100% foss code (ported from waspos)
Diffstat (limited to 'src/systemtask/SystemTask.cpp')
-rw-r--r-- | src/systemtask/SystemTask.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 9cd2f5e9..1d405621 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -21,6 +21,7 @@ #include "drivers/SpiMaster.h" #include "drivers/SpiNorFlash.h" #include "drivers/TwiMaster.h" +#include "drivers/Hrs3300.h" #include "main.h" using namespace Pinetime::System; @@ -39,12 +40,14 @@ SystemTask::SystemTask(Drivers::SpiMaster &spi, Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Controllers::Battery &batteryController, Controllers::Ble &bleController, Controllers::DateTime &dateTimeController, - Pinetime::Controllers::NotificationManager& notificationManager) : + Pinetime::Controllers::NotificationManager& notificationManager, + Pinetime::Drivers::Hrs3300& heartRateSensor) : spi{spi}, lcd{lcd}, spiNorFlash{spiNorFlash}, twiMaster{twiMaster}, touchPanel{touchPanel}, lvgl{lvgl}, batteryController{batteryController}, bleController{bleController}, dateTimeController{dateTimeController}, watchdog{}, watchdogView{watchdog}, notificationManager{notificationManager}, - nimbleController(*this, bleController,dateTimeController, notificationManager, batteryController, spiNorFlash) { + nimbleController(*this, bleController,dateTimeController, notificationManager, batteryController, spiNorFlash), + heartRateSensor{heartRateSensor}{ systemTasksMsgQueue = xQueueCreate(10, 1); } @@ -77,12 +80,19 @@ void SystemTask::Work() { batteryController.Init(); displayApp.reset(new Pinetime::Applications::DisplayApp(lcd, lvgl, touchPanel, batteryController, bleController, - dateTimeController, watchdogView, *this, notificationManager)); + dateTimeController, watchdogView, *this, notificationManager, heartRateController)); displayApp->Start(); batteryController.Update(); displayApp->PushMessage(Pinetime::Applications::DisplayApp::Messages::UpdateBatteryLevel); + + heartRateSensor.Init(); + heartRateSensor.Disable(); + heartRateApp.reset(new Pinetime::Applications::HeartRateTask(heartRateSensor, heartRateController)); + heartRateApp->Start(); + + nrf_gpio_cfg_sense_input(pinButton, (nrf_gpio_pin_pull_t)GPIO_PIN_CNF_PULL_Pulldown, (nrf_gpio_pin_sense_t)GPIO_PIN_CNF_SENSE_High); nrf_gpio_cfg_output(15); nrf_gpio_pin_set(15); |