소스 검색

Initial ESP32 Code

Ayush Sharma 5 년 전
부모
커밋
8df7cfc89e
1개의 변경된 파일50개의 추가작업 그리고 0개의 파일을 삭제
  1. 50 0
      src/ElegantOTA.h

+ 50 - 0
src/ElegantOTA.h

@@ -70,6 +70,53 @@ class ElegantOtaClass{
 
                     _httpUpdater.setup(server, "/update");
 				
+                }
+            }
+        #elif defined(ESP32)
+
+            void begin(WebServer *server, const char * username = "", const char * password = ""){
+                _server = server;
+
+				if(strlen(username) > 0){
+
+                    _username = username;
+                    _password = password;
+
+					_server->on("/update", HTTP_GET, [&](){
+						if (!_server->authenticate(_username.c_str(), _password.c_str())) {
+						  return _server->requestAuthentication();
+						}
+						_server->sendHeader("Content-Encoding", "gzip");
+						_server->send_P(200, "text/html", (const char*)ELEGANT_HTML, ELEGANT_HTML_SIZE);
+					});
+
+                    _server->on("/update/identity", HTTP_GET, [&](){
+                        if (!_server->authenticate(_username.c_str(), _password.c_str())) {
+						  return _server->requestAuthentication();
+						}
+
+                        #if defined(ESP8266)
+                            _server->send(200, "application/json", "{\"id\": "+_id+", \"hardware\": \"ESP8266\"}");
+                        #elif defined(ESP32)
+                            _server->send(200, "application/json", "{\"id\": "+_id+", \"hardware\": \"ESP32\"}");
+                        #endif
+					});
+
+				} else {
+
+					_server->on("/update", HTTP_GET, [&](){
+						_server->sendHeader("Content-Encoding", "gzip");
+						_server->send_P(200, "text/html", (const char*)ELEGANT_HTML, ELEGANT_HTML_SIZE);
+					});
+
+                    _server->on("/update/identity", HTTP_GET, [&](){
+                        #if defined(ESP8266)
+                            _server->send(200, "application/json", "{\"id\": "+_id+", \"hardware\": \"ESP8266\"}");
+                        #elif defined(ESP32)
+                            _server->send(200, "application/json", "{\"id\": "+_id+", \"hardware\": \"ESP32\"}");
+                        #endif
+					});
+				
                 }
             }
         #endif
@@ -79,6 +126,9 @@ class ElegantOtaClass{
             ESP8266WebServer *_server;
             ESP8266HTTPUpdateServer _httpUpdater;
         #endif
+        #if defined(ESP32)
+            WebServer *_server;
+        #endif
         String _username;
         String _password;
         String _id = String(ESP.getChipId());