forked from espressif/esp-protocols
		
	
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * 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
 |