Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error after enable async mode #197

Closed
HARIS4820 opened this issue Jun 27, 2024 · 11 comments
Closed

error after enable async mode #197

HARIS4820 opened this issue Jun 27, 2024 · 11 comments

Comments

@HARIS4820
Copy link

i am using arduino 2.3.2 appimage in ubuntu 24.4. installed esp32 board 3.0.2 by espressif systems. board doit esp32 devkit v1 .
Screenshot from 2024-06-27 05-57-03
after enable async mode i am getting this error.
Screenshot from 2024-06-27 05-48-25

@Daryavahus
Copy link

I have similar error:
d:\Moje Dokumenty\Arduino\libraries\ElegantOTA\src\ElegantOTA.cpp: In lambda function:
d:\Moje Dokumenty\Arduino\libraries\ElegantOTA\src\ElegantOTA.cpp:22:117: error: no matching function for call to 'AsyncWebServerRequest::beginResponse(int, const char [10], const uint8_t [10214], unsigned int)'
22 | AsyncWebServerResponse response = request->beginResponse(200, "text/html", ELEGANT_HTML, sizeof(ELEGANT_HTML));
| ^
In file included from d:\Moje Dokumenty\Arduino\libraries\ElegantOTA\src\ElegantOTA.h:52,
from d:\Moje Dokumenty\Arduino\libraries\ElegantOTA\src\ElegantOTA.cpp:1:
d:\Moje Dokumenty\Arduino\libraries\ESPAsyncWebSrv\src/ESPAsyncWebSrv.h:246:29: note: candidate: 'AsyncWebServerResponse
AsyncWebServerRequest::beginResponse(int, const String&, const String&)'
246 | AsyncWebServerResponse beginResponse(int code, const String& contentType=String(), const String& content=String());
| ^~~~~~~~~~~~~
d:\Moje Dokumenty\Arduino\libraries\ESPAsyncWebSrv\src/ESPAsyncWebSrv.h:246:29: note: candidate expects 3 arguments, 4 provided
d:\Moje Dokumenty\Arduino\libraries\ESPAsyncWebSrv\src/ESPAsyncWebSrv.h:247:29: note: candidate: 'AsyncWebServerResponse
AsyncWebServerRequest::beginResponse(AsyncWebServerRequest::FS&, const String&, const String&, bool, AwsTemplateProcessor)'
247 | AsyncWebServerResponse *beginResponse(FS &fs, const String& path, const String& contentType=String(), bool download=false, AwsTemplateProcessor callback=nullptr);
| ^~~~~~~~~~~~~
d:\Moje Dokumenty\Arduino\libraries\ESPAsyncWebSrv\src/ESPAsyncWebSrv.h:247:47: note: no known conversion for argument 1 from 'int' to 'AsyncWebServerRequest::FS&' {aka 'fs::FS&'}
247 | AsyncWebServerResponse beginResponse(FS &fs, const String& path, const String& contentType=String(), bool download=false, AwsTemplateProcessor callback=nullptr);
| ~~~~^~
d:\Moje Dokumenty\Arduino\libraries\ESPAsyncWebSrv\src/ESPAsyncWebSrv.h:248:29: note: candidate: 'AsyncWebServerResponse
AsyncWebServerRequest::beginResponse(AsyncWebServerRequest::File, const String&, const String&, bool, AwsTemplateProcessor)'
248 | AsyncWebServerResponse *beginResponse(File content, const String& path, const String& contentType=String(), bool download=false, AwsTemplateProcessor callback=nullptr);
| ^~~~~~~~~~~~~
d:\Moje Dokumenty\Arduino\libraries\ESPAsyncWebSrv\src/ESPAsyncWebSrv.h:248:48: note: no known conversion for argument 1 from 'int' to 'AsyncWebServerRequest::File' {aka 'fs::File'}
248 | AsyncWebServerResponse beginResponse(File content, const String& path, const String& contentType=String(), bool download=false, AwsTemplateProcessor callback=nullptr);
| ~~~~~^~~~~~~
d:\Moje Dokumenty\Arduino\libraries\ESPAsyncWebSrv\src/ESPAsyncWebSrv.h:249:29: note: candidate: 'AsyncWebServerResponse
AsyncWebServerRequest::beginResponse(Stream&, const String&, size_t, AwsTemplateProcessor)'
249 | AsyncWebServerResponse *beginResponse(Stream &stream, const String& contentType, size_t len, AwsTemplateProcessor callback=nullptr);
| ^~~~~~~~~~~~~
d:\Moje Dokumenty\Arduino\libraries\ESPAsyncWebSrv\src/ESPAsyncWebSrv.h:249:51: note: no known conversion for argument 1 from 'int' to 'Stream&'
249 | AsyncWebServerResponse beginResponse(Stream &stream, const String& contentType, size_t len, AwsTemplateProcessor callback=nullptr);
| ~~~~~~~~^~~~~~
d:\Moje Dokumenty\Arduino\libraries\ESPAsyncWebSrv\src/ESPAsyncWebSrv.h:250:29: note: candidate: 'AsyncWebServerResponse
AsyncWebServerRequest::beginResponse(const String&, size_t, AwsResponseFiller, AwsTemplateProcessor)'
250 | AsyncWebServerResponse beginResponse(const String& contentType, size_t len, AwsResponseFiller callback, AwsTemplateProcessor templateCallback=nullptr);
| ^~~~~~~~~~~~~
d:\Moje Dokumenty\Arduino\libraries\ESPAsyncWebSrv\src/ESPAsyncWebSrv.h:250:100: note: no known conversion for argument 3 from 'const uint8_t [10214]' {aka 'const unsigned char [10214]'} to 'AwsResponseFiller' {aka 'std::function<unsigned int(unsigned char
, unsigned int, unsigned int)>'}
250 | AsyncWebServerResponse *beginResponse(const String& contentType, size_t len, AwsResponseFiller callback, AwsTemplateProcessor templateCallback=nullptr);
| ~~~~~~~~~~~~~~~~~~^~~~~~~~
d:\Moje Dokumenty\Arduino\libraries\ElegantOTA\src\ElegantOTA.cpp: In lambda function:
d:\Moje Dokumenty\Arduino\libraries\ElegantOTA\src\ElegantOTA.cpp:210:51: warning: unused parameter 'filename' [-Wunused-parameter]
210 | }, [&](AsyncWebServerRequest *request, String filename, size_t index, uint8_t *data, size_t len, bool final) {
| ~~~~~~~^~~~~~~~

version 3.1.1 works fine.

@mathieucarbou
Copy link
Contributor

you need to update your dependencies, especially ESPAsyncWebServer.

@HARIS4820
Copy link
Author

I use https://github.com/me-no-dev/ESPAsyncWebServer this library. My issue resolved

@mathieucarbou
Copy link
Contributor

FYI - see release notes of https://github.com/mathieucarbou/ESPAsyncWebServer/releases/ (which is the now maintained fork of ESPAsyncWebServer)

@Daryavahus
Copy link

... and it works fine. Thank You

@antwal
Copy link

antwal commented Jun 30, 2024

Updated library but i get build error:

Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp01.html
PLATFORM: Espressif 8266 (3.2.0) > Espressif Generic ESP8266 ESP-01 512k
HARDWARE: ESP8266 80MHz, 80KB RAM, 512KB Flash
PACKAGES: 
 - framework-arduinoespressif8266 @ 3.30002.0 (3.0.2) 
 - tool-esptool @ 1.413.0 (4.13) 
 - tool-esptoolpy @ 1.30000.201119 (3.0.0) 
 - toolchain-xtensa @ 2.100300.210717 (10.3.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 42 compatible libraries
Scanning dependencies...
Dependency Graph
|-- ArduinoJson @ 7.1.0
|-- DHT sensor library @ 1.4.6
|-- ElegantOTA @ 3.1.2
|-- ESP Async WebServer @ 3.0.3
|-- LittleFS @ 0.1.0
|-- Adafruit Unified Sensor @ 1.1.14
|-- ESP8266WiFi @ 1.0
|-- ESPAsyncTCP-esphome @ 2.0.0
|-- Wire @ 1.0
Building in release mode
Compiling .pio/build/esp01/src/main.cpp.o
Generating LD script .pio/build/esp01/ld/local.eagle.app.v6.common.ld
Compiling .pio/build/esp01/lib703/Adafruit Unified Sensor/Adafruit_Sensor.cpp.o
Compiling .pio/build/esp01/lib7f2/DHT sensor library/DHT.cpp.o
Compiling .pio/build/esp01/lib7f2/DHT sensor library/DHT_U.cpp.o
Compiling .pio/build/esp01/lib0a8/ESPAsyncTCP-esphome/AsyncPrinter.cpp.o
Compiling .pio/build/esp01/lib0a8/ESPAsyncTCP-esphome/ESPAsyncTCP.cpp.o
Compiling .pio/build/esp01/lib0a8/ESPAsyncTCP-esphome/ESPAsyncTCPbuffer.cpp.o
Compiling .pio/build/esp01/lib0a8/ESPAsyncTCP-esphome/SyncClient.cpp.o
Compiling .pio/build/esp01/lib0a8/ESPAsyncTCP-esphome/tcp_axtls.c.o
Compiling .pio/build/esp01/libe07/Hash/Hash.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/BearSSLHelpers.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/CertStoreBearSSL.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/ESP8266WiFi.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/ESP8266WiFiAP.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/ESP8266WiFiGratuitous.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/ESP8266WiFiMulti.cpp.o
Archiving .pio/build/esp01/lib703/libAdafruit Unified Sensor.a
Indexing .pio/build/esp01/lib703/libAdafruit Unified Sensor.a
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/ESP8266WiFiSTA.cpp.o
Archiving .pio/build/esp01/lib7f2/libDHT sensor library.a
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/ESP8266WiFiScan.cpp.o
Indexing .pio/build/esp01/lib7f2/libDHT sensor library.a
Archiving .pio/build/esp01/libe07/libHash.a
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/WiFiClient.cpp.o
Indexing .pio/build/esp01/libe07/libHash.a
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/WiFiServer.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/WiFiUdp.cpp.o
Compiling .pio/build/esp01/lib0ee/ESP8266WiFi/enable_wifi_at_boot_time.cpp.o
src/main.cpp: In lambda function:
src/main.cpp:141:57: warning: 'void AsyncWebServerRequest::send_P(int, const String&, const char*, AwsTemplateProcessor)' is deprecated: Replaced by send(...) [-Wdeprecated-declarations]
  141 |     request->send_P(200, "text/plain", String(t).c_str());
      |                                                         ^
In file included from src/main.cpp:18:
.pio/libdeps/esp01/ESP Async WebServer/src/ESPAsyncWebServer.h:308:10: note: declared here
  308 |     void send_P(int code, const String& contentType, PGM_P content, AwsTemplateProcessor callback = nullptr) {
      |          ^~~~~~
src/main.cpp: In lambda function:
src/main.cpp:146:57: warning: 'void AsyncWebServerRequest::send_P(int, const String&, const char*, AwsTemplateProcessor)' is deprecated: Replaced by send(...) [-Wdeprecated-declarations]
  146 |     request->send_P(200, "text/plain", String(h).c_str());
      |                                                         ^
In file included from src/main.cpp:18:
.pio/libdeps/esp01/ESP Async WebServer/src/ESPAsyncWebServer.h:308:10: note: declared here
  308 |     void send_P(int code, const String& contentType, PGM_P content, AwsTemplateProcessor callback = nullptr) {
      |          ^~~~~~
Compiling .pio/build/esp01/lib535/ESP Async WebServer/AsyncEventSource.cpp.o
Compiling .pio/build/esp01/lib535/ESP Async WebServer/AsyncWebSocket.cpp.o
Compiling .pio/build/esp01/lib535/ESP Async WebServer/WebAuthentication.cpp.o
Archiving .pio/build/esp01/lib0a8/libESPAsyncTCP-esphome.a
Indexing .pio/build/esp01/lib0a8/libESPAsyncTCP-esphome.a
Compiling .pio/build/esp01/lib535/ESP Async WebServer/WebHandlers.cpp.o
Compiling .pio/build/esp01/lib535/ESP Async WebServer/WebRequest.cpp.o
Compiling .pio/build/esp01/lib535/ESP Async WebServer/WebResponses.cpp.o
Compiling .pio/build/esp01/lib535/ESP Async WebServer/WebServer.cpp.o
Compiling .pio/build/esp01/lib535/ESP Async WebServer/port/SHA1Builder.cpp.o
Compiling .pio/build/esp01/lib377/ESP8266WebServer/detail/mimetable.cpp.o
Compiling .pio/build/esp01/libd64/LittleFS/LittleFS.cpp.o
Archiving .pio/build/esp01/lib377/libESP8266WebServer.a
Indexing .pio/build/esp01/lib377/libESP8266WebServer.a
Compiling .pio/build/esp01/libd64/LittleFS/lfs.c.o
Compiling .pio/build/esp01/libd64/LittleFS/lfs_util.c.o
Compiling .pio/build/esp01/lib9cc/ElegantOTA/ElegantOTA.cpp.o
Compiling .pio/build/esp01/lib9cc/ElegantOTA/elop.cpp.o
Compiling .pio/build/esp01/lib0a4/Wire/Wire.cpp.o
Archiving .pio/build/esp01/libFrameworkArduinoVariant.a
Indexing .pio/build/esp01/libFrameworkArduinoVariant.a
Compiling .pio/build/esp01/FrameworkArduino/Crypto.cpp.o
Compiling .pio/build/esp01/FrameworkArduino/Esp-frag.cpp.o
Compiling .pio/build/esp01/FrameworkArduino/Esp-version.cpp.o
Compiling .pio/build/esp01/FrameworkArduino/Esp.cpp.o
Archiving .pio/build/esp01/lib0ee/libESP8266WiFi.a
Compiling .pio/build/esp01/FrameworkArduino/FS.cpp.o
Indexing .pio/build/esp01/lib0ee/libESP8266WiFi.a
Compiling .pio/build/esp01/FrameworkArduino/FSnoop.cpp.o
Compiling .pio/build/esp01/FrameworkArduino/FunctionalInterrupt.cpp.o
Archiving .pio/build/esp01/lib0a4/libWire.a
Indexing .pio/build/esp01/lib0a4/libWire.a
Compiling .pio/build/esp01/FrameworkArduino/HardwareSerial.cpp.o
Compiling .pio/build/esp01/FrameworkArduino/IPAddress.cpp.o
Compiling .pio/build/esp01/FrameworkArduino/LwipDhcpServer-NonOS.cpp.o
Compiling .pio/build/esp01/FrameworkArduino/LwipDhcpServer.cpp.o
Compiling .pio/build/esp01/FrameworkArduino/LwipIntf.cpp.o
Compiling .pio/build/esp01/FrameworkArduino/LwipIntfCB.cpp.o
Compiling .pio/build/esp01/FrameworkArduino/MD5Builder.cpp.o
.pio/libdeps/esp01/ElegantOTA/src/ElegantOTA.cpp: In lambda function:
.pio/libdeps/esp01/ElegantOTA/src/ElegantOTA.cpp:76:71: error: 'FS_end' was not declared in this scope; did you mean 'va_end'?
   76 |         uint32_t update_size = mode == OTA_MODE_FILESYSTEM ? ((size_t)FS_end - (size_t)FS_start) : ((ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000);
      |                                                                       ^~~~~~
      |                                                                       va_end
.pio/libdeps/esp01/ElegantOTA/src/ElegantOTA.cpp:76:88: error: 'FS_start' was not declared in this scope; did you mean 'va_start'?
   76 |         uint32_t update_size = mode == OTA_MODE_FILESYSTEM ? ((size_t)FS_end - (size_t)FS_start) : ((ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000);
      |                                                                                        ^~~~~~~~
      |                                                                                        va_start
Compiling .pio/build/esp01/FrameworkArduino/Print.cpp.o
Archiving .pio/build/esp01/libd64/libLittleFS.a
Indexing .pio/build/esp01/libd64/libLittleFS.a
Compiling .pio/build/esp01/FrameworkArduino/Schedule.cpp.o
Compiling .pio/build/esp01/FrameworkArduino/StackThunk.cpp.o
*** [.pio/build/esp01/lib9cc/ElegantOTA/ElegantOTA.cpp.o] Error 1

@mathieucarbou
Copy link
Contributor

@antwal : please see the release notes of the dependency: https://github.com/mathieucarbou/ESPAsyncWebServer/releases

@antwal
Copy link

antwal commented Jun 30, 2024

@mathieucarbou

https://github.com/mathieucarbou/ESPAsyncWebServer/releases

this is not the problem, the library has been updated and the release indicates that send_P is deprecated

the problem is this, which generates an error and not a warning

.pio/libdeps/esp01/ElegantOTA/src/ElegantOTA.cpp: In lambda function:
.pio/libdeps/esp01/ElegantOTA/src/ElegantOTA.cpp:76:71: error: 'FS_end' was not declared in this scope; did you mean 'va_end'?
   76 |         uint32_t update_size = mode == OTA_MODE_FILESYSTEM ? ((size_t)FS_end - (size_t)FS_start) : ((ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000);
      |                                                                       ^~~~~~
      |                                                                       va_end
.pio/libdeps/esp01/ElegantOTA/src/ElegantOTA.cpp:76:88: error: 'FS_start' was not declared in this scope; did you mean 'va_start'?
   76 |         uint32_t update_size = mode == OTA_MODE_FILESYSTEM ? ((size_t)FS_end - (size_t)FS_start) : ((ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000);
      |                                                                                        ^~~~~~~~
      |                                                                                        va_start

I also include the platformio:

[env:esp01]
platform = espressif8266
board = esp01
framework = arduino
monitor_speed = 115200
board_build.filesystem = littlefs
build_flags = -DELEGANTOTA_USE_ASYNC_WEBSERVER=1
lib_deps = 
	bblanchon/ArduinoJson@^7.0.4
	adafruit/DHT sensor library@^1.4.6
	ayushsharma82/ElegantOTA@^3.1.2
	mathieucarbou/ESP Async WebServer@^3.0.3

@ayushsharma82
Copy link
Owner

@antwal Can you try updating your ESP8266 platform in PIO? maybe that will fix it.

@antwal
Copy link

antwal commented Jun 30, 2024

@ayushsharma82 yes I updated to version 4.2.1, with the 3.2.0 I had it gave an error, now it works

@ayushsharma82
Copy link
Owner

Closing this issue as solved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants