// // Created by MightyPork on 2017/07/08. // This module handles all WiFi configuration and is interfaced // by the cgi_wifi functions. // #ifndef ESP_VT100_FIRMWARE_WIFI_MANAGER_H #define ESP_VT100_FIRMWARE_WIFI_MANAGER_H #include #include "cgi_wifi.h" #define SSID_LEN 32 #define PASSWORD_LEN 64 // Size designed for the wifi config structure // Must be constant to avoid corrupting user config after upgrade #define WIFICONF_SIZE 340 /** * A structure holding all configured WiFi parameters * and the active state. * * This block can be used eg. for WiFi config backup. */ typedef struct { WIFI_MODE opmode : 8; u8 tpw; // --- AP config --- u8 ap_channel; u8 ap_ssid[SSID_LEN]; u8 ap_password[PASSWORD_LEN]; bool ap_hidden; u16 ap_dhcp_time; // in minutes struct dhcps_lease ap_dhcp_range; struct ip_info ap_addr; // --- Client config --- u8 sta_ssid[SSID_LEN]; u8 sta_password[PASSWORD_LEN]; bool sta_dhcp_enable; struct ip_info sta_addr; u8 _filler[ WIFICONF_SIZE - 1 - 1 - 1 - SSID_LEN - PASSWORD_LEN - 1 - 2 - sizeof(struct dhcps_lease) - sizeof(struct ip_info) - SSID_LEN - PASSWORD_LEN - 1 - sizeof(struct ip_info) - 8 // padding? ]; } WiFiConfigBundle; typedef struct { bool sta; bool ap; } WiFiConfChangeFlags; extern WiFiConfChangeFlags wifi_change_flags; extern WiFiConfigBundle * const wificonf; void wifimgr_restore_defaults(void); void wifimgr_apply_settings(void); #endif //ESP_VT100_FIRMWARE_WIFI_MANAGER_H