• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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(у) его грохнуть или перезаписать. Потом ресет, и выполняется уже новый скрипт.
 
Сверху Снизу