|
|
|
/**
|
|
|
|
* 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
|