Added HTTP-API support, Standalone AP Support and Built-in Melodies
This commit is contained in:
66
vesper/src/SettingsWebServer/SettingsWebServer.hpp
Normal file
66
vesper/src/SettingsWebServer/SettingsWebServer.hpp
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* ═══════════════════════════════════════════════════════════════════════════════════
|
||||
* SETTINGSWEBSERVER.HPP - Network Mode Settings Web Interface
|
||||
* ═══════════════════════════════════════════════════════════════════════════════════
|
||||
*
|
||||
* 🌐 SETTINGS WEB INTERFACE FOR VESPER 🌐
|
||||
*
|
||||
* Provides web interface for switching between AP and Station modes:
|
||||
* • Accessible at http://192.168.4.1/settings (AP mode)
|
||||
* • Accessible at http://{device-ip}/settings (Station mode)
|
||||
* • Toggle between AP mode and Router mode
|
||||
* • Configure WiFi credentials for router connection
|
||||
* • Reboot device with new settings
|
||||
*
|
||||
* 🏗️ ARCHITECTURE:
|
||||
* • Uses AsyncWebServer for non-blocking operation
|
||||
* • HTML interface with toggle switch
|
||||
* • Updates ConfigManager and triggers reboot
|
||||
* • Works in both AP and Station modes
|
||||
*
|
||||
* 📡 ENDPOINTS:
|
||||
* GET /settings - Settings page with mode toggle
|
||||
* POST /api/set-mode - Set network mode (AP or STA)
|
||||
* POST /api/reboot - Reboot device
|
||||
*
|
||||
* 📋 VERSION: 1.0
|
||||
* 📅 DATE: 2025-12-28
|
||||
* 👨💻 AUTHOR: Advanced Bell Systems
|
||||
* ═══════════════════════════════════════════════════════════════════════════════════
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <ESPAsyncWebServer.h>
|
||||
|
||||
// Forward declarations
|
||||
class ConfigManager;
|
||||
class Networking;
|
||||
|
||||
class SettingsWebServer {
|
||||
public:
|
||||
explicit SettingsWebServer(AsyncWebServer& server,
|
||||
ConfigManager& configManager,
|
||||
Networking& networking);
|
||||
~SettingsWebServer();
|
||||
|
||||
/**
|
||||
* @brief Initialize settings web server and register endpoints
|
||||
*/
|
||||
void begin();
|
||||
|
||||
private:
|
||||
// Dependencies
|
||||
AsyncWebServer& _server;
|
||||
ConfigManager& _configManager;
|
||||
Networking& _networking;
|
||||
|
||||
// Endpoint handlers
|
||||
void handleSettingsPage(AsyncWebServerRequest* request);
|
||||
void handleSetMode(AsyncWebServerRequest* request);
|
||||
void handleReboot(AsyncWebServerRequest* request);
|
||||
|
||||
// HTML generation
|
||||
String generateSettingsHTML();
|
||||
};
|
||||
Reference in New Issue
Block a user