Зачем это всё, если текущие версии всех прошивок имеют десятки глобальных ошибок?
Побаловаться?
Ни на одной не организовать простейший WEBсервер или простой socket tcp/ip. Исправление будет длиться ещё годами. Китайцы же.
Замучился исправлять китайскую писанину – там сплошная бездарная “накидка” AT команд на чужой код. Работать будет, если передавать 10 байт в минуту и каждый раз перезагружать ES8266 с помощью снятия питания. Ножкой сброса выйдет не всегда.
Глобальный пример: отправка в буфер сокета блока в ATинтерфейсе (пусть AT+CIPSTART), да и в IoTдемо не контролируется, а “в нутре” делает так:
if (pcb -> sndbuf < length) { len = pcb -> sndbuf; } else { len = length; };
if (len > (2 * pcb->mss)) { len = 2 * pcb->mss; };
Т.е. обрезается по тому, что влезет, без предупреждения. В прошивке с ATразмер MSS = 1460 или 1448 байта (зависит от флага поддержки тимештампа в стеке ип…). Внутренний буфер “стека TCP” заполняется и держится занятым, пока принимающая сторона не подтвердит принятые блоки (ACK) и при интенсивной отправке и плохом соединении часто полон (там всего весь стек до около 5800 байт). А передается – пакетами, кусками… Движок стека (HTTP) приемной стороны, например GoogleХрома, подтверждает пакеты чрез очень большую задержку (несколько ms), в десятки раз большую, чем Internet Explorer (десятки us). В итоге передача выливается в тусовку по сотне байт и ожиданием ACK от Хрома. Предел скорости передачи выходит до 10 кбайт в сек при уверенном приеме по WiFi. По этой причине о WEB-HTTP - только мечтать, без основательного переписывания всей этой каши. Если исправить и дополнить скорость выходит за сотни кбайт/сек...
Номер “соединения” выдаваемый в AT прошивках при приеме и передаче данных может быть любой (в DemoIoTпроекте так-же). Это, если есть несколько соединений, то данные, запрошенные одним, передаются любому следующему, открывшему соединение в Demo IoT. А в AT прошивке путаются номера <id> — "идентификатор соединения". В текущей версии (9.2.2+) бывает более двух одинаковых номеров (+IPD)… Всего уже не припомню, так как уже переписал как надо мне и забыл (делал нормальный WEBс ajax + json + )….
Если ещё багов поперечислять – спрашивайте. Будет время и возможно вспомню. Но это бессмысленно – от перечисления ошибок рабочей версии у вас не будет, пока не дадут DDK. Плакали все Arduino+ ESP8266 и т.д....