В предыдущем моём посте расписан по просьбе
Tomahawk, сделаный тест.Это самый простой тест,который делается пользователем с конвертером rs232 -TCP. Т.е с одной стороне к последовательному порту подключается терминал, а с другой стороны через IP сеть терминальная оболочка. На терминале нажимаются клавиши и смотрятся что-бы буковки появлялись на терминальной оболочке. На терминальной оболочке нажимаются клавиши и смотряться как они появляются на терминале.Далее рвётся IP канал между терминалом и терминальной оболочкой и пытаемся востановить соединениеи снова начать обмениваться буковками. Этот тест проходят большинство конвертеров RS232 в TCP.
Не заметил. Вопрос уже был задан: отключите питание у модуля на ходу - через сколько времени ваша putty сообразит об обрыве связи?
И по идее должен пройти и EPS8266. Но он почему то произвольно разрывает соединение, а также в какойто момент прекращается передача буковок.
Что должно пройти? Попробуйте соединить разные программы терминалов и потестировать
В данном тесте скорость передачи(нажатия буковок) 10 байт/c сомневаюсть что такую скорость сложно выдать через ком порт на скорости 4800 , а так же через wifi 802.11n.
я не програмист,но наверное можно остаток отправить вместо UART в подобиее NULL
Дык вы спрашивали куда деваются буковки при пересоединении. Удаляются из буфера.
В тестах я не использую собственных программ, кроме того я пытаюсь использовать наиболее популярные программы.Я не придумываю ничего нового, я просто переношу идеи реализованные в конвертерах RS232-ethernet в ваш конвертер.Мне непонятно почему при обмене со скоростью 10 буковок в сеукунду ещё нужны RTS/CTS. Какие буфера могут переполниться?
А как вы определяете наличие соединения и куда уходят данные буковки если его нет?
Т.е. смысл TCP теряется.
Если я даже увеличу скорость UART до 3M, это не изменит ситуацию т.к. нажимать кнопки на клавиатуре чаще 10 раз в секунду я не смогу и прерывания у ва будут с такойже частотой как и на скорости 4800.
нет не будут. За время передачи символа на 4800 может произойти несколько переключений соединения
PS скажите какая по вашему терминальная программа хорошая и я на ней буду проводить тестирование. И даже по вашей любой методике.
У меня нет методики, но известно как работает TCP. С этого и берется алгоритм.
Начните с установки соединения. Какая программа из разных, даже при одинаковом времени старта последняя получит соединение зависит от сети и её расторопности (алгоритмов работы и запрашиваемых ресурсов у контролеров) + случайное число (распределение процессов).
Если кто-то написал кривой неоднозначный алгоритм, но который нравится вам по каким-то критериям, то почему я должен повторять его?
Ещё, к примеру, в SDK есть опция сбрасывать TIME_WAIT, что недопустимо для стандарта TCP, но вставлено т.к. китайцам так было проще решить вопрос переполнения малой памяти ESP8266. Я должен учитывать такие глюки, если пользователь установит этот флаг? (он есть в системных переменных на веб). Ну и т.д., типа кривой реализации малого потребления WiFi у китайцев за счет насилования LwIP (увеличения периода таймера опроса соединений в LwIP со стандартных 25 ms на 3000 ms. От этого завсият и счетчики тай-аутов соединения...)
Так что всё в руках пользователя - ему дана возможность извращения как понравится.
PS: Алгоритмы TCP стека Микрософт не позволяют передать более 5-ти пачек по пару байт за 1 сек. По тому их експлорер имеет собственный стек TCP, а другие вечно нарываются на данное ограничение
По этой и другой причине большинство вопросов адресуйте туда, а не ко мне. Когда найдете решение и перевернете мир, то я с удовольствием вставлю поправки, тем более исходники данной свалки вам даны.