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

ESP 32 WebServer тормозит процессы

Kochevnik

New member
Добрый день.
Есть ESP32, на ней Wifi + WebServer в роли веб морды настроек итд. Все общение после первичной загрузки страницы через JSON запросы, сама страница не перезагружается.

Библиотека FlexyStepper запускается в режиме сервиса и гоняет шаговик.
Аналогичная проблема, которую опишу ниже была и при использовании AccelStepper

Суть в том, что в процессе работы веб-страница посылает запрос на получение JSON данных о процессе - сколько % выполнено.

Код:
ESP_FlexyStepper stepper;

void Stepper_init() {
stepper.connectToPins(15, 23);
stepper.setAccelerationInStepsPerSecondPerSecond(800);
stepper.setDecelerationInStepsPerSecondPerSecond(800);
stepper.startAsService();
}



void HTTP_init(void) {
  HTTP.begin();
  HTTP.on("/settings", handle_settings); // Получение настроек
  HTTP.on("/run", handle_run); // старт/стоп/прогресс

}

void handle_run()
{
  String json ="";
  if (HTTP.arg("RUN").toInt()==1)
    {
       json = "{\"RUN\":\"RUN\"}";
       HTTP.send(200, "text/plain", json);
    }
}

В момент обработки запроса сервером шаговик буквально на долю секунды притормаживает.

Вопрос в том, как понизить приоритет работы веб-сервера или еще лучше повысить приоритет работы сервиса FlexyStepper т.к. это подклинивание мотора в процессе работы не допустимо.
 
Сверху Снизу