limping into esp-idf v4.2.2 functionality.

This commit is contained in:
Morgan 'ARR\!' Allen 2022-02-23 22:34:23 -08:00
parent f3f5f6d7f9
commit 8286b2e3ce

View file

@ -46,26 +46,29 @@ uint8_t wifi_manager_ap_count() {
return ap_store.count; return ap_store.count;
}; };
static esp_err_t wifi_event_handler(void *ctx, system_event_t *event) { static esp_err_t wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {
ESP_LOGI(TAG, "wifi event: %d", event->event_id); ESP_LOGI(TAG, "wifi event: %d", event_id);
switch (event->event_id) { if(event_id == WIFI_EVENT_STA_START) {
case SYSTEM_EVENT_STA_START:
ESP_LOGI(TAG, "SYSTEM_EVENT_STA_START"); ESP_LOGI(TAG, "SYSTEM_EVENT_STA_START");
//ESP_ERROR_CHECK(esp_wifi_connect()); //ESP_ERROR_CHECK(esp_wifi_connect());
break; } else if(event_id == WIFI_EVENT_STA_CONNECTED) {
case SYSTEM_EVENT_STA_GOT_IP: ESP_LOGI(TAG, "WIFI_EVENT_STA_CONNECTED");
xEventGroupSetBits(wm_event_group, WIFI_CONNECTED);
} else if(event_id == IP_EVENT_STA_GOT_IP) {
ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data;
ESP_LOGI(TAG, "SYSTEM_EVENT_STA_GOT_IP"); ESP_LOGI(TAG, "SYSTEM_EVENT_STA_GOT_IP");
ESP_LOGI(TAG, "Got IP: %s\n", ESP_LOGI(TAG, "Got IP: %s\n",
ip4addr_ntoa(&event->event_info.got_ip.ip_info.ip)); ip4addr_ntoa(&event->ip_info.ip));
} else if(event_id == SYSTEM_EVENT_STA_DISCONNECTED) {
wifi_event_sta_disconnected_t *event = ( wifi_event_sta_disconnected_t*)event_data;
ESP_LOGI(TAG, "SYSTEM_EVENT_STA_DISCONNECTED: reason: %d", event->reason);
xEventGroupSetBits(wm_event_group, WIFI_CONNECTED);
break;
case SYSTEM_EVENT_STA_DISCONNECTED:
ESP_LOGI(TAG, "SYSTEM_EVENT_STA_DISCONNECTED");
xEventGroupClearBits(wm_event_group, WIFI_CONNECTED); xEventGroupClearBits(wm_event_group, WIFI_CONNECTED);
break;
case SYSTEM_EVENT_SCAN_DONE: } else if(event_id == SYSTEM_EVENT_SCAN_DONE) {
ESP_LOGI(TAG, "SYSTEM_EVENT_SCAN_DONE"); ESP_LOGI(TAG, "SYSTEM_EVENT_SCAN_DONE");
uint8_t i = 0; uint8_t i = 0;
@ -115,10 +118,7 @@ found:
} else { } else {
ESP_LOGI(TAG, "No APs found"); ESP_LOGI(TAG, "No APs found");
} }
default:
break;
} }
return ESP_OK;
return ESP_OK; return ESP_OK;
} }
@ -138,7 +138,11 @@ uint8_t wifi_manager_add_ap(char *ssid, char *password) {
}; };
void wifi_manager_scan() { void wifi_manager_scan() {
wifi_scan_config_t scan_config = { 0 }; wifi_scan_config_t scan_config = {
.ssid = &ap_store.aps[ap_store.last].ssid,
.show_hidden = true,
.scan_type = WIFI_SCAN_TYPE_ACTIVE,
};
ESP_ERROR_CHECK(esp_wifi_scan_start(&scan_config, false)); ESP_ERROR_CHECK(esp_wifi_scan_start(&scan_config, false));
@ -150,6 +154,7 @@ void wifi_manager_scan() {
void wifi_manager_connect() { void wifi_manager_connect() {
wifi_config_t wifi_config = { wifi_config_t wifi_config = {
.sta = { .sta = {
.channel = 11,
} }
}; };
@ -178,7 +183,8 @@ void wifi_manager_main_loop() {
) { ) {
ESP_LOGI(TAG, "AP Available, starting WiFi connect"); ESP_LOGI(TAG, "AP Available, starting WiFi connect");
wifi_manager_scan(); wifi_manager_connect();
//wifi_manager_scan();
vTaskDelay(10000 / portTICK_PERIOD_MS); vTaskDelay(10000 / portTICK_PERIOD_MS);
} }
@ -258,12 +264,30 @@ EventGroupHandle_t wifi_manager_start() {
wifi_manager_load_config(); wifi_manager_load_config();
tcpip_adapter_init(); ESP_ERROR_CHECK(esp_netif_init());
ESP_ERROR_CHECK(esp_event_loop_init(wifi_event_handler, NULL) ); ESP_ERROR_CHECK(esp_event_loop_create_default());
esp_netif_create_default_wifi_sta();
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
//cfg.event_handler = wifi_event_handler;
ESP_ERROR_CHECK(esp_wifi_init(&cfg)); ESP_ERROR_CHECK(esp_wifi_init(&cfg));
ESP_ERROR_CHECK(esp_wifi_start()); ESP_ERROR_CHECK(esp_wifi_start());
esp_event_handler_instance_t instance_got_ip;
esp_event_handler_instance_t instance_any_id;
ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT,
ESP_EVENT_ANY_ID,
&wifi_event_handler,
NULL,
&instance_any_id));
ESP_ERROR_CHECK(esp_event_handler_instance_register(IP_EVENT,
ESP_EVENT_ANY_ID,
&wifi_event_handler,
NULL,
&instance_got_ip));
xTaskCreate(&wifi_manager_main_loop, "wm_main_loop", 4096, NULL, 6, NULL); xTaskCreate(&wifi_manager_main_loop, "wm_main_loop", 4096, NULL, 6, NULL);
return wm_event_group; return wm_event_group;