mirror of
https://github.com/esphome/esphome.git
synced 2026-09-18 10:38:38 +00:00
39 lines
1.0 KiB
C++
39 lines
1.0 KiB
C++
#include "network_component.h"
|
|
|
|
#include "esphome/core/defines.h"
|
|
#ifdef USE_NETWORK
|
|
#include "esphome/core/log.h"
|
|
#ifdef USE_ESP32
|
|
#include "esp_err.h"
|
|
#include "esp_netif.h"
|
|
#include "esp_event.h"
|
|
#endif
|
|
namespace esphome {
|
|
namespace network {
|
|
|
|
static const char *const TAG = "network";
|
|
|
|
void NetworkComponent::setup() {
|
|
// Initialize ESP-IDF network interfaces and ensure the default event loop exists
|
|
#ifdef USE_ESP32
|
|
esp_err_t err;
|
|
err = esp_netif_init();
|
|
if (err != ESP_OK) {
|
|
ESP_LOGE(TAG, "esp_netif_init failed: (%d) %s", err, esp_err_to_name(err));
|
|
this->mark_failed();
|
|
return;
|
|
}
|
|
err = esp_event_loop_create_default();
|
|
// ESP_ERR_INVALID_STATE is returned if the default loop already exists,
|
|
// which is fine since we just want to make sure it exists
|
|
if (err != ESP_OK && err != ESP_ERR_INVALID_STATE) {
|
|
ESP_LOGE(TAG, "esp_event_loop_create_default failed: (%d) %s", err, esp_err_to_name(err));
|
|
this->mark_failed();
|
|
return;
|
|
}
|
|
#endif
|
|
}
|
|
} // namespace network
|
|
} // namespace esphome
|
|
#endif
|