• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Esp8266 at команды на русском

pvvx

Активный участник сообщества
Зачем это всё, если текущие версии всех прошивок имеют десятки глобальных ошибок?

Побаловаться?

Ни на одной не организовать простейший 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 и т.д....
 

Victor

Administrator
Команда форума
Ну, баловаться тоже интересно )
А если серьезно, то с вами согласен в той части, что глюков много. Готовых, стабильно работающих устройств, сейчас пока не сделать. Уйдут годы на исправление? Вряд ли. Да и надо ли развивать решение на AT командах? Возможно, что стандартом де-факто станет прошивка или nodemcu со встроенным интерпретатором lua, или франкенштейн от нашего соотечественника, или вообще какая-то другая, о которой мы пока не слышали. Обе прошивки развиваются прямо на глазах. Коммиты почти ежедневные. Так что может всего пара месяцев понадобится до выхода реально работающих решений. Так что я полон оптимизма!
 

pvvx

Активный участник сообщества
Я вижу единственное позиционирование данного модуля как самостоятельного устройства с опросом датчиков или канала RS-232 TTL для других устройств.

В итоге управлять соединением модуля с сетью устройство не должно. Это задача самого модуля.

Для этого на модуле должен присутствовать полный интерфейс пользователя организованный на WEB сервисе и доступный с любого браузера. Должны задаваться адреса контакта – рабочий порт, в случае моста RS-232 или другие настройки и управление, в случае IoT.

Систему предоставления модулем моста RS-232 я и делаю. WEBстраницы организованы на подобии MPSF2 файловой системы от TCP-IP стека Микрочипа. Общий объем диска с файлами выходит за 200кБ частично сжатых данных (gzip). Имеется поддержка вывода и графиков пользователю – на swf или java, а данные модуль дает в xml. Основное ПО в модуль уже почти закончил и тестирую – устраняю последние глюки, связанные с кривостью драйверов. Нет ещё дизайна HTML страниц настройки модуля... Пришлось пользоваться дизассемблированными данными по драйверам модуля – исходников их нет. Без этого, как и писал, ничего дельного у народу с имеющимся SDK не выйдет. А такое, что у меня счас, выкладывать в общаг пока некорректно и не готов – это чистые хаки и не причесано... Требуется DDK.

Да, по поводу lua– это баловство, т.к. есть SDKи продвинутый пользователь может вписать что ему вздумается в ПО самого модуля.
 
Последнее редактирование:

Victor

Administrator
Команда форума
Очень интересный проект. Ждем от вас более подробной информации, как только вы сочтете возможным поделится ей с нами.
 

pvvx

Активный участник сообщества
От темы топика отклонились совсем – AT команды нужны только для конфигурации соединения модуля в составе устройства, а создаваемый проект устраняет и замещает это дело полностью. Один я это долго буду делать до "кошерного" релиза :) Слишком много вариантов интерфейсов и их решений. Не известно, что приживется в народе. По тому и пишу – необходимо консолидироваться, а это не быстро.
 

Victor

Administrator
Команда форума
Неизвестно, что приживется в народе.
Приживется то, что будет удобно и будет больше продвигаться. Подробная документация, туториалы, примеры и прочее, причем разного уровня: как для профессионалов, так и для любителей.
Ну и, почти в тему нашей дискуссии, в подтверждение моих слов о том, что потребуется немного времени, espressif сегодня выпустила SDK 9.3
 

pvvx

Активный участник сообщества
espressif сегодня выпустила SDK 9.3
Потестил - старые глюки не исправили, новые наделали. Теперь виснет совсем глухо - что-то в tcp_disconnect ... это не совсем точно, но предпосылки есть.

Как сменить выдаваемую мощность передатчика? Надо понизить - на близком расстоянии от станции (ASUS RT-N56) вроде глушит и прием не уверенный. На других - с похуже антеннами, работает. Сильно не копал, но параметра изменения мощности передатчика пока не нашел.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Но ничего не исправили. Для выяснения влезут или нет данные в передачу по espconn_sent(...) приходится делать так (см. вложение).
Иначе, в текущей реализации прошивок и SDK, данные обрежутся или просто “скипнутся” и не передадутся (см. файл в примере IoT espconn_tcp.c: espconn_tcp_sent() строка. 158…)

Да, и патч esp_iot_sdk_v0.9.3_14_11_21_patch1.zip никак не коснулся прошивки AT. Компиляция с новой libpp.a не меняет ни байта в выходных фаÐ