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

Async Webserver problem #170

Open
sebosfato opened this issue Aug 19, 2023 · 10 comments
Open

Async Webserver problem #170

sebosfato opened this issue Aug 19, 2023 · 10 comments

Comments

@sebosfato
Copy link

Hello im trying to implemente the async webserver along with the task scheduller

but i seem to have find some exceptions i guess its because it run on background

is there a way to set a task for it?

thanks

@arkhipenko
Copy link
Owner

Post your code here, I will have a look.

@sebosfato
Copy link
Author

I believe the part that is giving problem is this..

String getContentType(String filename) {
if (filename.endsWith(".htm") || filename.endsWith(".html")) return "text/html";
else if (filename.endsWith(".css")) return "text/css";
else if (filename.endsWith(".js")) return "application/javascript";
else if (filename.endsWith(".png")) return "image/png";
else if (filename.endsWith(".jpg") || filename.endsWith(".jpeg")) return "image/jpeg";
else if (filename.endsWith(".gif")) return "image/gif";
else if (filename.endsWith(".ico")) return "image/x-icon";
else if (filename.endsWith(".xml")) return "text/xml";
else if (filename.endsWith(".pdf")) return "application/pdf";
else if (filename.endsWith(".zip")) return "application/zip";
else if (filename.endsWith(".gz")) return "application/gzip";
else if (filename.endsWith(".map")) return "application/javascript"; // You can add more file types here
else if (filename.endsWith(".txt")) return "text/plain"; // For example, add .txt
else {
// Default content type if none of the known file types match
return "application/octet-stream";
}
}
bool handleFileRead(AsyncWebServerRequest *request) {
String path = request->url();

if (path.endsWith("/")) {
    path += "index.html";
}

String contentType = getContentType(path);
String pathWithGz = path + ".gz";

if (SPIFFS.exists(pathWithGz) || SPIFFS.exists(path)) {
   if (SPIFFS.exists(pathWithGz)) {
  path += ".gz";
}
 


File file = SPIFFS.open(path, "r");
request->send(SPIFFS, path, contentType);
file.close();
return true;
}

if (path.endsWith("&end=end")){
String path = request->url();
////Serial.println(path);
//Serial.println(path.substring(5,13)); // extrai so a data da string do formulario
datmes=path.substring(10,12).toInt(); //mes
datano=path.substring(5,9).toInt(); //ano
dat=path.substring(13,15).toInt(); //dia
request->send(200);
}

I use this to make the content type etc like the old FS server…

void handleNotFound(AsyncWebServerRequest *request) {
if (!handleFileRead(request)) {
if (captivePortal(request)) { // If captive portal, redirect instead of displaying the error page.
return;
//Serial.println("handle not found");
}

String message = F("File Not Found\n\n");
message += F("URI: ");
message += request->url();
message += F("\nMethod: ");
message += (request->method() == HTTP_GET) ? "GET" : "POST";
message += F("\nArguments: ");
message += request->args();
message += F("\n");

for (uint8_t i = 0; i < request->args(); i++) {
  message += String(F(" ")) + request->argName(i) + F(": ") + request->arg(i) + F("\n");
}

AsyncWebServerResponse *response = request->beginResponse(404, "text/plain", message);
response->addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response->addHeader("Pragma", "no-cache");
response->addHeader("Expires", "-1");
//Serial.println("handle not found sent headers");
request->send(response);

}
}

void handleRoot(AsyncWebServerRequest *request) {
if (captivePortal(request)) { // If caprive portal redirect instead of displaying the page.
return;
}
AsyncWebServerResponse *response = request->beginResponse(SPIFFS, "/index.html", "text/html");
response->addHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response->addHeader("Pragma", "no-cache");
response->addHeader("Expires", "-1");
request->send(response);
}

boolean captivePortal(AsyncWebServerRequest *request) {
if (!isIp(request->host()) && request->host() != (String(host) + ".local")) {
Serial.println("Request redirected to captive portal");
AsyncWebServerResponse *response = request->beginResponse(302);
response->addHeader("Location", String("http://") + toStringIp(request->client()->localIP()));
request->send(response); // Send the response
request->client()->close(); // Close the connection
return true;
}
return false;
}

void t1Callback();
void t2Callback();
void t3Callback();
void t4Callback();
//void t5Callback();
Task t1(65000, TASK_FOREVER, &t1Callback);
Task t2(150, TASK_FOREVER, &t2Callback); // original 150

// i would like the sever to be handled here in this function

Task t3(100000, TASK_FOREVER, &t3Callback);
Task t4(1000, TASK_FOREVER, &t4Callback);
Scheduler runner;

void loop(void) {
doWiFiManager();
//server.handleClient();
runner.execute();
}

when it starts the captive portal it gives this exception code:

18:46:37.649 -> Exception (29):
18:46:37.649 -> epc1=0x4022b72a epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000008 depc=0x00000000
18:46:37.649 ->
18:46:37.649 -> >>>stack>>>
18:46:37.649 ->
18:46:37.649 -> ctx: sys
18:46:37.649 -> sp: 3fffe8d0 end: 3fffffb0 offset: 0190
18:46:37.649 -> 3fffea60: 3fffea90 00000dea 3fffeb92 00000000
18:46:37.683 -> 3fffea70: 3fffedb0 3fffedd8 00000000 402343c8
18:46:37.683 -> 3fffea80: 00000001 3fffedd8 3fff1108 4022c8d4
18:46:37.683 -> 3fffea90: 00000000 00000000 00000000 00000000
18:46:37.683 -> 3fffeaa0: 00000000 00000000 00000000 00000000
18:46:37.683 -> 3fffeab0: 00000000 00000000 00000000 00000000
18:46:37.683 -> 3fffeac0: 00000000 00000000 00000000 00000000
18:46:37.683 -> 3fffead0: 00000000 00000000 00000000 00000000
18:46:37.717 -> 3fffeae0: 00000000 00000000 00000000 00000000
18:46:37.717 -> 3fffeaf0: 00000000 00000000 00000000 00000000
18:46:37.717 -> 3fffeb00: 00000000 00000000 00000000 00000000
18:46:37.717 -> 3fffeb10: 00000000 00000000 00000000 00000000
18:46:37.717 -> 3fffeb20: 00000000 00000000 00000000 00000000
18:46:37.717 -> 3fffeb30: 00000000 00000000 00000000 00000000
18:46:37.717 -> 3fffeb40: 00000000 00000000 00000000 00000000
18:46:37.717 -> 3fffeb50: 00000000 00000000 00000000 00000000
18:46:37.750 -> 3fffeb60: 00000000 00000000 00000000 00000000
18:46:37.750 -> 3fffeb70: 00000000 00000000 00000000 00000000
18:46:37.750 -> 3fffeb80: 00000000 00000000 00000000 00000000
18:46:37.750 -> 3fffeb90: 00290001 000005a0 00001194 40220012
18:46:37.750 -> 3fffeba0: 3fffedb0 00000001 3fff1108 40229aed
18:46:37.750 -> 3fffebb0: 00000000 6c735f0c 2d706565 786f7270
18:46:37.750 -> 3fffebc0: 755f0479 6c057064 6c61636f 00000000
18:46:37.750 -> 3fffebd0: 00000000 00000000 00000000 00000000
18:46:37.786 -> 3fffebe0: 00000000 00000000 00000000 00000000
18:46:37.786 -> 3fffebf0: 00000000 00000000 00000000 00000000
18:46:37.786 -> 3fffec00: 00000000 00000000 00000000 00000000
18:46:37.786 -> 3fffec10: 00000000 00000000 00000000 00000000
18:46:37.786 -> 3fffec20: 00000000 00000000 00000000 00000000
18:46:37.786 -> 3fffec30: 00000000 00000000 00000000 00000000
18:46:37.786 -> 3fffec40: 00000000 00000000 00000000 00000000
18:46:37.786 -> 3fffec50: 00000000 00000000 00000000 00000000
18:46:37.823 -> 3fffec60: 00000000 00000000 00000000 00000000
18:46:37.823 -> 3fffec70: 00000000 00000000 00000000 00000000
18:46:37.823 -> 3fffec80: 00000000 00000000 00000000 00000000
18:46:37.823 -> 3fffec90: 00000000 00000000 00000000 00000000
18:46:37.823 -> 3fffeca0: 00000000 00000000 00000000 00000000
18:46:37.823 -> 3fffecb0: 00000000 000c0019 3f010001 40225460
18:46:37.823 -> 3fffecc0: 000000c8 40247265 3fff4c8c 3fff3d68
18:46:37.823 -> 3fffecd0: 3fff8710 402029b0 3fffbc24 40232ff0
18:46:37.823 -> 3fffece0: 3fff8710 402029b0 3fffbc24 00000000
18:46:37.856 -> 3fffecf0: 3fff4154 3fff411c 3fffb14c 402474f2
18:46:37.856 -> 3fffed00: 00303635 3fff411c 3fffb14c 40247914
18:46:37.856 -> 3fffed10: 3fff402c 3fffed30 3fff8728 40232ff0
18:46:37.856 -> 3fffed20: 3fffbc68 00000003 3fff86fc 3fff4030
18:46:37.856 -> 3fffed30: 3fff4154 00000009 3fff411c 4024f0e8
18:46:37.856 -> 3fffed40: 00656461 3fffbc24 3fffbc24 402261fc
18:46:37.856 -> 3fffed50: 00006f18 3fffb14c 8038003f 8023316b
18:46:37.893 -> 3fffed60: 00006f18 00000de3 00000de3 40100a4f
18:46:37.893 -> 3fffed70: 00000000 00000000 00000020 40100428
18:46:37.893 -> 3fffed80: 00000016 3ffef968 00000000 40101878
18:46:37.893 -> 3fffed90: 3ffead40 40104b0b 3fff5364 40100f5c
18:46:37.893 -> 3fffeda0: 0000000a 40103ce6 3ffeeec0 40100648
18:46:37.893 -> 3fffedb0: 40104157 00000002 3fff633c 4022c3a1
18:46:37.893 -> 3fffedc0: 40250000 00000000 00000000 00000100
18:46:37.893 -> 3fffedd0: 3fff0000 00000000 00000000 4022c6d5
18:46:37.893 -> 3fffede0: 00000000 00000001 3fffee30 4022ca14
18:46:37.926 -> 3fffedf0: 3fff0000 3fffb5cc 00000020 000014e9
18:46:37.926 -> 3fffee00: 3fff41dc 3fffb5cc 3fff1108 4022a7e5
18:46:37.926 -> 3fffee10: 00000000 00000000 00000000 00000000
18:46:37.926 -> 3fffee20: 00000000 00000000 00000000 4024b10a
18:46:37.926 -> 3fffee30: 00000000 00000003 00010000 4021b2ce
18:46:37.926 -> 3fffee40: 40269ada 3fffb5cc 3fff1108 4022ab4d
18:46:37.926 -> 3fffee50: 00000000 402624f8 3fff633c 4022ab68
18:46:37.964 -> 3fffee60: 00000011 00000001 00000000 4023e30f
18:46:37.964 -> 3fffee70: 3fff41dc 3fffb5cc 3fff633c 4021ad08
18:46:37.964 -> 3fffee80: 3fffb5fe 00000000 3fff638c 3fffb5cc
18:46:37.964 -> 3fffee90: 3fffb5fe 00000000 3fff638c 4024ba84
18:46:37.964 -> 3fffeea0: 000014e9 3fff411c 3fff411c 3fff47b4
18:46:37.964 -> 3fffeeb0: 00000000 00000000 00000020 3fff41cc
18:46:37.964 -> 3fffeec0: 3fff411c 3fffb5ea 3fffb5cc 402509d0
18:46:37.964 -> 3fffeed0: 00000014 3fff411c 0000009a 3fff47b4
18:46:37.964 -> 3fffeee0: 00000000 3fff4734 00000020 40100cd7
18:46:38.000 -> 3fffeef0: 40262c14 3fffa93c 3fff4734 3fff47b4
18:46:38.000 -> 3fffef00: 00000008 3fff411c 3fffb5cc 40247889
18:46:38.000 -> 3fffef10: 3fffdc80 3fff4734 3fffa93c 402476a4
18:46:38.000 -> 3fffef20: 4026792e 3fff4734 3fffa93c 4026793f
18:46:38.000 -> 3fffef30: 3fffb5dc 3fffb5cc 00000000 3ffe85a8
18:46:38.000 -> 3fffef40: 4026283f 00000000 3fffa93c 402696f3
18:46:38.000 -> 3fffef50: 40000f49 3fffdab0 3fffdab0 40000f49
18:46:38.000 -> 3fffef60: 40000e19 00000005 00086870 00000000
18:46:38.000 -> 3fffef70: 3fffefc0 aa55aa55 000000c4 40104c29
18:46:38.037 -> 3fffef80: 40104c2f 00086870 00000000 6e550074
18:46:38.037 -> 3fffef90: 4010000d 7a69726f 50006465 656d7961
18:46:38.037 -> 3fffefa0: 4026171c 3fffef3c 402616d5 3fffff48
18:46:38.037 -> 3fffefb0: 3fffffc0 00000000 00000000 feefeffe
18:46:38.037 -> 3fffefc0: feefeffe feefeffe feefeffe feefeffe
18:46:38.037 -> 3fffefd0: feefeffe feefeffe feefeffe feefeffe
18:46:38.037 -> 3fffefe0: feefeffe feefeffe feefeffe feefeffe
18:46:38.037 -> 3fffeff0: feefeffe feefeffe feefeffe feefeffe
18:46:38.072 -> 3ffff000: feefeffe feefeffe feefeffe feefeffe
18:46:38.072 -> 3ffff010: feefeffe feefeffe feefeffe feefeffe
18:46:38.072 -> 3ffff020: feefeffe feefeffe feefeffe feefeffe
18:46:38.072 -> 3ffff030: feefeffe feefeffe feefeffe feefeffe
18:46:38.072 -> 3ffff040: feefeffe feefeffe feefeffe feefeffe
18:46:38.072 -> 3ffff050: feefeffe feefeffe feefeffe feefeffe
18:46:38.072 -> 3ffff060: feefeffe feefeffe feefeffe feefeffe
18:46:38.072 -> 3ffff070: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff080: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff090: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff0a0: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff0b0: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff0c0: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff0d0: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff0e0: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff0f0: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff100: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff110: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff120: feefeffe feefeffe feefeffe feefeffe
18:46:38.130 -> 3ffff130: feefeffe feefeffe feefeffe feefeffe
18:46:38.150 -> 3ffff140: feefeffe feefeffe feefeffe feefeffe
18:46:38.150 -> 3ffff150: feefeffe feefeffe feefeffe feefeffe
18:46:38.150 -> 3ffff160: feefeffe feefeffe feefeffe feefeffe
18:46:38.150 -> 3ffff170: feefeffe feefeffe feefeffe feefeffe
18:46:38.150 -> 3ffff180: feefeffe feefeffe feefeffe feefeffe
18:46:38.186 -> 3ffff190: feefeffe feefeffe feefeffe feefeffe
18:46:38.186 -> 3ffff1a0: feefeffe feefeffe feefeffe feefeffe
18:46:38.186 -> 3ffff1b0: feefeffe feefeffe feefeffe feefeffe
18:46:38.186 -> 3ffff1c0: feefeffe feefeffe feefeffe feefeffe
18:46:38.186 -> 3ffff1d0: feefeffe feefeffe feefeffe feefeffe
18:46:38.186 -> 3ffff1e0: feefeffe feefeffe feefeffe feefeffe
18:46:38.186 -> 3ffff1f0: feefeffe feefeffe feefeffe feefeffe
18:46:38.186 -> 3ffff200: feefeffe feefeffe feefeffe feefeffe
18:46:38.186 -> 3ffff210: feefeffe feefeffe feefeffe feefeffe
18:46:38.219 -> 3ffff220: feefeffe feefeffe feefeffe feefeffe
18:46:38.219 -> 3ffff230: feefeffe feefeffe feefeffe feefeffe
18:46:38.219 -> 3ffff240: feefeffe feefeffe feefeffe feefeffe
18:46:38.219 -> 3ffff250: feefeffe feefeffe feefeffe feefeffe
18:46:38.219 -> 3ffff260: feefeffe feefeffe feefeffe feefeffe
18:46:38.219 -> 3ffff270: feefeffe feefeffe feefeffe feefeffe
18:46:38.219 -> 3ffff280: feefeffe feefeffe feefeffe feefeffe
18:46:38.256 -> 3ffff290: feefeffe feefeffe feefeffe feefeffe
18:46:38.256 -> 3ffff2a0: feefeffe feefeffe feefeffe feefeffe
18:46:38.256 -> 3ffff2b0: feefeffe feefeffe feefeffe feefeffe
18:46:38.256 -> 3ffff2c0: feefeffe feefeffe feefeffe feefeffe
18:46:38.256 -> 3ffff2d0: feefeffe feefeffe feefeffe feefeffe
18:46:38.256 -> 3ffff2e0: feefeffe feefeffe feefeffe feefeffe
18:46:38.256 -> 3ffff2f0: feefeffe feefeffe feefeffe feefeffe
18:46:38.256 -> 3ffff300: feefeffe feefeffe feefeffe feefeffe
18:46:38.291 -> 3ffff310: feefeffe feefeffe feefeffe feefeffe
18:46:38.291 -> 3ffff320: feefeffe feefeffe feefeffe feefeffe
18:46:38.291 -> 3ffff330: feefeffe feefeffe feefeffe feefeffe
18:46:38.291 -> 3ffff340: feefeffe feefeffe feefeffe feefeffe
18:46:38.291 -> 3ffff350: feefeffe feefeffe feefeffe feefeffe
18:46:38.291 -> 3ffff360: feefeffe feefeffe feefeffe feefeffe
18:46:38.291 -> 3ffff370: feefeffe feefeffe feefeffe feefeffe
18:46:38.291 -> 3ffff380: feefeffe feefeffe feefeffe feefeffe
18:46:38.326 -> 3ffff390: feefeffe feefeffe feefeffe feefeffe
18:46:38.326 -> 3ffff3a0: feefeffe feefeffe feefeffe feefeffe
18:46:38.326 -> 3ffff3b0: feefeffe feefeffe feefeffe feefeffe
18:46:38.326 -> 3ffff3c0: feefeffe feefeffe feefeffe feefeffe
18:46:38.326 -> 3ffff3d0: feefeffe feefeffe feefeffe feefeffe
18:46:38.326 -> 3ffff3e0: feefeffe feefeffe feefeffe feefeffe
18:46:38.326 -> 3ffff3f0: feefeffe feefeffe feefeffe feefeffe
18:46:38.326 -> 3ffff400: feefeffe feefeffe feefeffe feefeffe
18:46:38.364 -> 3ffff410: feefeffe feefeffe feefeffe feefeffe
18:46:38.364 -> 3ffff420: feefeffe feefeffe feefeffe feefeffe
18:46:38.364 -> 3ffff430: feefeffe feefeffe feefeffe feefeffe
18:46:38.364 -> 3ffff440: feefeffe feefeffe feefeffe feefeffe
18:46:38.364 -> 3ffff450: feefeffe feefeffe feefeffe feefeffe
18:46:38.364 -> 3ffff460: feefeffe feefeffe feefeffe feefeffe
18:46:38.364 -> 3ffff470: feefeffe feefeffe feefeffe feefeffe
18:46:38.364 -> 3ffff480: feefeffe feefeffe feefeffe feefeffe
18:46:38.364 -> 3ffff490: feefeffe feefeffe feefeffe feefeffe
18:46:38.403 -> 3ffff4a0: feefeffe feefeffe feefeffe feefeffe
18:46:38.403 -> 3ffff4b0: feefeffe feefeffe feefeffe feefeffe
18:46:38.403 -> 3ffff4c0: feefeffe feefeffe feefeffe feefeffe
18:46:38.403 -> 3ffff4d0: feefeffe feefeffe feefeffe feefeffe
18:46:38.403 -> 3ffff4e0: feefeffe feefeffe feefeffe feefeffe
18:46:38.403 -> 3ffff4f0: feefeffe feefeffe feefeffe feefeffe
18:46:38.403 -> 3ffff500: feefeffe feefeffe feefeffe feefeffe
18:46:38.403 -> 3ffff510: feefeffe feefeffe feefeffe feefeffe
18:46:38.433 -> 3ffff520: feefeffe feefeffe feefeffe feefeffe
18:46:38.433 -> 3ffff530: feefeffe feefeffe feefeffe feefeffe
18:46:38.433 -> 3ffff540: feefeffe feefeffe feefeffe feefeffe
18:46:38.433 -> 3ffff550: feefeffe feefeffe feefeffe feefeffe
18:46:38.433 -> 3ffff560: feefeffe feefeffe feefeffe feefeffe
18:46:38.433 -> 3ffff570: feefeffe feefeffe feefeffe feefeffe
18:46:38.433 -> 3ffff580: feefeffe feefeffe feefeffe feefeffe
18:46:38.466 -> 3ffff590: feefeffe feefeffe feefeffe feefeffe
18:46:38.466 -> 3ffff5a0: feefeffe feefeffe feefeffe feefeffe
18:46:38.466 -> 3ffff5b0: feefeffe feefeffe feefeffe feefeffe
18:46:38.466 -> 3ffff5c0: feefeffe feefeffe feefeffe feefeffe
18:46:38.466 -> 3ffff5d0: feefeffe feefeffe feefeffe feefeffe
18:46:38.466 -> 3ffff5e0: feefeffe feefeffe feefeffe feefeffe
18:46:38.466 -> 3ffff5f0: feefeffe feefeffe feefeffe feefeffe
18:46:38.466 -> 3ffff600: feefeffe feefeffe feefeffe feefeffe
18:46:38.504 -> 3ffff610: feefeffe feefeffe feefeffe feefeffe
18:46:38.504 -> 3ffff620: feefeffe feefeffe feefeffe feefeffe
18:46:38.504 -> 3ffff630: feefeffe feefeffe feefeffe feefeffe
18:46:38.504 -> 3ffff640: feefeffe feefeffe feefeffe feefeffe
18:46:38.504 -> 3ffff650: feefeffe feefeffe feefeffe feefeffe
18:46:38.504 -> 3ffff660: feefeffe feefeffe feefeffe feefeffe
18:46:38.504 -> 3ffff670: feefeffe feefeffe feefeffe feefeffe
18:46:38.504 -> 3ffff680: feefeffe feefeffe feefeffe feefeffe
18:46:38.539 -> 3ffff690: feefeffe feefeffe feefeffe feefeffe
18:46:38.539 -> 3ffff6a0: feefeffe feefeffe feefeffe feefeffe
18:46:38.539 -> 3ffff6b0: feefeffe feefeffe feefeffe feefeffe
18:46:38.539 -> 3ffff6c0: feefeffe feefeffe feefeffe feefeffe
18:46:38.539 -> 3ffff6d0: feefeffe feefeffe feefeffe feefeffe
18:46:38.539 -> 3ffff6e0: feefeffe feefeffe feefeffe feefeffe
18:46:38.539 -> 3ffff6f0: feefeffe feefeffe feefeffe feefeffe
18:46:38.539 -> 3ffff700: feefeffe feefeffe feefeffe feefeffe
18:46:38.576 -> 3ffff710: feefeffe feefeffe feefeffe feefeffe
18:46:38.576 -> 3ffff720: feefeffe feefeffe feefeffe feefeffe
18:46:38.576 -> 3ffff730: feefeffe feefeffe feefeffe feefeffe
18:46:38.576 -> 3ffff740: feefeffe feefeffe feefeffe feefeffe
18:46:38.576 -> 3ffff750: feefeffe feefeffe feefeffe feefeffe
18:46:38.576 -> 3ffff760: feefeffe feefeffe feefeffe feefeffe
18:46:38.576 -> 3ffff770: feefeffe feefeffe feefeffe feefeffe
18:46:38.576 -> 3ffff780: feefeffe feefeffe feefeffe feefeffe
18:46:38.576 -> 3ffff790: feefeffe feefeffe feefeffe feefeffe
18:46:38.609 -> 3ffff7a0: feefeffe feefeffe feefeffe feefeffe
18:46:38.609 -> 3ffff7b0: feefeffe feefeffe feefeffe feefeffe
18:46:38.609 -> 3ffff7c0: feefeffe feefeffe feefeffe feefeffe
18:46:38.609 -> 3ffff7d0: feefeffe feefeffe feefeffe feefeffe
18:46:38.609 -> 3ffff7e0: feefeffe feefeffe feefeffe feefeffe
18:46:38.609 -> 3ffff7f0: feefeffe feefeffe feefeffe feefeffe
18:46:38.609 -> 3ffff800: feefeffe feefeffe feefeffe feefeffe
18:46:38.609 -> 3ffff810: feefeffe feefeffe feefeffe feefeffe
18:46:38.647 -> 3ffff820: feefeffe feefeffe feefeffe feefeffe
18:46:38.647 -> 3ffff830: feefeffe feefeffe feefeffe feefeffe
18:46:38.647 -> 3ffff840: feefeffe feefeffe feefeffe feefeffe
18:46:38.647 -> 3ffff850: feefeffe feefeffe feefeffe feefeffe
18:46:38.647 -> 3ffff860: feefeffe feefeffe feefeffe feefeffe
18:46:38.647 -> 3ffff870: feefeffe feefeffe feefeffe feefeffe
18:46:38.647 -> 3ffff880: feefeffe feefeffe feefeffe feefeffe
18:46:38.647 -> 3ffff890: feefeffe feefeffe feefeffe feefeffe
18:46:38.684 -> 3ffff8a0: feefeffe feefeffe feefeffe feefeffe
18:46:38.684 -> 3ffff8b0: feefeffe feefeffe feefeffe feefeffe
18:46:38.684 -> 3ffff8c0: feefeffe feefeffe feefeffe feefeffe
18:46:38.684 -> 3ffff8d0: feefeffe feefeffe feefeffe feefeffe
18:46:38.684 -> 3ffff8e0: feefeffe feefeffe feefeffe feefeffe
18:46:38.684 -> 3ffff8f0: feefeffe feefeffe feefeffe feefeffe
18:46:38.684 -> 3ffff900: feefeffe feefeffe feefeffe feefeffe
18:46:38.684 -> 3ffff910: 40103a1b 00040000 00000000 00040000
18:46:38.717 -> 3ffff920: 53002200 40103a18 00040000 feefeffe
18:46:38.717 -> 3ffff930: 3ffeef08 4010297f feefeffe feefeffe
18:46:38.717 -> 3ffff940: feefeffe feefeffe feefeffe feefeffe
18:46:38.717 -> 3ffff950: feefeffe 2c9f0300 4000050c 3fffc278
18:46:38.717 -> 3ffff960: 401027d0 3fffc200 00000022 00000008
18:46:38.717 -> 3ffff970: 40100404 00000030 00000000 ffffffff
18:46:38.717 -> 3ffff980: 4010171e 00000000 3fff3c62 000000ff
18:46:38.717 -> 3ffff990: 0000005c 00000001 40104a71 3ffeef08
18:46:38.750 -> 3ffff9a0: 3ffeee90 00040000 00000000 00040000
18:46:38.750 -> 3ffff9b0: 53002200 40103a18 00040000 00000030
18:46:38.750 -> 3ffff9c0: 40104656 3ffeef08 00000000 3ffee460
18:46:38.750 -> 3ffff9d0: 00007fff 40103fa5 3ffeef08 00000100
18:46:38.750 -> 3ffff9e0: 3ffeb5c0 2c9f0300 4000050c 3fffc278
18:46:38.750 -> 3ffff9f0: 40104559 3ffeef08 3ffee4b0 00040000
18:46:38.750 -> 3ffffa00: 53002200 00000030 00000000 ffffffff
18:46:38.750 -> 3ffffa10: 40104831 00080000 00000002 00002009
18:46:38.786 -> 3ffffa20: 40102afe 00000000 3ffedbbc 000000fe
18:46:38.786 -> 3ffffa30: 0000005c 00000001 40104a71 3ffeef08
18:46:38.786 -> 3ffffa40: 3ffeee90 2c9f0300 3fffc228 401053c9
18:46:38.786 -> 3ffffa50: 4000050c 3fffc200 4026399b 00000001
18:46:38.786 -> 3ffffa60: ffffffff 00000000 3ffeae91 00000008
18:46:38.786 -> 3ffffa70: 402639ea 3ffee3c0 3fff436c 00000001
18:46:38.786 -> 3ffffa80: 00000002 00000000 00000020 40100428
18:46:38.786 -> 3ffffa90: 00000007 00000007 00000002 40101878
18:46:38.822 -> 3ffffaa0: 3ffead42 40262aa7 3ffee3c0 00000020
18:46:38.822 -> 3ffffab0: 00000000 4025604b 3ffef968 3fff436c
18:46:38.822 -> 3ffffac0: 00000000 00000002 00000001 3ffee3c0
18:46:38.822 -> 3ffffad0: 3fffbcd2 40105173 3fff4c8c 3fff3d68
18:46:38.822 -> 3ffffae0: 3fff4734 2c9f0300 4000050c 3fffc278
18:46:38.822 -> 3ffffaf0: 00007830 40247265 3fff4c8c 3fff3d68
18:46:38.822 -> 3ffffb00: 00000050 00000032 00000020 3fff3fd8
18:46:38.822 -> 3ffffb10: 3fffb744 00000003 00000020 40100d0c
18:46:38.860 -> 3ffffb20: 3fff4154 3fff411c 3fffbc9c 402474f2
18:46:38.860 -> 3ffffb30: 00000002 3fff411c ffffffff 40251734
18:46:38.860 -> 3ffffb40: 00000000 00000000 00000020 40247969
18:46:38.860 -> 3ffffb50: 00006d00 4025604b 00000005 402479a8
18:46:38.860 -> 3ffffb60: 3fffb744 3fffae78 3fff411c 4024f1e3
18:46:38.860 -> 3ffffb70: 00000006 00000000 3fffae78 40100d0c
18:46:38.860 -> 3ffffb80: 00000017 0e8eafe9 3ffef1dc 3fffb744
18:46:38.860 -> 3ffffb90: 3fffb744 3fffae78 3fff411c 4024f354
18:46:38.860 -> 3ffffba0: 00000000 0e8eafe9 40102aae 00000100
18:46:38.897 -> 3ffffbb0: 3fffb788 3fffae78 3fff411c 40250c3c
18:46:38.897 -> 3ffffbc0: 40103a1b 00040000 00000000 00040000
18:46:38.897 -> 3ffffbd0: 00000000 40103a18 00040000 00000000
18:46:38.897 -> 3ffffbe0: 3ffeeec0 4010297f 4000050c 00000050
18:46:38.897 -> 3ffffbf0: 0000005c 00000046 00000020 3fffae74
18:46:38.897 -> 3ffffc00: 3fffae78 2c9f0300 4000050c 3fffc278
18:46:38.897 -> 3ffffc10: 00000006 00000000 0000000a 00000000
18:46:38.897 -> 3ffffc20: 00000006 00000000 0000000a 00000000
18:46:38.897 -> 3ffffc30: 40245be3 00000008 00000000 3ffffe10
18:46:38.931 -> 3ffffc40: 00000000 a0000000 00000000 0000001c
18:46:38.931 -> 3ffffc50: 00006000 00000089 00006000 00000000
18:46:38.931 -> 3ffffc60: 00000006 00000000 0000000a 00000000
18:46:38.931 -> 3ffffc70: 00000006 00000000 0000000a 00000000
18:46:38.931 -> 3ffffc80: 3fffae78 3fffae74 402412f5 00000001
18:46:38.931 -> 3ffffc90: 00000000 a0000000 00000000 0000001c
18:46:38.931 -> 3ffffca0: 00006000 3ffffd62 00006000 00000000
18:46:38.969 -> 3ffffcb0: 3ffffe10 00000000 3ffffe10 402457b2
18:46:38.969 -> 3ffffcc0: 0000a000 3ffffdb3 3ffffd20 40241420
18:46:38.969 -> 3ffffcd0: 00000001 3ffffd68 402412f5 00000001
18:46:38.969 -> 3ffffce0: 3ffffe10 00000001 3ffffe10 402457b2
18:46:38.969 -> 3ffffcf0: 3ffffd70 3ffffdb2 3ffffd20 00000000
18:46:38.969 -> 3ffffd00: 4000050c 3ffffe3c 3ffffd68 402456e8
18:46:38.969 -> 3ffffd10: 3ffffe10 3ffffdb2 3ffffd70 40241420
18:46:38.969 -> 3ffffd20: 00000001 ffffffff ffffffff 00000000
18:46:38.969 -> 3ffffd30: 3ffe8300 00000000 0000000a 40279b80
18:46:39.003 -> 3ffffd40: 3ffffdb3 00000006 00000000 40100428
18:46:39.003 -> 3ffffd50: 00000002 00000000 00000020 00000100
18:46:39.003 -> 3ffffd60: 0000005c 00000001 40104a71 3ffeef08
18:46:39.003 -> 3ffffd70: 00000005 00000000 00000020 40100428
18:46:39.003 -> 3ffffd80: 00000001 40103ce6 00000005 40101878
18:46:39.003 -> 3ffffd90: 00000005 00000000 00000020 40100428
18:46:39.003 -> 3ffffda0: 00000005 00000000 00000005 40101878
18:46:39.003 -> 3ffffdb0: 3ffead45 40104b23 3ffee730 40101878
18:46:39.041 -> 3ffffdc0: 4010240f 3ffee730 3ffee730 00040000
18:46:39.041 -> 3ffffdd0: 00000017 0fd28c13 3ffef1dc 401025ec
18:46:39.041 -> 3ffffde0: 3ffeb5c0 00000000 00000000 40100428
18:46:39.041 -> 3ffffdf0: 00000017 0fd28c13 40102aae 00000100
18:46:39.041 -> 3ffffe00: 3ffeb5c0 7fffffff 00000000 00000001
18:46:39.041 -> 3ffffe10: 00000001 00004208 00000010 ffffffff
18:46:39.041 -> 3ffffe20: 3ffeb5c0 00000000 4bc6a7f0 0fd28c13
18:46:39.041 -> 3ffffe30: 3ffeb5cc 2c9f0300 4000050c 3fffc278
18:46:39.041 -> 3ffffe40: 401027d0 3fffc200 00000022 00000000
18:46:39.076 -> 3ffffe50: 40100414 00000030 00000010 ffffffff
18:46:39.076 -> 3ffffe60: 40100449 00000001 00000000 00000000
18:46:39.076 -> 3ffffe70: 000186a0 0000d688 00000000 fffffffe
18:46:39.076 -> 3ffffe80: 00000000 3fffc6fc 00000000 3fff066c
18:46:39.076 -> 3ffffe90: 00000001 00000001 3fff067c 00000030
18:46:39.076 -> 3ffffea0: 00000001 00000001 3fff067c 00000030
18:46:39.076 -> 3ffffeb0: 00000001 00000001 00000000 00000030
18:46:39.076 -> 3ffffec0: 40100f91 40100f8c 4023477c 00000000
18:46:39.109 -> 3ffffed0: 00000000 00000000 00000000 fffffffe
18:46:39.109 -> 3ffffee0: ffffffff 3fffc6fc 00000001 3ffe85a8
18:46:39.109 -> 3ffffef0: 00000000 3fffdad0 3fff3c74 00000030
18:46:39.109 -> 3fffff00: 0000012c 3fffdad0 3fff3c74 00000030
18:46:39.109 -> 3fffff10: 00000000 4bc6a7f0 00040cf2 005b8d80
18:46:39.109 -> 3fffff20: 00000000 4bc6a7f0 00040cf2 3fff067c
18:46:39.109 -> 3fffff30: 00000000 00000000 00000001 40100428
18:46:39.147 -> 3fffff40: 00000000 00000001 3fff066c 00000001
18:46:39.147 -> 3fffff50: 00000001 3fff067c 402346af 3fffefa0
18:46:39.147 -> 3fffff60: 00000001 00000001 3fff066c 40208f3c
18:46:39.147 -> 3fffff70: 00000000 80efeffe 4023f1d8 011cd9ac
18:46:39.147 -> 3fffff80: 00000000 00000000 00000001 3fff3c74
18:46:39.147 -> 3fffff90: 3fffdad0 00000000 3fff3c34 4020aeba
18:46:39.147 -> 3fffffa0: 3fffdad0 00000000 3fff3c34 4023479c
18:46:39.147 -> <<<stack<<<

@arkhipenko
Copy link
Owner

First of all, please use the appropriate code quotes - it is difficult to read.
Secondly - where is the setup() method with scheduler init, adding tasks to the scheduler and activating them?
Thirdly - did you use the appropriate esp Exception Decoder tool to get the call stack trace of the exception? How do you know the problem is with the TaskScheduler and not other code?

@sebosfato
Copy link
Author

I tested the Async lib without the task scheduler and kind of worked fine.. .im seeing it give a lot of errors so im investigating what could be the cause…

i imagine is because it may get busy in parallel with the tasks…

here is the decoded :

Exception 29: StoreProhibited: A store referenced a page mapped with an attribute that does not permit stores
PC: 0x4000df64
EXCVADDR: 0x00000000

Decoding stack results
0x4010063c: pvPortZalloc(size_t, char const*, int) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/heap.cpp line 301
0x402345f8: loop_task(ETSEvent*) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 205
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x40246b75: glue2esp_linkoutput at glue-esp/lwip-esp.c line 301
0x40246e02: new_linkoutput at glue-lwip/lwip-git.c line 260
0x40247224: ethernet_output at netif/ethernet.c line 312
0x40240bd8: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 193
0x402450c2: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40240c05: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 194
0x402450c2: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 233
0x40244ff8: __ssputs_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 180
0x40240d30: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 246
0x40240c05: _printf_i at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 194
0x402454f3: _svfprintf_r at /home/earle/src/esp-quick-toolchain/repo/newlib/newlib/libc/stdio/nano-vfprintf.c line 667
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x40208e7c: Scheduler::execute() at /Users/devel/Documents/Arduino/libraries/TaskScheduler/src/TaskScheduler.h line 279
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x4020aea8: loop() at /Users/devel/Desktop/Gardentoy Workspace /GardenToy/pro4sfinalasync/pro4sfinalasync.ino line 5321
0x4023479c: loop_wrapper() at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 197
0x4010042c: ets_post(uint8, ETSSignal, ETSParam) at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 177
0x402346af: __yield() at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_features.h line 92
0x40208f3c: Scheduler::execute() at /Users/devel/Documents/Arduino/libraries/TaskScheduler/src/TaskScheduler.h line 1054
0x4020aeba: loop() at /Users/devel/Desktop/Gardentoy Workspace /GardenToy/pro4sfinalasync/pro4sfinalasync.ino line 5325
0x4023479c: loop_wrapper() at /Users/devel/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/cores/esp8266/core_esp8266_main.cpp line 197

@sebosfato
Copy link
Author

sebosfato commented Aug 19, 2023

The setup has this on it: its pretty much like from the original sketch
`
server.on("/generate_204", handleRoot);
server.on("/fwlink", handleRoot); //Microsoft captive portal. Maybe not needed. Might be handled by notFound handler.
server.onNotFound(handleNotFound);

WHen i try to call this it resets too:
void UPDATE() {
if (memoria==true){
updatecounter++;
if (updatecounter == 1 || updatecounter > 120){
updatecounter=2;
WiFiClient client;
HTTPClient http;

//First check version of update
http.begin(client, "http://xxx/version.php");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpCode = http.GET(); //Send the request

 Serial.println(httpCode);   //Print HTTP return code

if (httpCode == 200 && (http.getString() != "") ) {
versaoatual = http.getString();
//versaoatual.trim();
Serial.print("versaoatual ");
Serial.println(versaoatual);
// Serial.println("versao do update mais atual " + versaoatual);
// Serial.println("versao instalada " + String(versao));
// Serial.println ( "float versaoatual " + (String (versaoatual.toFloat())));
http.end();

 ESPhttpUpdate.rebootOnUpdate(false);
  Serial.println("Update Sketch...");
  ESPhttpUpdate.setLedPin(LED, LOW);
  t_httpUpdate_return Ret = ESPhttpUpdate.update(client, "http://update.xxx/final.ino.bin");
  switch (Ret) {
    case HTTP_UPDATE_FAILED:
      Serial.printf("HTTP_UPDATE_FAILD Error (%d): %s", ESPhttpUpdate.getLastError(), ESPhttpUpdate.getLastErrorString().c_str());
      break;

    case HTTP_UPDATE_NO_UPDATES:
      Serial.println("HTTP_UPDATE_NO_UPDATES");
      break;

    case HTTP_UPDATE_OK:
      versao = versaofs;
      variavel = "versao";
      valor = versao;
      POSTDATA();
      digitalWrite(LED, LOW);
      Serial.println("HTTP_UPDATE_OK");
      Serial.println("Updated Sketch ooooookkk...");
      EEPROM.put(194, versao);  // long - so 8 bytes (next address would be '12')
      digitalWrite(LED, LOW);
      EEPROM.commit();
      Serial.println("HTTP_UPDATE_OK");
      Serial.println("versao atualizada" + String(versao));
      break;
     }     
      ESP.restart();
    } Serial.println("A versao era igual a fonte");
     } else {   Serial.println("verificar versao falhou ");
      }

//http.end();
}else {
Serial.println("ja tentou update");
} }}
`

@arkhipenko
Copy link
Owner

arkhipenko commented Aug 19, 2023 via email

@arkhipenko
Copy link
Owner

@arkhipenko
Copy link
Owner

I am afraid I will not be able to help you unless you send me full code.
You send it to a r k h i p e n k o @ h o t m a i l . c o m

@sebosfato
Copy link
Author

Im trying to make a resumed version of the code that gives the error and im going to send to you… thanks a lot!

im trying to determine the problem and it may seem to be related to also other libraries so im trying to find out too..

I believe it may related to the scheduling of the tasks.. i heard the async webserver run on a task of its own so it could be interesting to find a way to associate with one of the tasks of the scheduler so it can decide when run or up to when it run…

i noticed that the wifi manager and update and http requests also is not working so it may also have caused a conflict.

I hope it may help others with same problem =)

@arkhipenko
Copy link
Owner

arkhipenko commented Aug 20, 2023 via email

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

2 participants