/** * Ported the ESP8266HTTPUpdateServer published by Arduino-core to * provide the web browser based OTA update on the ESP32 platform. * @file HTTPUpdateServer.h * @author hieromon@gmail.com * @version 0.9.10 * @date 2019-06-06 * @copyright MIT license. */ #ifndef __HTTP_UPDATE_SERVER_H #define __HTTP_UPDATE_SERVER_H #ifdef ARDUINO_ARCH_ESP32 // This class will available only EPS32 actually. class WebServer; class HTTPUpdateServer { public: explicit HTTPUpdateServer(bool serial_debug = false) : _serial_output(serial_debug), _server(nullptr), _username(_emptyString), _password(_emptyString), _authenticated(false) {} ~HTTPUpdateServer() {} void setup(WebServer* server) { setup(server, _emptyString, _emptyString); } void setup(WebServer* server, const String& path) { setup(server, path, _emptyString, _emptyString); } void setup(WebServer* server, const String& username, const String& password) { setup(server, "/update", username, password); } void setup(WebServer* server, const String& path, const String& username, const String& password); void updateCredentials(const String& username, const String& password) { _username = username; _password = password; } protected: void _setUpdaterError(); private: bool _serial_output; WebServer* _server; String _username; String _password; bool _authenticated; String _updaterError; static const String _emptyString; }; #endif // !ARDUINO_ARCH_ESP32 #endif // !__HTTP_UPDATE_SERVER_H