Re: problem with wifi_station_scan()-SDK version:0.9.5-23-1-
Posted: Tue Nov 03, 2015 6:11 am
I must admit that I didn't check the return status but this seem to work:
Code: Select all
static void ICACHE_FLASH_ATTR wifi_station_scan_done(void *arg, STATUS status) {
uint8 ssid[33];
if (status == OK) {
struct bss_info *bss_link = (struct bss_info *)arg;
while (bss_link != NULL) {
os_memset(ssid, 0, 33);
if (os_strlen(bss_link->ssid) <= 32) {
os_memcpy(ssid, bss_link->ssid, os_strlen(bss_link->ssid));
} else {
os_memcpy(ssid, bss_link->ssid, 32);
}
os_printf("WiFi Scan: (%d,\"%s\",%d)\n", bss_link->authmode, ssid, bss_link->rssi);
bss_link = bss_link->next.stqe_next;
}
} else {
os_printf("wifi_station_scan fail %d\n", status);
}
startUp();
}
static void ICACHE_FLASH_ATTR initDone_cb() {
INFO("Start WiFi Scan\n");
wifi_set_opmode(STATION_MODE);
wifi_station_scan(NULL, wifi_station_scan_done);
}
void ICACHE_FLASH_ATTR user_init(void) {
stdout_init();
gpio_init();
wifi_station_set_auto_connect(false);
wifi_station_set_reconnect_policy(true);
easygpio_pinMode(LED, EASYGPIO_NOPULL, EASYGPIO_OUTPUT);
easygpio_outputSet(LED, 1);
easygpio_pinMode(WS2811, EASYGPIO_NOPULL, EASYGPIO_OUTPUT);
easygpio_outputSet(WS2811, 0);
easygpio_pinMode(12, EASYGPIO_NOPULL, EASYGPIO_OUTPUT);
easygpio_outputSet(12, 0);
system_init_done_cb(&initDone_cb);
}