А данная прошивка тоже разделяет пакеты по таймауту... Но это не её специализация, т.к. поток складывается в пакеты TCP и если паузы малые, то попадет в один пакет передачи...
И это вообще глупо - как можно передавать поток, да с разделением по паузам, если замирания в WiFi больше пауз? У ESP, хоть 32, нет таких буферов.
Так потому я так и не делаю, конечно это неправильно.
1) Основная масса прошивок TCP <> UART имеют ограниченное применение, потому что не всегда на уровне RS232/RS485 используются протоколы с кодовым разделением пакетов в потоке (байтстаффинг, текстовые протоколы и т.п.), не всегда используется MODBUS.
2) Из-за причины из пункта 1. происходят проблемы с непредсказуемыми сетевыми задержками, обычно это режим энергосбережения WiFi, но бывает, что на некоторых смартфонах доставка по TCP происходит с задержкой, зачастую данные передаются за несколько вызовов write(sock, ...), а считываются одним куском через read(sock, ...)
3) Это приводит к проблемами на стороне протокола по RS232/RS485
4) Решение с TCP можно использовать в режиме прозрачного моста только, если протокол на уровне RS232/RS485 имеет кодовое выделение пакетов из потока (например, байт-стаффинг)
Решение с WebSockets работает стабильно при любом раскладе, т.к.
обеспечивает доставку на уровне сообщений, а не отдельных байт.
Решение на WebSockets - универсально для любых задач, связанных с прозрачной коммуникацией.
Мне был нужен стабильный мост с надежным асинхронным протоколом, с одной стороны и UART 921600 бод/с & RS485 с отключением DRIVER ENABLE на RS485 за
1.3...1.6 мкс.
Это является нормальным требованием, касаемо RS485 и протокола общения по WiFi.
У меня это получилось сделать.
Вам наверно нужно что-то типа:
Вот вы не понимаете о чем речь идет и отпускаете глупые шутки.
Я вообще ожидал, что с вами
можно обсудить технические нюансы, с которыми ардуинщики не сталкиваются.
Мне вот повезло столкнуться с ни чем не оправданной заниженной пропускной способностью на одном из смартфонов, пробовал разные режимы WiFI b/g/n, их комбинации - не нашел связи с этим, режимы энергосбережения отключил - бесполезно.
На других смартфонах до 60 мбит/с. Одинаково заниженная пропускная способность на ESP8266 и на ESP32 только с конкретной моделью смартфона. Замеры делал на ESP32.
Было бы интересно с этим поделиться с сообществом и найти причину.
В моей задаче - заниженная пропускная способность особой роли не сыграла, но интересно решить.
Может вы с этим сталкивались, что-то подскажете?