#include #include #include #include "esp_event.h" #include "esp_log.h" #include "esp_mac.h" #include "APlib.h" static const char *TAG = "wifi AP init"; static void wifi_event_handler(void* arg, esp_event_base_t event_base,int32_t event_id, void* event_data){ if (event_id == WIFI_EVENT_AP_STACONNECTED) { wifi_event_ap_staconnected_t* event = (wifi_event_ap_staconnected_t*) event_data; ESP_LOGI(TAG, "station "MACSTR" join, AID=%d", MAC2STR(event->mac), event->aid); } else if (event_id == WIFI_EVENT_AP_STADISCONNECTED) { wifi_event_ap_stadisconnected_t* event = (wifi_event_ap_stadisconnected_t*) event_data; ESP_LOGI(TAG, "station "MACSTR" leave, AID=%d", MAC2STR(event->mac), event->aid); } } void wifi_init_softap(wifi_config_t wifi_config){ //ESP_ERROR_CHECK(esp_netif_init()); //ESP_ERROR_CHECK(esp_event_loop_create_default()); esp_netif_create_default_wifi_ap(); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); ESP_ERROR_CHECK(esp_wifi_init(&cfg)); ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL, NULL)); ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP)); ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &wifi_config)); ESP_ERROR_CHECK(esp_wifi_start()); } wifi_config_t wifi_config_generator(char SSID[32], char pass[32], uint8_t channel){ wifi_config_t config = { .ap = { .ssid_len = strlen((char*)SSID), .channel = channel, .max_connection = 10, .authmode = WIFI_AUTH_WPA_WPA2_PSK, }, }; memcpy(config.ap.ssid, SSID, 32); memcpy(config.ap.password, pass, 32); if(strlen((char*)pass) == 0) config.ap.authmode = WIFI_AUTH_OPEN; return config; }