mirror of
https://github.com/mattintech/pyBTMCP.git
synced 2026-07-11 14:11:53 +00:00
Firmware: - Fixed WiFi reconnection bug after power cycle by adding WiFi.persistent(false) and disabling auto-connect/auto-reconnect - Fixed AP mode not broadcasting by properly handling WIFI_AP_STA mode transitions - Refactored to service-oriented architecture: - device_state: Central state management with event callbacks - config_service: NVS persistence (renamed from config_manager) - wifi_service: WiFi STA/AP management (extracted from main.cpp) - mqtt_service: MQTT client and message routing (extracted from main.cpp) - ble_service: BLE GATT services (renamed from ble_services) - web_service: HTTP configuration portal (renamed from web_portal) - main.cpp reduced from ~470 lines to ~60 lines (thin orchestrator) - Each service is self-contained with setup()/loop() pattern Backend: - Added heart rate variation endpoint - UI improvements Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
36 lines
745 B
C++
36 lines
745 B
C++
#ifndef WEB_SERVICE_H
|
|
#define WEB_SERVICE_H
|
|
|
|
#include <Arduino.h>
|
|
|
|
// ============================================
|
|
// Web Service
|
|
// Manages HTTP server for configuration portal
|
|
// ============================================
|
|
class WebService {
|
|
public:
|
|
static WebService& getInstance();
|
|
|
|
// Prevent copying
|
|
WebService(const WebService&) = delete;
|
|
WebService& operator=(const WebService&) = delete;
|
|
|
|
// Lifecycle
|
|
void setup();
|
|
void loop();
|
|
|
|
private:
|
|
WebService() = default;
|
|
|
|
void handleRoot();
|
|
void handleGetStatus();
|
|
void handlePostConfig();
|
|
void handleReset();
|
|
void handleResetDistance();
|
|
void handleSetBattery();
|
|
};
|
|
|
|
#define webService WebService::getInstance()
|
|
|
|
#endif // WEB_SERVICE_H
|