#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 #include 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;