Files
SpotMicroESP32-Leika/esp32/include/ap_service.h
T
Rune Harlyk 780d178e87 Adds event bus
2026-02-01 00:26:02 +01:00

47 lines
1.1 KiB
C++

#pragma once
#include <event_bus/event_bus.h>
#include <settings/ap_settings.h>
#include <utils/timing.h>
#include <wifi/wifi_idf.h>
#include <wifi/dns_server.h>
#include <esp_timer.h>
#include <esp_http_server.h>
#include <string>
class APService {
public:
APService();
~APService();
void begin();
void loop();
void recoveryMode();
esp_err_t getStatusProto(httpd_req_t *request);
void statusProto(api_APStatus &proto);
APNetworkStatus getAPNetworkStatus();
esp_err_t getSettings(httpd_req_t *request);
esp_err_t updateSettings(httpd_req_t *request, api_Request *protoReq);
private:
static constexpr const char *TAG = "APService";
void onSettingsChanged(const api_APSettings &newSettings);
APSettings _settings = APSettings_defaults();
EventBus::Handle<api_APSettings> _settingsHandle;
DNSServer *_dnsServer;
volatile unsigned long _lastManaged;
volatile bool _reconfigureAp;
volatile bool _recoveryMode = false;
void reconfigureAP();
void manageAP();
void startAP();
void stopAP();
void handleDNS();
};