37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "esp_http_server.h"
|
|
|
|
class WebServer {
|
|
public:
|
|
static WebServer& instance();
|
|
|
|
void start();
|
|
void stop();
|
|
bool isRunning() const { return server_ != nullptr; }
|
|
|
|
private:
|
|
WebServer() = default;
|
|
~WebServer();
|
|
WebServer(const WebServer&) = delete;
|
|
WebServer& operator=(const WebServer&) = delete;
|
|
|
|
httpd_handle_t server_ = nullptr;
|
|
|
|
// HTTP handlers
|
|
static esp_err_t rootHandler(httpd_req_t* req);
|
|
static esp_err_t staticFileHandler(httpd_req_t* req);
|
|
static esp_err_t imagesHandler(httpd_req_t* req);
|
|
static esp_err_t getConfigHandler(httpd_req_t* req);
|
|
static esp_err_t postConfigHandler(httpd_req_t* req);
|
|
static esp_err_t postSaveHandler(httpd_req_t* req);
|
|
static esp_err_t postResetHandler(httpd_req_t* req);
|
|
static esp_err_t getKnxAddressesHandler(httpd_req_t* req);
|
|
static esp_err_t postUsbModeHandler(httpd_req_t* req);
|
|
static esp_err_t getStatusHandler(httpd_req_t* req);
|
|
|
|
// Helper functions
|
|
static const char* getContentType(const char* filepath);
|
|
static esp_err_t sendFile(httpd_req_t* req, const char* filepath);
|
|
};
|