mirror of
https://github.com/espressif/esp-idf.git
synced 2025-09-23 01:05:14 +00:00
ESP-NETIF: easier creation for WiFi interfaces with custom parameters
Closes https://github.com/espressif/esp-idf/issues/4611 Closes IDFGH-2523
This commit is contained in:
@@ -19,10 +19,67 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
//
|
||||
// Designated initializers work differently under C++ and C compiler
|
||||
//
|
||||
#ifdef __cplusplus
|
||||
#define _ESP_NETIF_EMPTY_AGGREGATE_MEMBER(item) .item = { },
|
||||
#else
|
||||
#define _ESP_NETIF_EMPTY_AGGREGATE_MEMBER(item)
|
||||
#endif
|
||||
|
||||
//
|
||||
// Macros to assemble master configs with partial configs from netif, stack and driver
|
||||
//
|
||||
|
||||
#define ESP_NETIF_INHERENT_DEFAULT_WIFI_STA() \
|
||||
{ \
|
||||
.flags = (esp_netif_flags_t)(ESP_NETIF_DHCP_CLIENT | ESP_NETIF_FLAG_GARP | ESP_NETIF_FLAG_EVENT_IP_MODIFIED), \
|
||||
_ESP_NETIF_EMPTY_AGGREGATE_MEMBER(mac) \
|
||||
_ESP_NETIF_EMPTY_AGGREGATE_MEMBER(ip_info) \
|
||||
.get_ip_event = IP_EVENT_STA_GOT_IP, \
|
||||
.lost_ip_event = IP_EVENT_STA_LOST_IP, \
|
||||
.if_key = "WIFI_STA_DEF", \
|
||||
.if_desc = "sta", \
|
||||
.route_prio = 100 \
|
||||
} \
|
||||
|
||||
#define ESP_NETIF_INHERENT_DEFAULT_WIFI_AP() \
|
||||
{ \
|
||||
.flags = (esp_netif_flags_t)(ESP_NETIF_DHCP_SERVER | ESP_NETIF_FLAG_AUTOUP), \
|
||||
_ESP_NETIF_EMPTY_AGGREGATE_MEMBER(mac) \
|
||||
.ip_info = &_g_esp_netif_soft_ap_ip, \
|
||||
.get_ip_event = 0, \
|
||||
.lost_ip_event = 0, \
|
||||
.if_key = "WIFI_AP_DEF", \
|
||||
.if_desc = "ap", \
|
||||
.route_prio = 10 \
|
||||
};
|
||||
|
||||
#define ESP_NETIF_INHERENT_DEFAULT_ETH() \
|
||||
{ \
|
||||
.flags = (esp_netif_flags_t)(ESP_NETIF_DHCP_CLIENT | ESP_NETIF_FLAG_GARP | ESP_NETIF_FLAG_EVENT_IP_MODIFIED), \
|
||||
_ESP_NETIF_EMPTY_AGGREGATE_MEMBER(mac) \
|
||||
_ESP_NETIF_EMPTY_AGGREGATE_MEMBER(ip_info) \
|
||||
.get_ip_event = IP_EVENT_ETH_GOT_IP, \
|
||||
.lost_ip_event = 0, \
|
||||
.if_key = "ETH_DEF", \
|
||||
.if_desc = "eth", \
|
||||
.route_prio = 50 \
|
||||
};
|
||||
|
||||
#define ESP_NETIF_INHERENT_DEFAULT_PPP() \
|
||||
{ \
|
||||
.flags = ESP_NETIF_FLAG_IS_PPP, \
|
||||
_ESP_NETIF_EMPTY_AGGREGATE_MEMBER(mac) \
|
||||
_ESP_NETIF_EMPTY_AGGREGATE_MEMBER(ip_info) \
|
||||
.get_ip_event = IP_EVENT_PPP_GOT_IP, \
|
||||
.lost_ip_event = IP_EVENT_PPP_LOST_IP, \
|
||||
.if_key = "PPP_DEF", \
|
||||
.if_desc = "ppp", \
|
||||
.route_prio = 128 \
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Default configuration reference of ethernet interface
|
||||
*/
|
||||
@@ -37,7 +94,7 @@ extern "C" {
|
||||
* @brief Default configuration reference of WIFI AP
|
||||
*/
|
||||
#define ESP_NETIF_DEFAULT_WIFI_AP() \
|
||||
{ \
|
||||
{ \
|
||||
.base = ESP_NETIF_BASE_DEFAULT_WIFI_AP, \
|
||||
.driver = NULL, \
|
||||
.stack = ESP_NETIF_NETSTACK_DEFAULT_WIFI_AP, \
|
||||
@@ -109,6 +166,8 @@ extern const esp_netif_inherent_config_t _g_esp_netif_inherent_ap_config;
|
||||
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_eth_config;
|
||||
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_ppp_config;
|
||||
|
||||
extern const esp_netif_ip_info_t _g_esp_netif_soft_ap_ip;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user