|
|
@@ -23,6 +23,7 @@
|
|
|
#include "esp_event_loop.h"
|
|
|
#include "esp_task.h"
|
|
|
#include "esp_eth.h"
|
|
|
+#include "esp_system.h"
|
|
|
|
|
|
#include "rom/ets_sys.h"
|
|
|
|
|
|
@@ -47,7 +48,6 @@ do{\
|
|
|
|
|
|
typedef esp_err_t (*system_event_handler_t)(system_event_t *e);
|
|
|
|
|
|
-#ifdef CONFIG_WIFI_ENABLED
|
|
|
static esp_err_t system_event_ap_start_handle_default(system_event_t *event);
|
|
|
static esp_err_t system_event_ap_stop_handle_default(system_event_t *event);
|
|
|
static esp_err_t system_event_sta_start_handle_default(system_event_t *event);
|
|
|
@@ -55,7 +55,6 @@ static esp_err_t system_event_sta_stop_handle_default(system_event_t *event);
|
|
|
static esp_err_t system_event_sta_connected_handle_default(system_event_t *event);
|
|
|
static esp_err_t system_event_sta_disconnected_handle_default(system_event_t *event);
|
|
|
static esp_err_t system_event_sta_got_ip_default(system_event_t *event);
|
|
|
-#endif
|
|
|
|
|
|
#ifdef CONFIG_ETHERNET
|
|
|
static esp_err_t system_event_eth_start_handle_default(system_event_t *event);
|
|
|
@@ -68,27 +67,25 @@ static esp_err_t system_event_eth_disconnected_handle_default(system_event_t *ev
|
|
|
|
|
|
Any entry in this table which is disabled by config will have a NULL handler.
|
|
|
*/
|
|
|
-static const system_event_handler_t default_event_handlers[SYSTEM_EVENT_MAX] = {
|
|
|
-#ifdef CONFIG_WIFI_ENABLED
|
|
|
+static system_event_handler_t default_event_handlers[SYSTEM_EVENT_MAX] = {
|
|
|
[SYSTEM_EVENT_WIFI_READY] = NULL,
|
|
|
[SYSTEM_EVENT_SCAN_DONE] = NULL,
|
|
|
- [SYSTEM_EVENT_STA_START] = system_event_sta_start_handle_default,
|
|
|
- [SYSTEM_EVENT_STA_STOP] = system_event_sta_stop_handle_default,
|
|
|
- [SYSTEM_EVENT_STA_CONNECTED] = system_event_sta_connected_handle_default,
|
|
|
- [SYSTEM_EVENT_STA_DISCONNECTED] = system_event_sta_disconnected_handle_default,
|
|
|
+ [SYSTEM_EVENT_STA_START] = NULL,
|
|
|
+ [SYSTEM_EVENT_STA_STOP] = NULL,
|
|
|
+ [SYSTEM_EVENT_STA_CONNECTED] = NULL,
|
|
|
+ [SYSTEM_EVENT_STA_DISCONNECTED] = NULL,
|
|
|
[SYSTEM_EVENT_STA_AUTHMODE_CHANGE] = NULL,
|
|
|
- [SYSTEM_EVENT_STA_GOT_IP] = system_event_sta_got_ip_default,
|
|
|
+ [SYSTEM_EVENT_STA_GOT_IP] = NULL,
|
|
|
[SYSTEM_EVENT_STA_WPS_ER_SUCCESS] = NULL,
|
|
|
[SYSTEM_EVENT_STA_WPS_ER_FAILED] = NULL,
|
|
|
[SYSTEM_EVENT_STA_WPS_ER_TIMEOUT] = NULL,
|
|
|
[SYSTEM_EVENT_STA_WPS_ER_PIN] = NULL,
|
|
|
- [SYSTEM_EVENT_AP_START] = system_event_ap_start_handle_default,
|
|
|
- [SYSTEM_EVENT_AP_STOP] = system_event_ap_stop_handle_default,
|
|
|
+ [SYSTEM_EVENT_AP_START] = NULL,
|
|
|
+ [SYSTEM_EVENT_AP_STOP] = NULL,
|
|
|
[SYSTEM_EVENT_AP_STACONNECTED] = NULL,
|
|
|
[SYSTEM_EVENT_AP_STADISCONNECTED] = NULL,
|
|
|
[SYSTEM_EVENT_AP_PROBEREQRECVED] = NULL,
|
|
|
[SYSTEM_EVENT_AP_STA_GOT_IP6] = NULL,
|
|
|
-#endif
|
|
|
#ifdef CONFIG_ETHERNET
|
|
|
[SYSTEM_EVENT_ETH_START] = system_event_eth_start_handle_default,
|
|
|
[SYSTEM_EVENT_ETH_STOP] = system_event_eth_stop_handle_default,
|
|
|
@@ -106,7 +103,7 @@ esp_err_t system_event_eth_start_handle_default(system_event_t *event)
|
|
|
|
|
|
esp_eth_get_mac(eth_mac);
|
|
|
tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_ETH, ð_ip);
|
|
|
- tcpip_adapter_start(TCPIP_ADAPTER_IF_ETH, eth_mac, ð_ip);
|
|
|
+ tcpip_adapter_eth_start(eth_mac, ð_ip);
|
|
|
|
|
|
return ESP_OK;
|
|
|
}
|
|
|
@@ -156,7 +153,6 @@ esp_err_t system_event_eth_disconnected_handle_default(system_event_t *event)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-#ifdef CONFIG_WIFI_ENABLED
|
|
|
static esp_err_t system_event_sta_got_ip_default(system_event_t *event)
|
|
|
{
|
|
|
WIFI_API_CALL_CHECK("esp_wifi_internal_set_sta_ip", esp_wifi_internal_set_sta_ip(), ESP_OK);
|
|
|
@@ -178,7 +174,7 @@ esp_err_t system_event_ap_start_handle_default(system_event_t *event)
|
|
|
WIFI_API_CALL_CHECK("esp_wifi_mac_get", esp_wifi_get_mac(ESP_IF_WIFI_AP, ap_mac), ESP_OK);
|
|
|
|
|
|
tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_AP, &ap_ip);
|
|
|
- tcpip_adapter_start(TCPIP_ADAPTER_IF_AP, ap_mac, &ap_ip);
|
|
|
+ tcpip_adapter_ap_start(ap_mac, &ap_ip);
|
|
|
|
|
|
return ESP_OK;
|
|
|
}
|
|
|
@@ -199,7 +195,7 @@ esp_err_t system_event_sta_start_handle_default(system_event_t *event)
|
|
|
|
|
|
WIFI_API_CALL_CHECK("esp_wifi_mac_get", esp_wifi_get_mac(ESP_IF_WIFI_STA, sta_mac), ESP_OK);
|
|
|
tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_STA, &sta_ip);
|
|
|
- tcpip_adapter_start(TCPIP_ADAPTER_IF_STA, sta_mac, &sta_ip);
|
|
|
+ tcpip_adapter_sta_start(sta_mac, &sta_ip);
|
|
|
|
|
|
return ESP_OK;
|
|
|
}
|
|
|
@@ -250,7 +246,6 @@ esp_err_t system_event_sta_disconnected_handle_default(system_event_t *event)
|
|
|
WIFI_API_CALL_CHECK("esp_wifi_internal_reg_rxcb", esp_wifi_internal_reg_rxcb(ESP_IF_WIFI_STA, NULL), ESP_OK);
|
|
|
return ESP_OK;
|
|
|
}
|
|
|
-#endif
|
|
|
|
|
|
static esp_err_t esp_system_event_debug(system_event_t *event)
|
|
|
{
|
|
|
@@ -408,3 +403,17 @@ esp_err_t esp_event_process_default(system_event_t *event)
|
|
|
}
|
|
|
return ESP_OK;
|
|
|
}
|
|
|
+
|
|
|
+esp_err_t esp_wifi_init(wifi_init_config_t *config)
|
|
|
+{
|
|
|
+ default_event_handlers[SYSTEM_EVENT_STA_START] = system_event_sta_start_handle_default;
|
|
|
+ default_event_handlers[SYSTEM_EVENT_STA_STOP] = system_event_sta_stop_handle_default;
|
|
|
+ default_event_handlers[SYSTEM_EVENT_STA_CONNECTED] = system_event_sta_connected_handle_default;
|
|
|
+ default_event_handlers[SYSTEM_EVENT_STA_DISCONNECTED] = system_event_sta_disconnected_handle_default;
|
|
|
+ default_event_handlers[SYSTEM_EVENT_STA_GOT_IP] = system_event_sta_got_ip_default;
|
|
|
+ default_event_handlers[SYSTEM_EVENT_AP_START] = system_event_ap_start_handle_default;
|
|
|
+ default_event_handlers[SYSTEM_EVENT_AP_STOP] = system_event_ap_stop_handle_default;
|
|
|
+
|
|
|
+ esp_register_shutdown_handler((shutdown_handler_t)esp_wifi_stop);
|
|
|
+ return esp_wifi_init_internal(config);
|
|
|
+}
|