/* * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ /* * Common functions for protocol examples, to establish Wi-Fi or Ethernet connection. */ #pragma once #ifdef __cplusplus extern "C" { #endif #include "esp_err.h" #include "esp_netif.h" #include "esp_eth.h" #ifdef CONFIG_EXAMPLE_CONNECT_ETHERNET #define EXAMPLE_INTERFACE get_example_netif() #endif #ifdef CONFIG_EXAMPLE_CONNECT_WIFI #define EXAMPLE_INTERFACE get_example_netif() #endif #if !defined (CONFIG_EXAMPLE_CONNECT_ETHERNET) && !defined (CONFIG_EXAMPLE_CONNECT_WIFI) // This is useful for some tests which do not need a network connection #define EXAMPLE_INTERFACE NULL #endif /** * @brief Configure Wi-Fi or Ethernet, connect, wait for IP * * This all-in-one helper function is used in protocols examples to * reduce the amount of boilerplate in the example. * * It is not intended to be used in real world applications. * See examples under examples/wifi/getting_started/ and examples/ethernet/ * for more complete Wi-Fi or Ethernet initialization code. * * Read "Establishing Wi-Fi or Ethernet Connection" section in * examples/protocols/README.md for more information about this function. * * @return ESP_OK on successful connection */ esp_err_t example_connect(void); /** * Counterpart to example_connect, de-initializes Wi-Fi or Ethernet */ esp_err_t example_disconnect(void); /** * @brief Configure stdin and stdout to use blocking I/O * * This helper function is used in ASIO examples. It wraps installing the * UART driver and configuring VFS layer to use UART driver for console I/O. */ esp_err_t example_configure_stdin_stdout(void); /** * @brief Returns esp-netif pointer created by example_connect() * * @note If multiple interfaces active at once, this API return NULL * In that case the get_example_netif_from_desc() should be used * to get esp-netif pointer based on interface description */ esp_netif_t *get_example_netif(void); /** * @brief Returns esp-netif pointer created by example_connect() described by * the supplied desc field * * @param desc Textual interface of created network interface, for example "sta" * indicate default WiFi station, "eth" default Ethernet interface. * */ esp_netif_t *get_example_netif_from_desc(const char *desc); #ifdef CONFIG_EXAMPLE_CONNECT_ETHERNET /** * @brief Get the example Ethernet driver handle * * @return esp_eth_handle_t */ esp_eth_handle_t get_example_eth_handle(void); #endif // CONFIG_EXAMPLE_CONNECT_ETHERNET #ifdef __cplusplus } #endif