сделаю без транспарентного режима (придётся со счётчиками и
буферами повозиться, но будет понадёжнее заюзаю команду AT+CIPSEND
... костыли какие-то , блять всё равно, но как не чертез жопу
сделать - не понимаю :(( алгоритм такой:
- заводим модуль в режим AP+IS (предварительно сбросив все астройки на дефолтные, на случай кривого конфигурирования ранее)
даём серию команд:
AT+CWMODE_CUR=3 ;Текущий режим - точка доступа + инфраструктура
AT+CIPMUX=1 ;Режим мультиконнекта (необходимое условие для старта сервера)
AT+CIPSERVER=1,2000 ; Сервер на 2000 порту
ATE0 ;Отключим эхо, во избежание отправки команд самим себе и зацикливания терминала
AT+CIPDINFO=0 ;Отключаем вывод дополнительной служебной информации с блоком принятых данных,
коннектимся к модулю, как к точке доступа, клиентом на 2000 порт
в терминале клиента отправляем команды и видим отклики
а тем временем контроллер, к оторому подключен модуль, должен парсить входящий UART-поток, отсекая служебный мусор входных данных (+IPD....:) , - двоеточием будет заканчиваться мусорное служебное поле, после которого пойдут данные терминальной команды, они должны быть запомнены в буфере.
Затем по CRLF они должны быть засланы в UIART модуля, и одновременно с этим приёмный UART должен настроиться на приём отклика от модуля, считая принятые байты. Запомненный и принятый вектор пересылается командой AT+CIPSEND=0,NN (где NN - количество подсчитанных байт отклика модуля)
Пипец костыли, конечно :(( но должно работать. У меня примерно так и было, за исключением того, что быйты отклика я не считал, а переключал модуль в транспарентный режтим (но это потенциально нестабильная конфигурация, которая может рвать коннект, что и наблюдалось частенько)
Блять, пусть сдохнут в корчах разработчики ESP за то, что не реализовали нормальный терминал :((