void smartconfig_example_task(void * parm) { EventBits_t uxBits; ESP_ERROR_CHECK( esp_smartconfig_set_type(SC_TYPE_ESPTOUCH) ); ESP_ERROR_CHECK( esp_smartconfig_start(sc_callback) ); while (1) { uxBits = xEventGroupWaitBits(wifi_event_group, CONNECTED_BIT | ESPTOUCH_DONE_BIT, true, false, portMAX_DELAY); if(uxBits & CONNECTED_BIT) { ESP_LOGI(TAG, "WiFi Connected to ap"); } if(uxBits & ESPTOUCH_DONE_BIT) { ESP_LOGI(TAG, "smartconfig over"); esp_smartconfig_stop(); vTaskDelete(NULL); } } }
bool WiFiSTAClass::beginSmartConfig() { if (_smartConfigStarted) { return false; } if (!WiFi.mode(WIFI_STA)) { return false; } esp_wifi_disconnect(); esp_err_t err; err = esp_smartconfig_start(reinterpret_cast<sc_callback_t>(&WiFiSTAClass::_smartConfigCallback), 1); if (err == ESP_OK) { _smartConfigStarted = true; _smartConfigDone = false; return true; } return false; }