• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Ограниченное число server.on

Legion12

New member
Всем привет.
Проблема следующего плана:
Используем ESP8266-01, с 1мб памяти на борту, arduino IDE определяет.

Число вот таких команд server.on:
Код:
 server.on("/WF", handle_ConfigurationWF);
в конечном варианте должно составлять около 450 штук, оптимизировать это нельзя.

Пока команд меньше 300 - все работает, начинаем добавлять больше - работать отказывается, уходит в бесконечную перезагрузку:

ets Jan 8 2013,rst cause:2, boot mode: (3,2)
14:58:31.684 ->
14:58:31.684 -> load 0x4010f000, len 3664, room 16
14:58:31.738 -> tail 0
14:58:31.738 -> chksum 0xee
14:58:31.738 -> csum 0xee
14:58:31.738 -> v39c79d9b
Иногда бывает boot mode: (3,0), иногда boot mode: (3,6).

Пробовали уменьшить память под файловую систему до 64кб - не помогло. Общий размер программы 535кб с учетом 2 вебстраниц по 45 кб каждая. Если их убрать - ситуация не изменится.

Пробовали сменить память на 8мб (64мбит) - безрезультатно, arduino IDE даже автоматически не определяет размер, ставит дефолтно 4мб. Прошивает без проблем, но работать не хочет. А чуть только команд server.on меньше 300 - все в порядке и работает без сбоев сутками.

Кто-нибудь с таким сталкивался? Существует ли способ увеличить число обращений server.on или загнать это в цикл?
 

enjoynering

Well-known member
вы конечно писали, но все же спрошу. вы знаете, что не обязательно каждый файл сервера прописывать в server.on? их можно и нужно заворачивать в server.onNotFound
 

enjoynering

Well-known member
Имхо, в server.on прописываются только главные страницы (index.html, wifi_settings.html и тд), и файлы которые ФОРМИРУЮТСЯ НА ЛЕТУ (например json файлы). Все остальные файлы заворачиваются через server.onNotFound. и инете куча примеров. Удачи.
 

Legion12

New member
Имхо, в server.on прописываются только главные страницы (index.html, wifi_settings.html и тд), и файлы которые ФОРМИРУЮТСЯ НА ЛЕТУ (например json файлы). Все остальные файлы заворачиваются через server.onNotFound. и инете куча примеров. Удачи.
Мда, вот что значит "посмотрите на проблему СОВСЕМ иначе". Решила через server.arg, по тому же принципу, что и сохранение переменных из веб-интерфейса.

В веб:
Код:
url = 'flow1?n='in_1.value;
xhr.open('GET',url,true);
И на сервере:
Код:
server.on("/flow1", []() { AddFlow1(server.arg("n").toInt());});
И количество server.on снизилось в 10 раз и проблему решили... кажется.
 
Сверху Снизу