Разработка ‘библиотеки’ малого webсервера на esp8266.

FGX

Member
Может глупый вопрос, но что такое простое RS обновление?
Кстати, а вы попробуйте в тупую через TCP2UART попробовать прошить ардуину, ну кнопку сброса придется вручную нажать, а остальное должно работать, по крайней мере в локальной сети с хорошей отзывчивостью, ведь ей кроме как ком порта ничего не нужно, только уровни сигналов нужно согласовать 3.3 и 5В. Никто разве на форуме не проверял?
 

pvvx

Активный участник сообщества
Кстати, а вы попробуйте в тупую через TCP2UART попробовать прошить ардуину, ну кнопку сброса придется вручную нажать, а остальное должно работать, по крайней мере в локальной сети с хорошей отзывчивостью, ведь ей кроме как ком порта ничего не нужно, только уровни сигналов нужно согласовать 3.3 и 5В. Никто разве на форуме не проверял?
Я уже писал - у меня все старые проекты, соединяющиеся через RS-232 TTL работают и не используют все возможности TCP2UART. ModBus RTU работать корректно не будет. Только на очень низкой скорости, сопоставимой с задержками коммуникации сети и набора пакетов. ModBus без специальной оправки в виде ModBus TCP драйвера не пашет ни на каких "удлинителях COM потов" через инет. Это как пример для понимания различий потокового устройства и пакетного. TCP2UART - потоковое. ModBus - пакетное (разделение на пакеты по временным параметрам передачи).
В потоковом устройстве возникают нарушения разбивки на пакеты в виде неопределенных пауз и потери информации к какому куску (пакету/байту) привязаны ответные байты в противоположном потоке (у нас 2 потока совершенно не связанных - канал приема и передачи). По этой причине все время-зависимые пакетные протоколы не пройдут :) К ним относятся и вечная просьба включить отправку/прием каких-то кусков UART-HTTP + совершенно не думая, что UART одно-пользовательский, а HTTP - много... :)
 
Последнее редактирование:

1801BM1

New member
Файл app\web\wifi.c, фукнция Read_WiFi_config(), вероятно опечатка:
if (opmode & STATION_MODE) - и обрабатывается блок конфигурации для softap
if (opmode & SOFTAP_MODE) - и обрабатывается блок конфигурации для station

А не наоборот должно быть?
 

pvvx

Активный участник сообщества
Файл app\web\wifi.c, фукнция Read_WiFi_config(), вероятно опечатка:
if (opmode & STATION_MODE) - и обрабатывается блок конфигурации для softap
if (opmode & SOFTAP_MODE) - и обрабатывается блок конфигурации для station

А не наоборот должно быть?
Скорее всего ошибка. Счас проверю и поправлю.
Исправил https://github.com/pvvx/esp8266web/blob/master/app/web/wifi.c#L126
 
Последнее редактирование:

1801BM1

New member
Насчет Web-контента - под Opera 12.x не работают таблички WiFi Scan и GPIO, заголовок таблиц отображается, содержимое - нет. Под Chrome и IE - все ОК. Вопрос непринципиальный, просто примечание.
 

alexhi

Member
Скачал с гитхаб esp8266web-master , распаковал в каталог c:\Espressif\examples\esp8266web-master\ пробую компилить вылезают ошибки :
в чем может быть дело.Спасибо.

Код:
In file included from ../include/lwip/opt.h:48:0,
                 from ../include/lwip/ip_addr.h:35,
                 from ../../include/user_interface.h:11,
                 from app_main.c:10:
../include/add_sdk_func.h:7:25: fatal error: mem_manager.h: No such file or directory
#include "mem_manager.h"
                         ^
compilation terminated.
DEPEND: c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -M -O2 -Wall -Wno-pointer-sign -mno-target-align -fno-tree-ccp -mno-serialize-volatile -foptimize-register-move -Wall -Wno-pointer-sign -mtarget-align -fno-tree-ccp -mno-serialize-volatile -foptimize-register-move -Wundef -Wpointer-arith -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -D__ets__ -DICACHE_FLASH -DPBUF_RSV_FOR_WLAN -DLWIP_OPEN_SRC -DEBUF_LWIP -DUSE_OPEN_LWIP -I include -I ./include -I ../include -I ./ -I ../../include -I ../../include/eagle spi_flash.c
In file included from ../include/lwip/opt.h:48:0,
                 from ../include/lwip/ip_addr.h:35,
                 from ../../include/user_interface.h:11,
                 from spi_flash.c:10:
../include/add_sdk_func.h:7:25: fatal error: mem_manager.h: No such file or directory
#include "mem_manager.h"
                         ^
compilation terminated.
DEPEND: c:/Espressif/xtensa-lx106-elf/bin/xtensa-lx106-elf-gcc -M -O2 -Wall -Wno-pointer-sign -mno-target-align -fno-tree-ccp -mno-serialize-volatile -foptimize-register-move -Wall -Wno-pointer-sign -mtarget-align -fno-tree-ccp -mno-serialize-volatile -foptimize-register-move -Wundef -Wpointer-arith -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -D__ets__ -DICACHE_FLASH -DPBUF_RSV_FOR_WLAN -DLWIP_OPEN_SRC -DEBUF_LWIP -DUSE_OPEN_LWIP -I include -I ./include -I ../include -I ./ -I ../../include -I ../../include/eagle eagle_lwip_if.c
In file included from ../include/lwip/opt.h:48:0,
                 from ../include/lwip/ip_addr.h:35,
                 from ../../include/user_interface.h:11,
                 from eagle_lwip_if.c:13:
