Hi, please I need one way to link esp_netif_init, for the soc know every moment has net.
because SDK don’t make full linker.
Maybe somethingh like this:
#include "esp_netif.h"
#include "esp_event.h"
#include "esp_log.h"
#include "lwip/ip_addr.h"
#include "mmipal.h"
static const char *TAG = "HALOW_NETIF";
static esp_netif_t *halow_esp_netif = NULL;
void halow_netif_init(void)
{
ESP_LOGI(TAG, "Inicializando esp-netif para Halow...");
// Inicializar la capa IDF si no se ha hecho
static bool idf_netif_init_done = false;
if (!idf_netif_init_done) {
ESP_ERROR_CHECK(esp_netif_init());
ESP_ERROR_CHECK(esp_event_loop_create_default());
idf_netif_init_done = true;
}
// Crear un netif tipo Ethernet (simula la interfaz)
esp_netif_config_t cfg = ESP_NETIF_DEFAULT_ETH();
halow_esp_netif = esp_netif_new(&cfg);
// Asociar el netif IDF al netif de Morse
struct mmipal_data *mm_data = mmipal_get_data();
esp_netif_attach(halow_esp_netif, &mm_data->lwip_mmnetif);
ESP_LOGI(TAG, "esp-netif asociado al Halow netif");
// Configurar callback de enlace (opcional)
esp_netif_set_status_callback(halow_esp_netif, NULL); // puedes poner un callback si quieres
}
void halow_netif_update_ip(void)
{
struct mmipal_data *mm_data = mmipal_get_data();
if (mmipal_get_link_state() != MMIPAL_LINK_UP) {
ESP_LOGW(TAG, "Link Halow no levantado todavía");
return;
}
#if LWIP_IPV4
esp_netif_ip_info_t ip_info;
ip_info.ip.addr = mm_data->lwip_mmnetif.ip_addr.addr;
ip_info.gw.addr = mm_data->lwip_mmnetif.gw.addr;
ip_info.netmask.addr = mm_data->lwip_mmnetif.netmask.addr;
// Actualizar IDF netif con la info de IP
ESP_ERROR_CHECK(esp_netif_set_ip_info(halow_esp_netif, &ip_info));
ESP_LOGI(TAG, "IP configurada en IDF: %s",
ip4addr_ntoa((const ip4_addr_t *)&ip_info.ip));
// 5️⃣ Simular evento de GOT_IP
ESP_ERROR_CHECK(esp_event_post(IP_EVENT, IP_EVENT_STA_GOT_IP,
&ip_info, sizeof(ip_info), portMAX_DELAY));
#endif
}
void app_main(void)
{
// Inicializa tu Halow hardware
appHalow();
// Inicializa netif IDF para Halow
halow_netif_init();
// Una vez que Halow tenga IP levantada, propaga a IDF
halow_netif_update_ip();
}
``` Linker esp_netif_init to SDK esp32 s3