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