Merge branch 'develop' into update_touch_driver
This commit is contained in:
@@ -21,6 +21,8 @@ namespace Pinetime {
|
||||
DisableSleeping,
|
||||
OnNewDay,
|
||||
OnChargingEvent,
|
||||
SetOffAlarm,
|
||||
StopRinging,
|
||||
MeasureBatteryTimerExpired,
|
||||
BatteryMeasurementDone,
|
||||
};
|
||||
|
@@ -65,6 +65,7 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi,
|
||||
Controllers::Ble& bleController,
|
||||
Controllers::DateTime& dateTimeController,
|
||||
Controllers::TimerController& timerController,
|
||||
Controllers::AlarmController& alarmController,
|
||||
Drivers::Watchdog& watchdog,
|
||||
Pinetime::Controllers::NotificationManager& notificationManager,
|
||||
Pinetime::Controllers::MotorController& motorController,
|
||||
@@ -87,6 +88,7 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi,
|
||||
bleController {bleController},
|
||||
dateTimeController {dateTimeController},
|
||||
timerController {timerController},
|
||||
alarmController {alarmController},
|
||||
watchdog {watchdog},
|
||||
notificationManager {notificationManager},
|
||||
motorController {motorController},
|
||||
@@ -144,6 +146,7 @@ void SystemTask::Work() {
|
||||
motionSensor.SoftReset();
|
||||
timerController.Register(this);
|
||||
timerController.Init();
|
||||
alarmController.Init(this);
|
||||
|
||||
// Reset the TWI device because the motion sensor chip most probably crashed it...
|
||||
twiMaster.Sleep();
|
||||
@@ -283,6 +286,16 @@ void SystemTask::Work() {
|
||||
motorController.RunForDuration(35);
|
||||
displayApp.PushMessage(Pinetime::Applications::Display::Messages::TimerDone);
|
||||
break;
|
||||
case Messages::SetOffAlarm:
|
||||
if (isSleeping && !isWakingUp) {
|
||||
GoToRunning();
|
||||
}
|
||||
motorController.StartRinging();
|
||||
displayApp.PushMessage(Pinetime::Applications::Display::Messages::AlarmTriggered);
|
||||
break;
|
||||
case Messages::StopRinging:
|
||||
motorController.StopRinging();
|
||||
break;
|
||||
case Messages::BleConnected:
|
||||
ReloadIdleTimer();
|
||||
isBleDiscoveryTimerRunning = true;
|
||||
@@ -368,6 +381,7 @@ void SystemTask::Work() {
|
||||
monitor.Process();
|
||||
uint32_t systick_counter = nrf_rtc_counter_get(portNRF_RTC_REG);
|
||||
dateTimeController.UpdateTime(systick_counter);
|
||||
NoInit_BackUpTime = dateTimeController.CurrentDateTime();
|
||||
if (!nrf_gpio_pin_read(PinMap::Button))
|
||||
watchdog.Kick();
|
||||
}
|
||||
|
@@ -17,6 +17,7 @@
|
||||
#include "components/ble/NotificationManager.h"
|
||||
#include "components/motor/MotorController.h"
|
||||
#include "components/timer/TimerController.h"
|
||||
#include "components/alarm/AlarmController.h"
|
||||
#include "components/fs/FS.h"
|
||||
#include "touchhandler/TouchHandler.h"
|
||||
|
||||
@@ -32,6 +33,7 @@
|
||||
#include "drivers/Watchdog.h"
|
||||
#include "Messages.h"
|
||||
|
||||
extern std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> NoInit_BackUpTime;
|
||||
namespace Pinetime {
|
||||
namespace Drivers {
|
||||
class Cst816S;
|
||||
@@ -57,6 +59,7 @@ namespace Pinetime {
|
||||
Controllers::Ble& bleController,
|
||||
Controllers::DateTime& dateTimeController,
|
||||
Controllers::TimerController& timerController,
|
||||
Controllers::AlarmController& alarmController,
|
||||
Drivers::Watchdog& watchdog,
|
||||
Pinetime::Controllers::NotificationManager& notificationManager,
|
||||
Pinetime::Controllers::MotorController& motorController,
|
||||
@@ -101,6 +104,7 @@ namespace Pinetime {
|
||||
Pinetime::Controllers::Ble& bleController;
|
||||
Pinetime::Controllers::DateTime& dateTimeController;
|
||||
Pinetime::Controllers::TimerController& timerController;
|
||||
Pinetime::Controllers::AlarmController& alarmController;
|
||||
QueueHandle_t systemTasksMsgQueue;
|
||||
std::atomic<bool> isSleeping {false};
|
||||
std::atomic<bool> isGoingToSleep {false};
|
||||
|
Reference in New Issue
Block a user