WiFi scan example (#265)
This commit is contained in:
parent
99628cf314
commit
dda384f3a1
2 changed files with 76 additions and 0 deletions
4
examples/wifi_scan/Makefile
Normal file
4
examples/wifi_scan/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
PROGRAM = wifi_scan
|
||||||
|
#ESPBAUD = 460800
|
||||||
|
|
||||||
|
include ../../common.mk
|
72
examples/wifi_scan/main.c
Normal file
72
examples/wifi_scan/main.c
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
/*
|
||||||
|
* WiFi scan
|
||||||
|
*
|
||||||
|
* Part of esp-open-rtos
|
||||||
|
* Copyright (C) 2016 Ruslan V. Uss <unclerus@gmail.com>
|
||||||
|
* BSD Licensed as described in the file LICENSE
|
||||||
|
*/
|
||||||
|
#include <esp/uart.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <espressif/esp_common.h>
|
||||||
|
#include <FreeRTOS.h>
|
||||||
|
#include <task.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
static const char * const auth_modes [] = {
|
||||||
|
[AUTH_OPEN] = "Open",
|
||||||
|
[AUTH_WEP] = "WEP",
|
||||||
|
[AUTH_WPA_PSK] = "WPA/PSK",
|
||||||
|
[AUTH_WPA2_PSK] = "WPA2/PSK",
|
||||||
|
[AUTH_WPA_WPA2_PSK] = "WPA/WPA2/PSK"
|
||||||
|
};
|
||||||
|
|
||||||
|
static void scan_done_cb(void *arg, sdk_scan_status_t status)
|
||||||
|
{
|
||||||
|
char ssid[33]; // max SSID length + zero byte
|
||||||
|
|
||||||
|
if (status != SCAN_OK)
|
||||||
|
{
|
||||||
|
printf("Error: WiFi scan failed\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct sdk_bss_info *bss = (struct sdk_bss_info *)arg;
|
||||||
|
// first one is invalid
|
||||||
|
bss = bss->next.stqe_next;
|
||||||
|
|
||||||
|
printf("\n----------------------------------------------------------------------------------\n");
|
||||||
|
printf(" Wi-Fi networks\n");
|
||||||
|
printf("----------------------------------------------------------------------------------\n");
|
||||||
|
|
||||||
|
while (NULL != bss)
|
||||||
|
{
|
||||||
|
size_t len = strlen((const char *)bss->ssid);
|
||||||
|
memcpy(ssid, bss->ssid, len);
|
||||||
|
ssid[len] = 0;
|
||||||
|
|
||||||
|
printf("%32s (" MACSTR ") RSSI: %02d, security: %s\n", ssid,
|
||||||
|
MAC2STR(bss->bssid), bss->rssi, auth_modes[bss->authmode]);
|
||||||
|
|
||||||
|
bss = bss->next.stqe_next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void scan_task(void *arg)
|
||||||
|
{
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
sdk_wifi_station_scan(NULL, scan_done_cb);
|
||||||
|
vTaskDelay(5000 / portTICK_PERIOD_MS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void user_init()
|
||||||
|
{
|
||||||
|
uart_set_baud(0, 115200);
|
||||||
|
printf("SDK version:%s\n\n", sdk_system_get_sdk_version());
|
||||||
|
|
||||||
|
// We can scan only in station mode
|
||||||
|
sdk_wifi_set_opmode(STATION_MODE);
|
||||||
|
|
||||||
|
xTaskCreate(scan_task, "scan", 512, NULL, 2, NULL);
|
||||||
|
}
|
Loading…
Reference in a new issue