wifi_provisioning : Added Wi-Fi Scan list feature to Provisioning Manager

List of changes in components/wifi_provisioning:
* Manager version is now v1.1
* .proto files and protocomm handler added for sending Wi-Fi scan command and receiving scan results
* Implemented handlers for wifi_scan protocomm endpoint
* Update manager context data structure to hold scan state and results
* scheme_softap now runs Wi-Fi in APSTA mode
* Wi-Fi is started in AP mode when provisioning is started. This is necessary for scan list to work
* Docs updates with information about new wifi_scan endpoint

List of changes in tools/esp_prov:
* Added functions for sending and receiving protobuf messages compatible with wifi_scan protocomm endpoint
* Added feature to display/refresh scan results and accept user selection at runtime
* New functions:
  * get_version() : only returns the protocol version string
  * has_capability() : check is a capability is present according to proto-ver response
* wifi_scan feature is provided only if the `wifi_scan` capability is present

Other changes:
* Replace recursive mutex with plain mutex
* assert on return value of mutex give / take calls
* replace all calls with macros ACQUIRE_LOCK and RELEASE_LOCK
* some checks added in scanning related private APIs
* free and nullify scanning context and state if service is stopped while ongoing scan
This commit is contained in:
Anurag Kar
2019-04-23 12:18:28 +05:30
committed by bot
parent 12f4541f19
commit 9c0ee28670
21 changed files with 3136 additions and 115 deletions

View File

@@ -54,8 +54,8 @@ static esp_err_t start_wifi_ap(const char *ssid, const char *pass)
wifi_config.ap.authmode = WIFI_AUTH_WPA_WPA2_PSK;
}
/* Start Wi-Fi in AP mode with configuration built above */
esp_err_t err = esp_wifi_set_mode(WIFI_MODE_AP);
/* Run Wi-Fi in AP + STA mode with configuration built above */
esp_err_t err = esp_wifi_set_mode(WIFI_MODE_APSTA);
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to set Wi-Fi mode : %d", err);
return err;
@@ -65,12 +65,7 @@ static esp_err_t start_wifi_ap(const char *ssid, const char *pass)
ESP_LOGE(TAG, "Failed to set Wi-Fi config : %d", err);
return err;
}
err = esp_wifi_start();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Failed to start Wi-Fi : %d", err);
return err;
}
ESP_LOGD(TAG, "Wi-Fi SoftAP started");
return ESP_OK;
}