소스 검색

Fixed a Webpage Bug

Optimized Library and a fixed a webpage bug where, it would not display any fail reason.

- Optimized Arduino Library
- Fixed `Failed Reason` not showing on Webpage
-  Used Zopli to decrease size of webpage for better performance.
Ayush Sharma 6 년 전
부모
커밋
352d285139
4개의 변경된 파일20개의 추가작업 그리고 7개의 파일을 삭제
  1. 1 1
      examples/ESP32_Async_Demo/ESP32_Async_Demo.ino
  2. 1 1
      examples/ESP8266_Async_Demo/ESP8266_Async_Demo.ino
  3. 18 4
      src/AsyncElegantOTA.h
  4. 0 1
      src/elegantWebpage.h

+ 1 - 1
examples/ESP32_Async_Demo/ESP32_Async_Demo.ino

@@ -31,7 +31,7 @@ void setup(void) {
     request->send(200, "text/plain", "Hi! I am ESP32.");
   });
 
-  AsyncElegantOTA.begin(server);    // Start ElegantOTA
+  AsyncElegantOTA.begin(&server);    // Start ElegantOTA
   server.begin();
   Serial.println("HTTP server started");
 }

+ 1 - 1
examples/ESP8266_Async_Demo/ESP8266_Async_Demo.ino

@@ -31,7 +31,7 @@ void setup(void) {
     request->send(200, "text/plain", "Hi! I am ESP8266.");
   });
 
-  AsyncElegantOTA.begin(server);    // Start ElegantOTA
+  AsyncElegantOTA.begin(&server);    // Start ElegantOTA
   server.begin();
   Serial.println("HTTP server started");
 }

+ 18 - 4
src/AsyncElegantOTA.h

@@ -13,6 +13,8 @@
     #include <Hash.h>
     #include <AsyncTCP.h>
     #include <Update.h>
+    #include <esp_int_wdt.h>
+    #include <esp_task_wdt.h>
 #endif
 
 #include <ESPAsyncWebServer.h>
@@ -23,14 +25,16 @@
 class AsyncElegantOtaClass{
     public:
 
-        void begin(AsyncWebServer &server){
-            server.on("/update", HTTP_GET, [&](AsyncWebServerRequest *request){
+        void begin(AsyncWebServer *server){
+            _server = server;
+
+            _server->on("/update", HTTP_GET, [&](AsyncWebServerRequest *request){
                 AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", ELEGANT_HTML, ELEGANT_HTML_SIZE);
                 response->addHeader("Content-Encoding", "gzip");
                 request->send(response);
             });
 
-            server.on("/update", HTTP_POST, [&](AsyncWebServerRequest *request) {
+            _server->on("/update", HTTP_POST, [&](AsyncWebServerRequest *request) {
                 // the request handler is triggered after the upload has finished... 
                 // create the response, add header, and send response
                 AsyncWebServerResponse *response = request->beginResponse((Update.hasError())?500:200, "text/plain", (Update.hasError())?"FAIL":"OK");
@@ -74,11 +78,21 @@ class AsyncElegantOtaClass{
 
         void loop(){
             if(restartRequired){
-                ESP.restart();
+                yield();
+                delay(1000);
+                yield();
+                #if defined(ESP8266)
+                    ESP.restart();
+                #elif defined(ESP32)
+                    esp_task_wdt_init(1,true);
+                    esp_task_wdt_add(NULL);
+                    while(true);
+                #endif
             }
         }
 
     private:
+        AsyncWebServer *_server;
         bool restartRequired = false;
 
 };

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 1
src/elegantWebpage.h


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.