• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Как остановить выполнение скрипта

artmasterpro

New member
Доброго дня, вопрос возможно тривиальный, но тем не менее думаю будет многим начинающим интересен.

О! уже пока писал нарисовалось еще 2 уточняющих вопроса

Если мы используем nodeMCU и ESPlorer:
1) как остановить выполнение скрипта. например у меня в init.lua запущен цикл мигания светодиодом. Как же мне тогда его остановить и перезалить файл? Или как не попадать такие неудобные ситуации?
2) должен ли в init.lua содержатся бесконечный цикл?
3) мной были замечены некоторые случаи когда команды выполнялись либо не сразу, либо с инерцией. (работа с таймерами, http сервер, переключение режима точки доступа )
Имеет место быть или мне показалось?

Спасибо!
 

sevic

New member
Есть кто живой?
Если время старта некритично, сделайте так:
1) Всю полезную логику выносите в файл, пусть будет main.lua.
2) В Init.lua пишете сто-то в духе

Код:
print("startup timeout")
tmr.alarm(0,10000,0,function() dofile('main.lua') end)
Таким образом у вас будет 10 сек после загрузки на перезаливку main.lua
Если время загрузки критично (не хочется ждать 10 сек), делайте в начале кода проверку какого-нибудь пина из свободных (кроме тех, что используются для перевода в режим прошивки) и при необходимости перезалить файл подтягивайте резистором этот пин вверх (например) при загрузке
 

TRO

Member
На сколько я помню, выполнение скрипта не мешает ESPlorer(у) его грохнуть или перезаписать. Потом ресет, и выполняется уже новый скрипт.
 
Сверху Снизу