Я использую модуль cron
NodeMCU для планирования некоторых вещей. Однако я также хочу, чтобы дополнительная функция могла планировать на основе лет, а также запускать обратный вызов только тогда, когда текущее время находится между желаемым диапазоном дат.
Чтобы вышеизложенное работало, мне нужно сохранить значения диапазона дат внутри обратного вызова, чтобы выполнить проверки, однако Lua, похоже, не сохраняет переменные области действия функции между вызовами.
Вот пример кода, который я загрузил в ESP-12F с помощью ESPlorer:
> outervar = 1
> cron.schedule("* * * * *", function(e)
local innervar = outervar
if innervar == 1 then
print("Every minute")
end
end)
> Every minute
> Every minute
> outervar=0
>
Я позволил Every minute
печатать 2 раза (т.е. расписание работало для 2 вызовов), но как только я сделал outervar=0
, он остановился, что означает, что outervar
распространился на innervar
.
Мне нужно сохранить значения innervar
при вызовах обратного вызова. Любая помощь приветствуется. Короче говоря, мне нужна функциональность, аналогичная локальным (область действия) статическим переменным в C.
Спасибо