#ifndef APSettingsConfig_h #define APSettingsConfig_h #include #include #include #define MANAGE_NETWORK_DELAY 10000 #define AP_MODE_ALWAYS 0 #define AP_MODE_DISCONNECTED 1 #define AP_MODE_NEVER 2 #define DNS_PORT 53 #define AP_DEFAULT_SSID "ESP8266-React" #define AP_DEFAULT_PASSWORD "esp-react" #define AP_SETTINGS_FILE "/config/apSettings.json" #define AP_SETTINGS_SERVICE_PATH "/rest/apSettings" class APSettings { public: uint8_t provisionMode; String ssid; String password; }; class APSettingsService : public AdminSettingsService { public: APSettingsService(AsyncWebServer* server, FS* fs, SecurityManager* securityManager); ~APSettingsService(); void begin(); void loop(); protected: void readFromJsonObject(JsonObject& root); void writeToJsonObject(JsonObject& root); void onConfigUpdated(); private: // for the mangement delay loop unsigned long _lastManaged; // for the captive portal DNSServer* _dnsServer; void reconfigureAP(); void manageAP(); void startAP(); void stopAP(); void handleDNS(); }; #endif // end APSettingsConfig_h