mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	[wifi] Reduce memory usage (#9232)
This commit is contained in:
		| @@ -62,7 +62,7 @@ struct SavedWifiFastConnectSettings { | ||||
|   uint8_t channel; | ||||
| } PACKED;  // NOLINT | ||||
|  | ||||
| enum WiFiComponentState { | ||||
| enum WiFiComponentState : uint8_t { | ||||
|   /** Nothing has been initialized yet. Internal AP, if configured, is disabled at this point. */ | ||||
|   WIFI_COMPONENT_STATE_OFF = 0, | ||||
|   /** WiFi is disabled. */ | ||||
| @@ -146,14 +146,14 @@ class WiFiAP { | ||||
|  | ||||
|  protected: | ||||
|   std::string ssid_; | ||||
|   optional<bssid_t> bssid_; | ||||
|   std::string password_; | ||||
|   optional<bssid_t> bssid_; | ||||
| #ifdef USE_WIFI_WPA2_EAP | ||||
|   optional<EAPAuth> eap_; | ||||
| #endif  // USE_WIFI_WPA2_EAP | ||||
|   optional<uint8_t> channel_; | ||||
|   float priority_{0}; | ||||
|   optional<ManualIP> manual_ip_; | ||||
|   float priority_{0}; | ||||
|   optional<uint8_t> channel_; | ||||
|   bool hidden_{false}; | ||||
| }; | ||||
|  | ||||
| @@ -177,14 +177,14 @@ class WiFiScanResult { | ||||
|   bool operator==(const WiFiScanResult &rhs) const; | ||||
|  | ||||
|  protected: | ||||
|   bool matches_{false}; | ||||
|   bssid_t bssid_; | ||||
|   std::string ssid_; | ||||
|   float priority_{0.0f}; | ||||
|   uint8_t channel_; | ||||
|   int8_t rssi_; | ||||
|   bool matches_{false}; | ||||
|   bool with_auth_; | ||||
|   bool is_hidden_; | ||||
|   float priority_{0.0f}; | ||||
| }; | ||||
|  | ||||
| struct WiFiSTAPriority { | ||||
| @@ -192,7 +192,7 @@ struct WiFiSTAPriority { | ||||
|   float priority; | ||||
| }; | ||||
|  | ||||
| enum WiFiPowerSaveMode { | ||||
| enum WiFiPowerSaveMode : uint8_t { | ||||
|   WIFI_POWER_SAVE_NONE = 0, | ||||
|   WIFI_POWER_SAVE_LIGHT, | ||||
|   WIFI_POWER_SAVE_HIGH, | ||||
| @@ -383,28 +383,36 @@ class WiFiComponent : public Component { | ||||
|   std::string use_address_; | ||||
|   std::vector<WiFiAP> sta_; | ||||
|   std::vector<WiFiSTAPriority> sta_priorities_; | ||||
|   std::vector<WiFiScanResult> scan_result_; | ||||
|   WiFiAP selected_ap_; | ||||
|   bool fast_connect_{false}; | ||||
|   bool retry_hidden_{false}; | ||||
|  | ||||
|   bool has_ap_{false}; | ||||
|   WiFiAP ap_; | ||||
|   WiFiComponentState state_{WIFI_COMPONENT_STATE_OFF}; | ||||
|   bool handled_connected_state_{false}; | ||||
|   optional<float> output_power_; | ||||
|   ESPPreferenceObject pref_; | ||||
|   ESPPreferenceObject fast_connect_pref_; | ||||
|  | ||||
|   // Group all 32-bit integers together | ||||
|   uint32_t action_started_; | ||||
|   uint8_t num_retried_{0}; | ||||
|   uint32_t last_connected_{0}; | ||||
|   uint32_t reboot_timeout_{}; | ||||
|   uint32_t ap_timeout_{}; | ||||
|  | ||||
|   // Group all 8-bit values together | ||||
|   WiFiComponentState state_{WIFI_COMPONENT_STATE_OFF}; | ||||
|   WiFiPowerSaveMode power_save_{WIFI_POWER_SAVE_NONE}; | ||||
|   uint8_t num_retried_{0}; | ||||
| #if USE_NETWORK_IPV6 | ||||
|   uint8_t num_ipv6_addresses_{0}; | ||||
| #endif /* USE_NETWORK_IPV6 */ | ||||
|  | ||||
|   // Group all boolean values together | ||||
|   bool fast_connect_{false}; | ||||
|   bool retry_hidden_{false}; | ||||
|   bool has_ap_{false}; | ||||
|   bool handled_connected_state_{false}; | ||||
|   bool error_from_callback_{false}; | ||||
|   std::vector<WiFiScanResult> scan_result_; | ||||
|   bool scan_done_{false}; | ||||
|   bool ap_setup_{false}; | ||||
|   optional<float> output_power_; | ||||
|   bool passive_scan_{false}; | ||||
|   ESPPreferenceObject pref_; | ||||
|   ESPPreferenceObject fast_connect_pref_; | ||||
|   bool has_saved_wifi_settings_{false}; | ||||
| #ifdef USE_WIFI_11KV_SUPPORT | ||||
|   bool btm_{false}; | ||||
| @@ -412,10 +420,8 @@ class WiFiComponent : public Component { | ||||
| #endif | ||||
|   bool enable_on_boot_; | ||||
|   bool got_ipv4_address_{false}; | ||||
| #if USE_NETWORK_IPV6 | ||||
|   uint8_t num_ipv6_addresses_{0}; | ||||
| #endif /* USE_NETWORK_IPV6 */ | ||||
|  | ||||
|   // Pointers at the end (naturally aligned) | ||||
|   Trigger<> *connect_trigger_{new Trigger<>()}; | ||||
|   Trigger<> *disconnect_trigger_{new Trigger<>()}; | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user