44 lines
1.3 KiB
C++
44 lines
1.3 KiB
C++
#pragma once
|
||
|
||
// =============================================================================
|
||
// web_server.h – HTTP-Webinterface für Statusanzeige und Konfiguration
|
||
// Projekt: MQTT-Display LaserCutter
|
||
//
|
||
// Basierend auf ESPAsyncWebServer (non-blocking, Task-safe).
|
||
//
|
||
// Routen:
|
||
// GET / – Statusseite (Session, Gesamtzeit, WLAN/MQTT-Status)
|
||
// GET /config – Konfigurationsformular (MQTT, Gratiszeit, Polarität)
|
||
// POST /config – Konfiguration speichern (NVS via SettingsManager)
|
||
// POST /reset – Gesamtzeit zurücksetzen (laserTracker.resetTotal())
|
||
// GET /update – OTA-Update-Seite (ElegantOTA)
|
||
// POST /update – Firmware-Upload (ElegantOTA)
|
||
//
|
||
// Verwendung:
|
||
// webServer.begin(); // einmalig in setup(), nach WiFi-Connect
|
||
// // kein loop() nötig – ESPAsyncWebServer ist vollständig async
|
||
// =============================================================================
|
||
|
||
#include <Arduino.h>
|
||
#include <ESPAsyncWebServer.h>
|
||
|
||
class WebServerManager {
|
||
public:
|
||
WebServerManager();
|
||
|
||
// Routen registrieren und Server starten (einmalig in setup())
|
||
void begin();
|
||
|
||
private:
|
||
AsyncWebServer _server;
|
||
|
||
void registerRoutes();
|
||
|
||
// HTML-Seiten als Strings aufbauen
|
||
String buildStatusPage();
|
||
String buildConfigPage();
|
||
};
|
||
|
||
// Globale Instanz
|
||
extern WebServerManager webServer;
|