]> granicus.if.org Git - esp-idf/commitdiff
wifi: refactor code to match ethernet's init function structure
authorKedar Sovani <kedars@gmail.com>
Thu, 17 Aug 2017 04:11:34 +0000 (09:41 +0530)
committerKedar Sovani <kedars@gmail.com>
Fri, 18 Aug 2017 03:03:02 +0000 (08:33 +0530)
components/esp32/event_default_handlers.c
components/esp32/include/esp_event.h
components/esp32/include/esp_wifi_internal.h
components/esp32/wifi_init.c [new file with mode: 0644]

index 2f671f69f6f8ea563d0a7b94c5abe2ed8afee61f..75ef164651f28477c0a663035e1fa1cf720c11c5 100644 (file)
@@ -374,7 +374,7 @@ 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)
+void esp_event_set_default_wifi_handlers()
 {
      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;
@@ -385,7 +385,6 @@ esp_err_t esp_wifi_init(wifi_init_config_t *config)
      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);
 }
 
 void esp_event_set_default_eth_handlers()
index 3000e500474233e2379822ea65d84cb1bf144f3e..5cb60dba63c7f294a28837af6a059b8b12d87c43 100644 (file)
@@ -165,6 +165,12 @@ esp_err_t esp_event_process_default(system_event_t *event);
   */
 void esp_event_set_default_eth_handlers();
 
+/**
+  * @brief  Install default event handlers for Wi-Fi interfaces (station and AP)
+  *
+  */
+void esp_event_set_default_wifi_handlers();
+
 #ifdef __cplusplus
 }
 #endif
index e86d60f7fa9407efa38fe3619f06dc16a50e43c4..6627636df04c665b52bb4fc1b577e49c3eb8e286 100644 (file)
@@ -45,6 +45,12 @@ extern "C" {
  *     Alloc resource for WiFi driver, such as WiFi control structure, RX/TX buffer,
  *     WiFi NVS structure among others.
  *
+ * For the most part, you need not call this function directly. It gets called
+ * from esp_wifi_init().
+ *
+ * This function may be called, if you only need to initialize the Wi-Fi driver
+ * without having to use the network stack on top.
+ *
  * @param  config provide WiFi init configuration
  *
  * @return
diff --git a/components/esp32/wifi_init.c b/components/esp32/wifi_init.c
new file mode 100644 (file)
index 0000000..dd155d8
--- /dev/null
@@ -0,0 +1,23 @@
+// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include <esp_event.h>
+#include <esp_wifi.h>
+#include "esp_wifi_internal.h"
+
+esp_err_t esp_wifi_init(wifi_init_config_t *config)
+{
+     esp_event_set_default_wifi_handlers();
+     return esp_wifi_init_internal(config);
+}