Heatseeker
New member
Приветствую.
Рискну ещё раз поднять тему о потере пакетов при использовании протокола ESP-NOW.
Постараюсь покороче.
Начал изучать работу этого протокола, он мне подходил для проекта. Энергоэффективность не важна, питание от сети. Почитал форум о потере пакетов при пересылке по протоколу ESP-NOW. Решил проверить, насколько все плохо. В общем, конфигурация следующая.
ESP32 - принимающая сторона, ESP8266 передающая.
Написаны 2 программы для этих контроллеров.
ESP8266 отправляет 10 раз в секунду по 1 пакету с данными 60-70 байт каждый. Проверяет по callback, доставлен или нет пакет. Тайм-аут ожидания ответа 10мс , если превышен тайм-аут, то пакете отсылается повторно.
Принимающая сторона регистрирует пакеты и увеличивает счётчик поступлений, выводя его на oled дисплей.
Результат работы следующий. За 10 мин отослано 6000 пакетов. При этом передатчик ESP8266 определил около сотни недоставок, и повторил, по его мнению, потерянные пакеты. Итого он послал 6105 пакетов для гарантированной доставки 6000 из них
Вроде бы все норм и потерянные пакеты в итоге дошли, но. Взглянем на приемник на ESP32.
Видим, что кол-во полученных пакетов равно не 6000, а 6104 пакета. То есть ESP32 реально принимало пакеты, а есп8266 не получало ответы вовремя (больше 10мсек). Увеличил тайм-аут до 20мсек, количество неподтвержденных пакетов уменьшилось на 20-30%.
Как резюме. Доставка на расстояние десять метров через 1 стену, Иден нормально, а ответы о доставке идут черте-как долго. Более 20 мс - это совсем не дело.
Кто, что думает? Может я какой режим или параметр не учел?
Рискну ещё раз поднять тему о потере пакетов при использовании протокола ESP-NOW.
Постараюсь покороче.
Начал изучать работу этого протокола, он мне подходил для проекта. Энергоэффективность не важна, питание от сети. Почитал форум о потере пакетов при пересылке по протоколу ESP-NOW. Решил проверить, насколько все плохо. В общем, конфигурация следующая.
ESP32 - принимающая сторона, ESP8266 передающая.
Написаны 2 программы для этих контроллеров.
ESP8266 отправляет 10 раз в секунду по 1 пакету с данными 60-70 байт каждый. Проверяет по callback, доставлен или нет пакет. Тайм-аут ожидания ответа 10мс , если превышен тайм-аут, то пакете отсылается повторно.
Принимающая сторона регистрирует пакеты и увеличивает счётчик поступлений, выводя его на oled дисплей.
Результат работы следующий. За 10 мин отослано 6000 пакетов. При этом передатчик ESP8266 определил около сотни недоставок, и повторил, по его мнению, потерянные пакеты. Итого он послал 6105 пакетов для гарантированной доставки 6000 из них
Вроде бы все норм и потерянные пакеты в итоге дошли, но. Взглянем на приемник на ESP32.
Видим, что кол-во полученных пакетов равно не 6000, а 6104 пакета. То есть ESP32 реально принимало пакеты, а есп8266 не получало ответы вовремя (больше 10мсек). Увеличил тайм-аут до 20мсек, количество неподтвержденных пакетов уменьшилось на 20-30%.
Как резюме. Доставка на расстояние десять метров через 1 стену, Иден нормально, а ответы о доставке идут черте-как долго. Более 20 мс - это совсем не дело.
Кто, что думает? Может я какой режим или параметр не учел?