MQTT-Display-LaserCutter/include/web_server.h

47 lines
1.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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>
// Forward-Declaration: ESPAsyncWebServer.h nur in web_server.cpp einbinden
// (verhindert HTTP_GET/POST-Enum-Konflikt mit WiFiManager in main.cpp)
class AsyncWebServer;
class WebServerManager {
public:
WebServerManager();
// Routen registrieren und Server starten (einmalig in setup())
void begin();
private:
AsyncWebServer* _server; // PIMPL: Pointer, full type only in web_server.cpp
void registerRoutes();
// HTML-Seiten als Strings aufbauen
String buildStatusPage();
String buildConfigPage();
};
// Globale Instanz
extern WebServerManager webServer;