../include/add_sdk_func.h:7:25: fatal error: mem_manager.h: No such file or directory
#include "mem_manager.h"
                         ^
compilation terminated.
 

pvvx

Активный участник сообщества
Сделал всё как alexhi в предыдущем сообщении, но выдал вот такие ошибки:

mingw32-make.exe: *** [.subdirs] Error 2 Web_Base C/C++ Problem
mingw32-make[1]: *** [.output/eagle/bin/eagle.app.v6.bin] Error 2 Web_Base C/C++ Problem
recipe for target '.output/eagle/bin/eagle.app.v6.bin' failed Web_Base line 126 C/C++ Problem
recipe for target '.subdirs' failed Makefile /Web_Base line 161 C/C++ Problem
 

pvvx

Активный участник сообщества
Сделал всё как alexhi в предыдущем сообщении, но выдал вот такие ошибки ....
Скорее всего (повтор):
Нет установленного C:/Python27/python.exe. А UDK имеет ошибки в esptool.py при загрузке в модуль + ошибку с созданием сегмента загрузки, если даже его размер нулевой, по тому дополнительно надо копировать esptool.py в c:/Espressif/utils/esptool.py
Но можно создать прошивку и версией в UDK.
В основном makefile (в корневой папке проекта) поменяйте:
ESPTOOL ?= $(SDK_TOOLS)/esptool
[HASHTAG]#ESPTOOL[/HASHTAG] ?= C:/Python27/python.exe $(SDK_TOOLS)/esptool.py
 

1801BM1

New member
Я использую esptool.exe (уже готовый, скомпилированный) + phyton27.dll, самого python на машине нету. И в этом esptool есть зависимость от пути C:\espressif\xtensa\... Приходится на каждом компе (сейчас вот среду на ноут переносил) заводить этот путь и кидать туда \bin из папки компилятора. Это плохо - у меня C:\ системный, обычно SSD, мусора там держу минимум. Нельзя ли этот path dependence из esptool как-то выпилить?
 

pvvx

Активный участник сообщества
Я использую esptool.exe (уже готовый, скомпилированный) + phyton27.dll, самого python на машине нету. И в этом esptool есть зависимость от пути C:\espressif\xtensa\... Приходится на каждом компе (сейчас вот среду на ноут переносил) заводить этот путь и кидать туда \bin из папки компилятора. Это плохо - у меня C:\ системный, обычно SSD, мусора там держу минимум. Нельзя ли этот path dependence из esptool как-то выпилить?
Проблемы в Unofficial Developer Kit. У всех ныне SSD, кроме автора UDK ;). У меня на основном компе 80% объема перезаписей записей образовалось только из-за перестановок UDK.
 

1801BM1

New member
Если закоммментировать USE_NETBIOS, то web_int_callbacks.c требует переменную netbios_name[] которой нет, и компиляция проходит с ошибками.
 

pvvx

Активный участник сообщества
Если закоммментировать USE_NETBIOS, то web_int_callbacks.c требует переменную netbios_name[] которой нет, и компиляция проходит с ошибками.
Да, там много накопилось опций, которые нельзя трогать без изменения остального :)
 

1801BM1

New member
Вопрос такой есть - зачем set_cpu_clk() постоянно вызывается в веб-сервере. Установленная скорость CPU слетает периодически?

Еще вопрос - в колбеке после окончания сканирования проверяется текущий режим работы и если не совпадает то назначается заново. Режим слетает в результате сканирования? Флажок WIFI_MASK_STACN нигде не используется - канал для станции не назначается? Или это опечатка и должно быть WIFI_MASK_CHL ?
 
Последнее редактирование:
С интересной проблемой столкнулся. Прошил модуль, залил Web - всё работает, всё нормально. Захожу через браузер на страничку модуля легко, но только из локальной сети. А вот когда пытаюсь зайти с другого компа через интернет на страничку модуля, то увы - страница не грузится. При этом проверяю открытый порт на мой IP на сайте 2IP.ru - результат положительный (отвечает, что порт открыт). В чём подвох? Может быть разборщик ругается?
 

1801BM1

New member
А почему не отключены LWIP_DNS и LWIP_IGMP ? Ресурсов немножно добавляет, клиент DNS прошивкой не используется, групповая рассылка вроде тоже.
Я отключил - вроде нормально работает, единственное что - для страховки оставил поле igmp_mac_filter (по смещению +60), чтобы размер структуры netif не поплыл.
 

1801BM1

New member
web_int_vars.c строка 422, вероятно, мелкий косячок:
if(tcp2uart_conn == NULL) tcp_abort(tcp2uart_conn->pcb);
 
Сверху Снизу