#ifndef CONFIG_MANAGER_H #define CONFIG_MANAGER_H #include "esp_err.h" #include #include #ifdef __cplusplus extern "C" { #endif // WiFi AP Configuration typedef struct { char ssid[32]; char password[64]; uint8_t channel; uint8_t max_connections; char ip[16]; char gateway[16]; char netmask[16]; } custom_wifi_ap_config_t; // Ethernet Configuration typedef struct { bool dhcp_enabled; char static_ip[16]; char gateway[16]; char netmask[16]; char dns[16]; } ethernet_config_t; // Web Server Configuration typedef struct { uint16_t port; bool auth_enabled; char username[32]; char password[64]; } web_server_config_t; // Scanner Configuration typedef struct { uint32_t arp_timeout_ms; uint32_t ping_timeout_ms; uint32_t port_scan_timeout_ms; uint16_t max_ports_per_scan; uint32_t scan_interval_ms; } scanner_config_t; // Main Configuration Structure typedef struct { custom_wifi_ap_config_t wifi_ap; ethernet_config_t ethernet; web_server_config_t web_server; scanner_config_t scanner; } config_t; // Function prototypes esp_err_t config_manager_init(void); esp_err_t config_manager_load(void); esp_err_t config_manager_save(void); const config_t* config_manager_get_config(void); esp_err_t config_manager_update_wifi_ap(const custom_wifi_ap_config_t *config); esp_err_t config_manager_update_ethernet(const ethernet_config_t *config); esp_err_t config_manager_update_web_server(const web_server_config_t *config); esp_err_t config_manager_update_scanner(const scanner_config_t *config); esp_err_t config_manager_reset_to_defaults(void); // Password management functions esp_err_t config_manager_is_first_boot(bool* is_first_boot); esp_err_t config_manager_change_password(const char* username, const char* old_password, const char* new_password, bool* success); esp_err_t config_manager_change_wifi_password(const char* new_password, bool* success); #ifdef __cplusplus } #endif #endif // CONFIG_MANAGER_H