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

Нужна помощь Размер получаемых пакетов меньше ожидаемых

думка

New member
Друзья, подскажите, куда смотреть и что копать.
Есть погодный клиент на Wemos D1, который каждый час запрашивает погоду на api.openweathermap.org и затем отображает на OLED-дисплей.
Однако работает нестабильно. Периодически парсер JSON выдает ошибку IncompleteInput, т.е. ответ от сервера получает не полностью.
А там между прочим почти 15кб JSON.
Когда начал разбираться, оказалось, что ответ от сервера приходит пакетами по 520-540 байт, причем интервал между пакетами может составлять до пары минут! При этом, ответ на браузер ПК приходит мгновенно, и там пакеты полной длины, 1460 байт, и никаких минутных интервалов между ними.

Сначала подумал ESP8266HTTPClient глючит, попробовал напрямую с WiFiClient читать - тоже самое.
Причем в WiFiClient.h даже такой параметр есть: #define TCP_MSS 1460 // lwip1.4. Не помогает...
Попробовал библиотеку ESPAsyncTCP - тот же результат.

буду благодарен за идеи и наводки.
 

pvvx

Активный участник сообщества
В TCP есть подтверждение передачи - ACK. Так-же есть размер окна TCP стека.
У ESP размер окна мал - обычно до 4-х TCP_MSS и менее. На компе типичный размер > 64 килобайт.
Комп и все приличные принимают по несколько пакетов TCP и дают подтверждение (ACK) сразу на пачку и сервер может гнать пакеты вперед для увеличения скорости.
Возможно ваш ESP уменьшает окно TCP (параметр window), т.к. тупит на разборке приходящих пакетов (буфера TCP заняты)...
Для Arduino это нормально :)
 

думка

New member
В TCP есть подтверждение передачи - ACK. Так-же есть размер окна TCP стека.
У ESP размер окна мал - обычно до 4-х TCP_MSS и менее. На компе типичный размер > 64 килобайт.
Комп и все приличные принимают по несколько пакетов TCP и дают подтверждение (ACK) сразу на пачку и сервер может гнать пакеты вперед для увеличения скорости.
Возможно ваш ESP уменьшает окно TCP (параметр window), т.к. тупит на разборке приходящих пакетов (буфера TCP заняты)...
Для Arduino это нормально :)

pvvx, спасибо за отклик. Решение нашлось довольно банальное) Обновил платформу до последней версии 2.6.3 (до этого стояла 2.5.0), и все заработало. Размер блоков остался тот же, по 520 байт в среднем, но теперь они полетели кучно один за другим, и парсер не отваливается. Пока на этом успокоюсь, пожалуй)
 

pvvx

Активный участник сообщества
Что-то в последнее время (год уже) на данном форуме все вопросы сводятся к номерам версий Arduino...
 

pvvx

Активный участник сообщества
Моё изучение заката ESP показывает, что на текущей стадии похороны ESP сопровождаются появлением отставших от прогресса любителей DIY с перебором версий библиотек и Arduino. Ещё остается малочисленная группа учащихся собирающих всякую ерунду по заданию учителя с вопросами не сложнее “Как прошить?”. На этом в принципе всё связанное с ESP заканчивается...
 

думка

New member
Моё изучение заката ESP показывает, что на текущей стадии похороны ESP сопровождаются появлением отставших от прогресса любителей DIY с перебором версий библиотек и Arduino. Ещё остается малочисленная группа учащихся собирающих всякую ерунду по заданию учителя с вопросами не сложнее “Как прошить?”. На этом в принципе всё связанное с ESP заканчивается...
Мне показалось, или я уловил у Вас нотки ностальгии?) Все имеет свой жизненный цикл, и ESP8266 был важной вехой в упомянутом "прогрессе", очевидно. А те, кто не стремятся быть на острие "прогресса", а занимаются творчеством для собственного удовольствия, особенно если у них крайне мало свободного времени на это творчество, до сих пор успешно их применяют для своих неказистых поделок, ввиду доступности как самих плат, так и средств разработки, библиотек, реализованных проектов и т.п.
Разумеется, все это не имеет отношения к высокому искусству)

А вот, собственно, и виновник:


И автор, и домочадцы вполне довольны)
 

pvvx

Активный участник сообщества
Мысли не в тему ностальгии. Я просто изучаю “закат” народных тех.тем и как он происходит. С ESP я полностью завязал уже года 2 как (ели не более).
Это стадия “заката” ESP уже последняя, если сравнивать с десятком прошедших с 1980г аналогичных тематик.
На 155ЛА3 и по сей день кто-то что-то собирает или выпендривается...
 

pvvx

Активный участник сообщества
Любая такая тема активно развивается первые 1.5 года (аналогично курсу битков :)). Потом подключается второй эшелон – распространители и продажи готового... В общем спекуляция и вокруг да около. После насыщения или охвата рынка – всё на спад. Большие корпорации тоже не дремлют и заваливают рынок своей альтернативой. Но главный период сохраняется – после возникновения и начальной раскрутки темы у вас есть всего не более 1.2..1.5 года для получения какой-либо прибыли на развивающейся тематике, до входа корпораций...
 
Сверху Снизу