mirror of
https://github.com/esphome/esphome.git
synced 2026-05-31 17:06:40 +08:00
[wifi] Unify ESP32 WiFi implementation to use ESP-IDF driver (#10849)
This commit is contained in:
@@ -125,8 +125,8 @@ EAP_AUTH_SCHEMA = cv.All(
|
|||||||
cv.Optional(CONF_USERNAME): cv.string_strict,
|
cv.Optional(CONF_USERNAME): cv.string_strict,
|
||||||
cv.Optional(CONF_PASSWORD): cv.string_strict,
|
cv.Optional(CONF_PASSWORD): cv.string_strict,
|
||||||
cv.Optional(CONF_CERTIFICATE_AUTHORITY): wpa2_eap.validate_certificate,
|
cv.Optional(CONF_CERTIFICATE_AUTHORITY): wpa2_eap.validate_certificate,
|
||||||
cv.SplitDefault(CONF_TTLS_PHASE_2, esp32_idf="mschapv2"): cv.All(
|
cv.SplitDefault(CONF_TTLS_PHASE_2, esp32="mschapv2"): cv.All(
|
||||||
cv.enum(TTLS_PHASE_2), cv.only_with_esp_idf
|
cv.enum(TTLS_PHASE_2), cv.only_on_esp32
|
||||||
),
|
),
|
||||||
cv.Inclusive(
|
cv.Inclusive(
|
||||||
CONF_CERTIFICATE, "certificate_and_key"
|
CONF_CERTIFICATE, "certificate_and_key"
|
||||||
@@ -280,11 +280,11 @@ CONFIG_SCHEMA = cv.All(
|
|||||||
cv.SplitDefault(CONF_OUTPUT_POWER, esp8266=20.0): cv.All(
|
cv.SplitDefault(CONF_OUTPUT_POWER, esp8266=20.0): cv.All(
|
||||||
cv.decibel, cv.float_range(min=8.5, max=20.5)
|
cv.decibel, cv.float_range(min=8.5, max=20.5)
|
||||||
),
|
),
|
||||||
cv.SplitDefault(CONF_ENABLE_BTM, esp32_idf=False): cv.All(
|
cv.SplitDefault(CONF_ENABLE_BTM, esp32=False): cv.All(
|
||||||
cv.boolean, cv.only_with_esp_idf
|
cv.boolean, cv.only_on_esp32
|
||||||
),
|
),
|
||||||
cv.SplitDefault(CONF_ENABLE_RRM, esp32_idf=False): cv.All(
|
cv.SplitDefault(CONF_ENABLE_RRM, esp32=False): cv.All(
|
||||||
cv.boolean, cv.only_with_esp_idf
|
cv.boolean, cv.only_on_esp32
|
||||||
),
|
),
|
||||||
cv.Optional(CONF_PASSIVE_SCAN, default=False): cv.boolean,
|
cv.Optional(CONF_PASSIVE_SCAN, default=False): cv.boolean,
|
||||||
cv.Optional("enable_mdns"): cv.invalid(
|
cv.Optional("enable_mdns"): cv.invalid(
|
||||||
@@ -416,10 +416,10 @@ async def to_code(config):
|
|||||||
|
|
||||||
if CORE.is_esp8266:
|
if CORE.is_esp8266:
|
||||||
cg.add_library("ESP8266WiFi", None)
|
cg.add_library("ESP8266WiFi", None)
|
||||||
elif (CORE.is_esp32 and CORE.using_arduino) or CORE.is_rp2040:
|
elif CORE.is_rp2040:
|
||||||
cg.add_library("WiFi", None)
|
cg.add_library("WiFi", None)
|
||||||
|
|
||||||
if CORE.is_esp32 and CORE.using_esp_idf:
|
if CORE.is_esp32:
|
||||||
if config[CONF_ENABLE_BTM] or config[CONF_ENABLE_RRM]:
|
if config[CONF_ENABLE_BTM] or config[CONF_ENABLE_RRM]:
|
||||||
add_idf_sdkconfig_option("CONFIG_WPA_11KV_SUPPORT", True)
|
add_idf_sdkconfig_option("CONFIG_WPA_11KV_SUPPORT", True)
|
||||||
cg.add_define("USE_WIFI_11KV_SUPPORT")
|
cg.add_define("USE_WIFI_11KV_SUPPORT")
|
||||||
@@ -506,8 +506,10 @@ async def wifi_set_sta_to_code(config, action_id, template_arg, args):
|
|||||||
|
|
||||||
FILTER_SOURCE_FILES = filter_source_files_from_platform(
|
FILTER_SOURCE_FILES = filter_source_files_from_platform(
|
||||||
{
|
{
|
||||||
"wifi_component_esp32_arduino.cpp": {PlatformFramework.ESP32_ARDUINO},
|
"wifi_component_esp_idf.cpp": {
|
||||||
"wifi_component_esp_idf.cpp": {PlatformFramework.ESP32_IDF},
|
PlatformFramework.ESP32_IDF,
|
||||||
|
PlatformFramework.ESP32_ARDUINO,
|
||||||
|
},
|
||||||
"wifi_component_esp8266.cpp": {PlatformFramework.ESP8266_ARDUINO},
|
"wifi_component_esp8266.cpp": {PlatformFramework.ESP8266_ARDUINO},
|
||||||
"wifi_component_libretiny.cpp": {
|
"wifi_component_libretiny.cpp": {
|
||||||
PlatformFramework.BK72XX_ARDUINO,
|
PlatformFramework.BK72XX_ARDUINO,
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#include <cinttypes>
|
#include <cinttypes>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#ifdef USE_ESP_IDF
|
#ifdef USE_ESP32
|
||||||
#if (ESP_IDF_VERSION_MAJOR >= 5 && ESP_IDF_VERSION_MINOR >= 1)
|
#if (ESP_IDF_VERSION_MAJOR >= 5 && ESP_IDF_VERSION_MINOR >= 1)
|
||||||
#include <esp_eap_client.h>
|
#include <esp_eap_client.h>
|
||||||
#else
|
#else
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_ESP32) || defined(USE_ESP_IDF)
|
#if defined(USE_ESP32)
|
||||||
#include <esp_wifi.h>
|
#include <esp_wifi.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_ESP8266
|
#ifdef USE_ESP8266
|
||||||
@@ -344,7 +344,7 @@ void WiFiComponent::start_connecting(const WiFiAP &ap, bool two) {
|
|||||||
ESP_LOGV(TAG, " Identity: " LOG_SECRET("'%s'"), eap_config.identity.c_str());
|
ESP_LOGV(TAG, " Identity: " LOG_SECRET("'%s'"), eap_config.identity.c_str());
|
||||||
ESP_LOGV(TAG, " Username: " LOG_SECRET("'%s'"), eap_config.username.c_str());
|
ESP_LOGV(TAG, " Username: " LOG_SECRET("'%s'"), eap_config.username.c_str());
|
||||||
ESP_LOGV(TAG, " Password: " LOG_SECRET("'%s'"), eap_config.password.c_str());
|
ESP_LOGV(TAG, " Password: " LOG_SECRET("'%s'"), eap_config.password.c_str());
|
||||||
#ifdef USE_ESP_IDF
|
#ifdef USE_ESP32
|
||||||
#if ESPHOME_LOG_LEVEL >= ESPHOME_LOG_LEVEL_VERBOSE
|
#if ESPHOME_LOG_LEVEL >= ESPHOME_LOG_LEVEL_VERBOSE
|
||||||
std::map<esp_eap_ttls_phase2_types, std::string> phase2types = {{ESP_EAP_TTLS_PHASE2_PAP, "pap"},
|
std::map<esp_eap_ttls_phase2_types, std::string> phase2types = {{ESP_EAP_TTLS_PHASE2_PAP, "pap"},
|
||||||
{ESP_EAP_TTLS_PHASE2_CHAP, "chap"},
|
{ESP_EAP_TTLS_PHASE2_CHAP, "chap"},
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USE_ESP_IDF) && defined(USE_WIFI_WPA2_EAP)
|
#if defined(USE_ESP32) && defined(USE_WIFI_WPA2_EAP)
|
||||||
#if (ESP_IDF_VERSION_MAJOR >= 5) && (ESP_IDF_VERSION_MINOR >= 1)
|
#if (ESP_IDF_VERSION_MAJOR >= 5) && (ESP_IDF_VERSION_MINOR >= 1)
|
||||||
#include <esp_eap_client.h>
|
#include <esp_eap_client.h>
|
||||||
#else
|
#else
|
||||||
@@ -113,7 +113,7 @@ struct EAPAuth {
|
|||||||
const char *client_cert;
|
const char *client_cert;
|
||||||
const char *client_key;
|
const char *client_key;
|
||||||
// used for EAP-TTLS
|
// used for EAP-TTLS
|
||||||
#ifdef USE_ESP_IDF
|
#ifdef USE_ESP32
|
||||||
esp_eap_ttls_phase2_types ttls_phase_2;
|
esp_eap_ttls_phase2_types ttls_phase_2;
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
@@ -199,7 +199,7 @@ enum WiFiPowerSaveMode : uint8_t {
|
|||||||
WIFI_POWER_SAVE_HIGH,
|
WIFI_POWER_SAVE_HIGH,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef USE_ESP_IDF
|
#ifdef USE_ESP32
|
||||||
struct IDFWiFiEvent;
|
struct IDFWiFiEvent;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -368,7 +368,7 @@ class WiFiComponent : public Component {
|
|||||||
void wifi_event_callback_(arduino_event_id_t event, arduino_event_info_t info);
|
void wifi_event_callback_(arduino_event_id_t event, arduino_event_info_t info);
|
||||||
void wifi_scan_done_callback_();
|
void wifi_scan_done_callback_();
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_ESP_IDF
|
#ifdef USE_ESP32
|
||||||
void wifi_process_event_(IDFWiFiEvent *data);
|
void wifi_process_event_(IDFWiFiEvent *data);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
|||||||
#include "wifi_component.h"
|
#include "wifi_component.h"
|
||||||
|
|
||||||
#ifdef USE_WIFI
|
#ifdef USE_WIFI
|
||||||
#ifdef USE_ESP_IDF
|
#ifdef USE_ESP32
|
||||||
|
|
||||||
#include <esp_event.h>
|
#include <esp_event.h>
|
||||||
#include <esp_netif.h>
|
#include <esp_netif.h>
|
||||||
@@ -1050,5 +1050,5 @@ network::IPAddress WiFiComponent::wifi_dns_ip_(int num) {
|
|||||||
} // namespace wifi
|
} // namespace wifi
|
||||||
} // namespace esphome
|
} // namespace esphome
|
||||||
|
|
||||||
#endif // USE_ESP_IDF
|
#endif // USE_ESP32
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user