Слияние кода завершено, страница обновится автоматически
#if defined(ESP8266) || defined(ESP32)
#include "BlinkerConfig.h"
#include "BlinkerDebug.h"
#include "BlinkerTimer.h"
Ticker cdTicker;
Ticker lpTicker;
Ticker tmTicker;
bool _cdRunState = false;
bool _lpRunState = false;
bool _tmRunState = false;
bool _cdState = false;
bool _lpState = false;
bool _tmState = false;
bool _lpRun1 = true;
bool _tmRun1 = true;
bool _tmDay = false;
bool _cdTrigged = false;
bool _lpTrigged = false;
bool _tmTrigged = false;
bool _isTimingLoop = false;
uint8_t _lpTimes;
uint8_t _lpTrigged_times;
uint32_t _cdTime1;
uint32_t _cdTime2;
uint32_t _cdStart;
uint32_t _cdData;
// bool _cdStop = true;
uint32_t _lpTime1;
uint32_t _lpTime1_start;
uint32_t _lpTime2;
uint32_t _lpTime2_start;
uint32_t _lpData;
bool _lpStop = true;
uint32_t _tmTime1;
uint32_t _tmTime2;
uint32_t _tmTime;
uint8_t _timingDay = 0;
uint8_t taskCount = 0;
uint8_t triggedTask = 0;
void disableTimer() {
_cdRunState = false;
cdTicker.detach();
_lpRunState = false;
lpTicker.detach();
_tmRunState = false;
tmTicker.detach();
}
void _cd_callback()
{
uint32_t cd_during = millis() -_cdStart;
uint32_t cd_remain = _cdTime1 * 60 - cd_during / 1000;
if (_cdTime1 * 60 > BLINKER_ONE_HOUR_TIME) {
if (cd_remain > 0) {
if (cd_remain > BLINKER_ONE_HOUR_TIME) cd_remain = BLINKER_ONE_HOUR_TIME;
cdTicker.once(cd_remain, _cd_callback);
return;
}
}
// _cdState = false;
_cdTrigged = true;
BLINKER_LOG_ALL(BLINKER_F("countdown trigged!"));
}
void _lp_callback()
{
if (_lpRun1) {
uint32_t lp_1_during = millis() -_lpTime1_start;
uint32_t lp_1_remain = _lpTime1 * 60 - lp_1_during / 1000;
if (_lpTime1 * 60 > BLINKER_ONE_HOUR_TIME) {
if (lp_1_remain > 0) {
if (lp_1_remain > BLINKER_ONE_HOUR_TIME) lp_1_remain = BLINKER_ONE_HOUR_TIME;
lpTicker.once(lp_1_remain, _lp_callback);
return;
}
}
}
else {
uint32_t lp_2_during = millis() -_lpTime2_start;
uint32_t lp_2_remain = _lpTime2 * 60 - lp_2_during / 1000;
if (_lpTime2 * 60 > BLINKER_ONE_HOUR_TIME) {
if (lp_2_remain > 0) {
if (lp_2_remain > BLINKER_ONE_HOUR_TIME) lp_2_remain = BLINKER_ONE_HOUR_TIME;
lpTicker.once(lp_2_remain, _lp_callback);
return;
}
}
}
_lpRun1 = !_lpRun1;
if (_lpRun1) {
_lpTrigged_times++;
if (_lpTimes) {
if (_lpTimes == _lpTrigged_times && _lpTimes != 0) {
lpTicker.detach();
_lpStop = true;
}
else {
lpTicker.once(_lpTime1 * 60, _lp_callback);
}
}
else {
lpTicker.once(_lpTime1 * 60, _lp_callback);
}
}
else {
lpTicker.once(_lpTime2 * 60, _lp_callback);
}
_lpTrigged = true;
BLINKER_LOG_ALL(BLINKER_F("loop trigged!"));
}
void timingHandle(uint8_t cbackData)
{
uint8_t task = cbackData;
_tmTrigged = true;
triggedTask = task;
}
#endif
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )