aZholtikov / ZHNetwork

ESP-NOW based Mesh network for ESP8266/ESP32.
MIT License
40 stars 9 forks source link

200 bytes limit #5

Closed vermut closed 12 months ago

vermut commented 12 months ago

Добрый вечер! Почта не работает, поэтому дублирую тут.

Я (зачем-то) адаптирую ваш код под esphome/homeassistant, чтобы он мог общаться с мешем устройств. Я вам ещё ПР делал про queue.

Скажите, лимит в 200 чем-то обусловлен, кроме желания стандартизировать пакет? это в принципе возможно заменить на что-то динамическое или это уже ограничения espnow?

Павел

aZholtikov commented 12 months ago

У ESP-NOW ограничение пакета - 250 байт. Но 250 лучше не передавать - иногда за данные принимается "шум". Так что идеально от 249 и ниже (и проверять на принятый размер). Чем меньше - тем лучше.

Структура полного пакета в библиотеке - 235 байт. 200 полезная нагрузка. Число выбиралось под мои запросы (планировалось передавать малюсенькие json).

P.S. Стандарт ESP-NOW подразумевает использование динамического размера. Когда я писал эту библиотеку, я только начинал изучать ESP и C++ и не умел пользоваться управлением памятью, указателями и тд... По прошествии некоторого времени это прошло... P.P.S. В свободное от "безделья" время не спеша перевожу свои проекты на чистый C. Месяца через 3-4 и ZHNetwork обновится (в виде компонента для ESP-IDF и RTOS SDK). Не блокирующая, без переполнения очередей, поддерживающая логирование на внешний сервер и обновление прошивки через ESP-NOW, маленькая, но намного более стабильная и быстрая.