-
Notifications
You must be signed in to change notification settings - Fork 0
/
TimerManager.h
37 lines (33 loc) · 1.31 KB
/
TimerManager.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#pragma once
class TimerManager
{
public:
static bool TimerRunning; // флаг "таймер взведён"
static bool TimerHasFired; // флаг "таймер отработал"
static uint8_t TimerOption; // индекс элемента в списке List Picker'а
static uint64_t TimeToFire; // время, в которое должен сработать таймер (millis)
static void HandleTimer( // функция, обрабатывающая срабатывание таймера, гасит матрицу
bool* ONflag,
bool* settChanged,
uint32_t* eepromTimeout,
void (*changePower)())
{
if (!TimerManager::TimerHasFired &&
TimerManager::TimerRunning &&
millis() >= TimerManager::TimeToFire)
{
#ifdef GENERAL_DEBUG
LOG.print(F("Выключение по таймеру\n\n"));
#endif
TimerManager::TimerRunning = false;
TimerManager::TimerHasFired = true;
FastLED.clear();
delay(2);
FastLED.show();
*ONflag = !(*ONflag);
changePower();
*settChanged = true;
*eepromTimeout = millis();
}
}
};