mirror of
https://github.com/esphome/esphome.git
synced 2024-11-29 02:04:13 +01:00
wifi: Don't build SoftAP/DHCPS support unless 'ap' is in config. (#5649)
This commit is contained in:
parent
2aaee81313
commit
e367ab26e1
9 changed files with 79 additions and 12 deletions
|
@ -403,6 +403,10 @@ async def to_code(config):
|
||||||
lambda ap: cg.add(var.set_ap(wifi_network(conf, ap, ip_config))),
|
lambda ap: cg.add(var.set_ap(wifi_network(conf, ap, ip_config))),
|
||||||
)
|
)
|
||||||
cg.add(var.set_ap_timeout(conf[CONF_AP_TIMEOUT]))
|
cg.add(var.set_ap_timeout(conf[CONF_AP_TIMEOUT]))
|
||||||
|
cg.add_define("USE_WIFI_AP")
|
||||||
|
elif CORE.is_esp32 and CORE.using_esp_idf:
|
||||||
|
add_idf_sdkconfig_option("CONFIG_ESP_WIFI_SOFTAP_SUPPORT", False)
|
||||||
|
add_idf_sdkconfig_option("CONFIG_LWIP_DHCPS", False)
|
||||||
|
|
||||||
cg.add(var.set_reboot_timeout(config[CONF_REBOOT_TIMEOUT]))
|
cg.add(var.set_reboot_timeout(config[CONF_REBOOT_TIMEOUT]))
|
||||||
cg.add(var.set_power_save_mode(config[CONF_POWER_SAVE_MODE]))
|
cg.add(var.set_power_save_mode(config[CONF_POWER_SAVE_MODE]))
|
||||||
|
|
|
@ -82,6 +82,7 @@ void WiFiComponent::start() {
|
||||||
} else {
|
} else {
|
||||||
this->start_scanning();
|
this->start_scanning();
|
||||||
}
|
}
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
} else if (this->has_ap()) {
|
} else if (this->has_ap()) {
|
||||||
this->setup_ap_config_();
|
this->setup_ap_config_();
|
||||||
if (this->output_power_.has_value() && !this->wifi_apply_output_power_(*this->output_power_)) {
|
if (this->output_power_.has_value() && !this->wifi_apply_output_power_(*this->output_power_)) {
|
||||||
|
@ -94,6 +95,7 @@ void WiFiComponent::start() {
|
||||||
captive_portal::global_captive_portal->start();
|
captive_portal::global_captive_portal->start();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
}
|
}
|
||||||
#ifdef USE_IMPROV
|
#ifdef USE_IMPROV
|
||||||
if (!this->has_sta() && esp32_improv::global_improv_component != nullptr) {
|
if (!this->has_sta() && esp32_improv::global_improv_component != nullptr) {
|
||||||
|
@ -160,6 +162,7 @@ void WiFiComponent::loop() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
if (this->has_ap() && !this->ap_setup_) {
|
if (this->has_ap() && !this->ap_setup_) {
|
||||||
if (now - this->last_connected_ > this->ap_timeout_) {
|
if (now - this->last_connected_ > this->ap_timeout_) {
|
||||||
ESP_LOGI(TAG, "Starting fallback AP!");
|
ESP_LOGI(TAG, "Starting fallback AP!");
|
||||||
|
@ -170,6 +173,7 @@ void WiFiComponent::loop() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
#ifdef USE_IMPROV
|
#ifdef USE_IMPROV
|
||||||
if (esp32_improv::global_improv_component != nullptr && !esp32_improv::global_improv_component->is_active()) {
|
if (esp32_improv::global_improv_component != nullptr && !esp32_improv::global_improv_component->is_active()) {
|
||||||
|
@ -199,11 +203,16 @@ void WiFiComponent::set_fast_connect(bool fast_connect) { this->fast_connect_ =
|
||||||
void WiFiComponent::set_btm(bool btm) { this->btm_ = btm; }
|
void WiFiComponent::set_btm(bool btm) { this->btm_ = btm; }
|
||||||
void WiFiComponent::set_rrm(bool rrm) { this->rrm_ = rrm; }
|
void WiFiComponent::set_rrm(bool rrm) { this->rrm_ = rrm; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
network::IPAddress WiFiComponent::get_ip_address() {
|
network::IPAddress WiFiComponent::get_ip_address() {
|
||||||
if (this->has_sta())
|
if (this->has_sta())
|
||||||
return this->wifi_sta_ip();
|
return this->wifi_sta_ip();
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
if (this->has_ap())
|
if (this->has_ap())
|
||||||
return this->wifi_soft_ap_ip();
|
return this->wifi_soft_ap_ip();
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
network::IPAddress WiFiComponent::get_dns_address(int num) {
|
network::IPAddress WiFiComponent::get_dns_address(int num) {
|
||||||
|
@ -218,6 +227,8 @@ std::string WiFiComponent::get_use_address() const {
|
||||||
return this->use_address_;
|
return this->use_address_;
|
||||||
}
|
}
|
||||||
void WiFiComponent::set_use_address(const std::string &use_address) { this->use_address_ = use_address; }
|
void WiFiComponent::set_use_address(const std::string &use_address) { this->use_address_ = use_address; }
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
void WiFiComponent::setup_ap_config_() {
|
void WiFiComponent::setup_ap_config_() {
|
||||||
this->wifi_mode_({}, true);
|
this->wifi_mode_({}, true);
|
||||||
|
|
||||||
|
@ -255,13 +266,16 @@ void WiFiComponent::setup_ap_config_() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
float WiFiComponent::get_loop_priority() const {
|
|
||||||
return 10.0f; // before other loop components
|
|
||||||
}
|
|
||||||
void WiFiComponent::set_ap(const WiFiAP &ap) {
|
void WiFiComponent::set_ap(const WiFiAP &ap) {
|
||||||
this->ap_ = ap;
|
this->ap_ = ap;
|
||||||
this->has_ap_ = true;
|
this->has_ap_ = true;
|
||||||
}
|
}
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
|
float WiFiComponent::get_loop_priority() const {
|
||||||
|
return 10.0f; // before other loop components
|
||||||
|
}
|
||||||
|
|
||||||
void WiFiComponent::add_sta(const WiFiAP &ap) { this->sta_.push_back(ap); }
|
void WiFiComponent::add_sta(const WiFiAP &ap) { this->sta_.push_back(ap); }
|
||||||
void WiFiComponent::set_sta(const WiFiAP &ap) {
|
void WiFiComponent::set_sta(const WiFiAP &ap) {
|
||||||
this->clear_sta();
|
this->clear_sta();
|
||||||
|
|
|
@ -194,6 +194,7 @@ class WiFiComponent : public Component {
|
||||||
void add_sta(const WiFiAP &ap);
|
void add_sta(const WiFiAP &ap);
|
||||||
void clear_sta();
|
void clear_sta();
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
/** Setup an Access Point that should be created if no connection to a station can be made.
|
/** Setup an Access Point that should be created if no connection to a station can be made.
|
||||||
*
|
*
|
||||||
* This can also be used without set_sta(). Then the AP will always be active.
|
* This can also be used without set_sta(). Then the AP will always be active.
|
||||||
|
@ -203,6 +204,7 @@ class WiFiComponent : public Component {
|
||||||
*/
|
*/
|
||||||
void set_ap(const WiFiAP &ap);
|
void set_ap(const WiFiAP &ap);
|
||||||
WiFiAP get_ap() { return this->ap_; }
|
WiFiAP get_ap() { return this->ap_; }
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
void enable();
|
void enable();
|
||||||
void disable();
|
void disable();
|
||||||
|
@ -299,7 +301,11 @@ class WiFiComponent : public Component {
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static std::string format_mac_addr(const uint8_t mac[6]);
|
static std::string format_mac_addr(const uint8_t mac[6]);
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
void setup_ap_config_();
|
void setup_ap_config_();
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
void print_connect_params_();
|
void print_connect_params_();
|
||||||
|
|
||||||
void wifi_loop_();
|
void wifi_loop_();
|
||||||
|
@ -313,8 +319,12 @@ class WiFiComponent : public Component {
|
||||||
void wifi_pre_setup_();
|
void wifi_pre_setup_();
|
||||||
WiFiSTAConnectStatus wifi_sta_connect_status_();
|
WiFiSTAConnectStatus wifi_sta_connect_status_();
|
||||||
bool wifi_scan_start_(bool passive);
|
bool wifi_scan_start_(bool passive);
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
bool wifi_ap_ip_config_(optional<ManualIP> manual_ip);
|
bool wifi_ap_ip_config_(optional<ManualIP> manual_ip);
|
||||||
bool wifi_start_ap_(const WiFiAP &ap);
|
bool wifi_start_ap_(const WiFiAP &ap);
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
bool wifi_disconnect_();
|
bool wifi_disconnect_();
|
||||||
int32_t wifi_channel_();
|
int32_t wifi_channel_();
|
||||||
network::IPAddress wifi_subnet_mask_();
|
network::IPAddress wifi_subnet_mask_();
|
||||||
|
|
|
@ -597,6 +597,8 @@ void WiFiComponent::wifi_scan_done_callback_() {
|
||||||
WiFi.scanDelete();
|
WiFi.scanDelete();
|
||||||
this->scan_done_ = true;
|
this->scan_done_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
||||||
esp_err_t err;
|
esp_err_t err;
|
||||||
|
|
||||||
|
@ -654,6 +656,7 @@ bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
||||||
// enable AP
|
// enable AP
|
||||||
if (!this->wifi_mode_({}, true))
|
if (!this->wifi_mode_({}, true))
|
||||||
|
@ -692,11 +695,14 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
network::IPAddress WiFiComponent::wifi_soft_ap_ip() {
|
network::IPAddress WiFiComponent::wifi_soft_ap_ip() {
|
||||||
tcpip_adapter_ip_info_t ip;
|
tcpip_adapter_ip_info_t ip;
|
||||||
tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_AP, &ip);
|
tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_AP, &ip);
|
||||||
return network::IPAddress(&ip.ip);
|
return network::IPAddress(&ip.ip);
|
||||||
}
|
}
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
bool WiFiComponent::wifi_disconnect_() { return esp_wifi_disconnect(); }
|
bool WiFiComponent::wifi_disconnect_() { return esp_wifi_disconnect(); }
|
||||||
|
|
||||||
bssid_t WiFiComponent::wifi_bssid() {
|
bssid_t WiFiComponent::wifi_bssid() {
|
||||||
|
|
|
@ -688,6 +688,8 @@ void WiFiComponent::wifi_scan_done_callback_(void *arg, STATUS status) {
|
||||||
}
|
}
|
||||||
this->scan_done_ = true;
|
this->scan_done_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
||||||
// enable AP
|
// enable AP
|
||||||
if (!this->wifi_mode_({}, true))
|
if (!this->wifi_mode_({}, true))
|
||||||
|
@ -753,6 +755,7 @@ bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
||||||
// enable AP
|
// enable AP
|
||||||
if (!this->wifi_mode_({}, true))
|
if (!this->wifi_mode_({}, true))
|
||||||
|
@ -790,11 +793,14 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
network::IPAddress WiFiComponent::wifi_soft_ap_ip() {
|
network::IPAddress WiFiComponent::wifi_soft_ap_ip() {
|
||||||
struct ip_info ip {};
|
struct ip_info ip {};
|
||||||
wifi_get_ip_info(SOFTAP_IF, &ip);
|
wifi_get_ip_info(SOFTAP_IF, &ip);
|
||||||
return network::IPAddress(&ip.ip);
|
return network::IPAddress(&ip.ip);
|
||||||
}
|
}
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
bssid_t WiFiComponent::wifi_bssid() {
|
bssid_t WiFiComponent::wifi_bssid() {
|
||||||
bssid_t bssid{};
|
bssid_t bssid{};
|
||||||
uint8_t *raw_bssid = WiFi.BSSID();
|
uint8_t *raw_bssid = WiFi.BSSID();
|
||||||
|
|
|
@ -17,7 +17,11 @@
|
||||||
#ifdef USE_WIFI_WPA2_EAP
|
#ifdef USE_WIFI_WPA2_EAP
|
||||||
#include <esp_wpa2.h>
|
#include <esp_wpa2.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
#include "dhcpserver/dhcpserver.h"
|
#include "dhcpserver/dhcpserver.h"
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
#include "lwip/err.h"
|
#include "lwip/err.h"
|
||||||
#include "lwip/dns.h"
|
#include "lwip/dns.h"
|
||||||
|
|
||||||
|
@ -35,7 +39,11 @@ static const char *const TAG = "wifi_esp32";
|
||||||
static EventGroupHandle_t s_wifi_event_group; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
static EventGroupHandle_t s_wifi_event_group; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
static QueueHandle_t s_event_queue; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
static QueueHandle_t s_event_queue; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
static esp_netif_t *s_sta_netif = nullptr; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
static esp_netif_t *s_sta_netif = nullptr; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
static esp_netif_t *s_ap_netif = nullptr; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
static esp_netif_t *s_ap_netif = nullptr; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
static bool s_sta_started = false; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
static bool s_sta_started = false; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
static bool s_sta_connected = false; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
static bool s_sta_connected = false; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
static bool s_sta_got_ip = false; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
static bool s_sta_got_ip = false; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
|
@ -159,7 +167,11 @@ void WiFiComponent::wifi_pre_setup_() {
|
||||||
}
|
}
|
||||||
|
|
||||||
s_sta_netif = esp_netif_create_default_wifi_sta();
|
s_sta_netif = esp_netif_create_default_wifi_sta();
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
s_ap_netif = esp_netif_create_default_wifi_ap();
|
s_ap_netif = esp_netif_create_default_wifi_ap();
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
|
||||||
// cfg.nvs_enable = false;
|
// cfg.nvs_enable = false;
|
||||||
err = esp_wifi_init(&cfg);
|
err = esp_wifi_init(&cfg);
|
||||||
|
@ -761,6 +773,8 @@ bool WiFiComponent::wifi_scan_start_(bool passive) {
|
||||||
scan_done_ = false;
|
scan_done_ = false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
||||||
esp_err_t err;
|
esp_err_t err;
|
||||||
|
|
||||||
|
@ -816,6 +830,7 @@ bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
||||||
// enable AP
|
// enable AP
|
||||||
if (!this->wifi_mode_({}, true))
|
if (!this->wifi_mode_({}, true))
|
||||||
|
@ -853,6 +868,8 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
network::IPAddress WiFiComponent::wifi_soft_ap_ip() {
|
network::IPAddress WiFiComponent::wifi_soft_ap_ip() {
|
||||||
esp_netif_ip_info_t ip;
|
esp_netif_ip_info_t ip;
|
||||||
esp_netif_get_ip_info(s_sta_netif, &ip);
|
esp_netif_get_ip_info(s_sta_netif, &ip);
|
||||||
|
|
|
@ -412,6 +412,8 @@ void WiFiComponent::wifi_scan_done_callback_() {
|
||||||
WiFi.scanDelete();
|
WiFi.scanDelete();
|
||||||
this->scan_done_ = true;
|
this->scan_done_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
||||||
// enable AP
|
// enable AP
|
||||||
if (!this->wifi_mode_({}, true))
|
if (!this->wifi_mode_({}, true))
|
||||||
|
@ -423,6 +425,7 @@ bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
||||||
return WiFi.softAPConfig(IPAddress(192, 168, 4, 1), IPAddress(192, 168, 4, 1), IPAddress(255, 255, 255, 0));
|
return WiFi.softAPConfig(IPAddress(192, 168, 4, 1), IPAddress(192, 168, 4, 1), IPAddress(255, 255, 255, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
||||||
// enable AP
|
// enable AP
|
||||||
if (!this->wifi_mode_({}, true))
|
if (!this->wifi_mode_({}, true))
|
||||||
|
@ -438,7 +441,10 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
||||||
return WiFi.softAP(ap.get_ssid().c_str(), ap.get_password().empty() ? NULL : ap.get_password().c_str(),
|
return WiFi.softAP(ap.get_ssid().c_str(), ap.get_password().empty() ? NULL : ap.get_password().c_str(),
|
||||||
ap.get_channel().value_or(1), ap.get_hidden());
|
ap.get_channel().value_or(1), ap.get_hidden());
|
||||||
}
|
}
|
||||||
|
|
||||||
network::IPAddress WiFiComponent::wifi_soft_ap_ip() { return {WiFi.softAPIP()}; }
|
network::IPAddress WiFiComponent::wifi_soft_ap_ip() { return {WiFi.softAPIP()}; }
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
bool WiFiComponent::wifi_disconnect_() { return WiFi.disconnect(); }
|
bool WiFiComponent::wifi_disconnect_() { return WiFi.disconnect(); }
|
||||||
|
|
||||||
bssid_t WiFiComponent::wifi_bssid() {
|
bssid_t WiFiComponent::wifi_bssid() {
|
||||||
|
|
|
@ -138,6 +138,7 @@ bool WiFiComponent::wifi_scan_start_(bool passive) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef USE_WIFI_AP
|
||||||
bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
||||||
// TODO:
|
// TODO:
|
||||||
return false;
|
return false;
|
||||||
|
@ -151,7 +152,9 @@ bool WiFiComponent::wifi_start_ap_(const WiFiAP &ap) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
network::IPAddress WiFiComponent::wifi_soft_ap_ip() { return {(const ip_addr_t *) WiFi.localIP()}; }
|
network::IPAddress WiFiComponent::wifi_soft_ap_ip() { return {(const ip_addr_t *) WiFi.localIP()}; }
|
||||||
|
#endif // USE_WIFI_AP
|
||||||
|
|
||||||
bool WiFiComponent::wifi_disconnect_() {
|
bool WiFiComponent::wifi_disconnect_() {
|
||||||
int err = cyw43_wifi_leave(&cyw43_state, CYW43_ITF_STA);
|
int err = cyw43_wifi_leave(&cyw43_state, CYW43_ITF_STA);
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
#define USE_TOUCHSCREEN
|
#define USE_TOUCHSCREEN
|
||||||
#define USE_UART_DEBUGGER
|
#define USE_UART_DEBUGGER
|
||||||
#define USE_WIFI
|
#define USE_WIFI
|
||||||
|
#define USE_WIFI_AP
|
||||||
|
|
||||||
// Arduino-specific feature flags
|
// Arduino-specific feature flags
|
||||||
#ifdef USE_ARDUINO
|
#ifdef USE_ARDUINO
|
||||||
|
|
Loading…
Reference in a new issue