Новости по проблеме: после отключения WiFi AMPDU TX и RX через menuconfig пропускная способность несколько возросла и стала более равномерной в тесте IPerf:
Фризы заметны на определенном смартфоне, но стало лучше.
0- 3 sec 3.72 Mbits/sec
3- 6 sec 0.22 Mbits/sec
6- 9 sec 3.08 Mbits/sec
9- 12...
Удалось получить стабильную передачу данных UART 921600 -> TCP через разделение по разным таскам чтение из порта и запись в сокет, через StreamBuffer.
Порог при котором аппаратный FIFO UART'a сбрасывается в FIFO в RAM (размер 8192 байта, не принципиально) уменьшил с 120 байт до 30 байт.
Это...
Похоже пора с ESP32 тоже переходить на что-то другое, есть там нерешенные проблемы: https://github.com/espressif/esp-idf/issues/7315
Вот именно здесь тайминг и не подошел. Все равно на 921600 позднее, чем нужно отключался DEN.
Эти ребята из Espressif новые сюрпризы преподносят:
// Workaround for RS485: If the RS485 half duplex mode is active
// and transmitter is in idle state then reset received buffer and reset RTS pin
// skip this behavior for other UART modes...
Хм, с вебсокетами не теряются пакеты даже по 64 кб. Странно это. Видимо за счет передачи чанками по 1024 байт - это работает нормально в условиях ESP32.
Есть WSS.
Like HTTPS, WSS (WebSockets over SSL/TLS) is encrypted, thus protecting against man-in-the-middle attacks. A variety of attacks...
Почти все готовые прошивки не умеют:
1) Правильно управлять сигналом RS485 DEN, обычно затянутое отключение драйвера приводит к потери байт на стандартном ряде битрейтов. (устройство НЕ должно отвечать позже, чем через длительность двух битов, это мост должен правильно управлять сигналом...
Так потому я так и не делаю, конечно это неправильно.
1) Основная масса прошивок TCP <> UART имеют ограниченное применение, потому что не всегда на уровне RS232/RS485 используются протоколы с кодовым разделением пакетов в потоке (байтстаффинг, текстовые протоколы и т.п.), не всегда используется...
Нет, ноутбук здесь вообще непричем.
Я говорю об устройстве, которое подключается со стороны RS232/485 интерфейса.
Это может быть произвольное устройство.
Вот мне повезло найти такое, которое разделяет пакеты по таймауту, а не по символам начала и конца пакета.
Получилось так, что из готовых...
Недостаток вообще всех прошивок мостов TCP <> UART в том, что они не поддерживают обмен на уровне сообщений, а не байт.
Например, тот же протокол WebSockets.
Бывают устройства на RS232/RS485, в протоколах которых не используется кодовое разделение пакетов в потоке, вместо этого - таймауты.
С...
То, что пропуснкая способность несколько меньше на этом смартфоне заметно даже без IPerf, но не мешает.
С этим смартфоном чаще происходит ситуация, когда происходит аггрегация отправленных со смартфона данных, за один вызов read считываются.
Задержки бывают случайные, около 500 мс.