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

Разработка ‘библиотеки’ малого 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);
 
Сверху Снизу