Skip to content

Commit 686516f

Browse files
owens-billpfalcon
authored andcommitted
esp8266: Move scan from esp module to network
1 parent ea2cc2b commit 686516f

2 files changed

Lines changed: 28 additions & 29 deletions

File tree

esp8266/modesp.c

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -509,34 +509,6 @@ void error_check(bool status, const char *msg) {
509509
}
510510
}
511511

512-
STATIC void esp_scan_cb(scaninfo *si, STATUS status) {
513-
//printf("in pyb_scan_cb: %d, si=%p, si->pbss=%p\n", status, si, si->pbss);
514-
struct bss_info *bs;
515-
if (si->pbss) {
516-
STAILQ_FOREACH(bs, si->pbss, next) {
517-
mp_obj_tuple_t *t = mp_obj_new_tuple(6, NULL);
518-
t->items[0] = mp_obj_new_bytes(bs->ssid, strlen((char*)bs->ssid));
519-
t->items[1] = mp_obj_new_bytes(bs->bssid, sizeof(bs->bssid));
520-
t->items[2] = MP_OBJ_NEW_SMALL_INT(bs->channel);
521-
t->items[3] = MP_OBJ_NEW_SMALL_INT(bs->rssi);
522-
t->items[4] = MP_OBJ_NEW_SMALL_INT(bs->authmode);
523-
t->items[5] = MP_OBJ_NEW_SMALL_INT(bs->is_hidden);
524-
call_function_1_protected(MP_STATE_PORT(scan_cb_obj), t);
525-
}
526-
}
527-
}
528-
529-
STATIC mp_obj_t esp_scan(mp_obj_t cb_in) {
530-
MP_STATE_PORT(scan_cb_obj) = cb_in;
531-
if (wifi_get_opmode() == SOFTAP_MODE) {
532-
nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError,
533-
"Scan not supported in AP mode"));
534-
}
535-
wifi_station_scan(NULL, (scan_done_cb_t)esp_scan_cb);
536-
return mp_const_none;
537-
}
538-
STATIC MP_DEFINE_CONST_FUN_OBJ_1(esp_scan_obj, esp_scan);
539-
540512
STATIC mp_obj_t esp_status() {
541513
return MP_OBJ_NEW_SMALL_INT(wifi_station_get_connect_status());
542514
}
@@ -596,7 +568,6 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_flash_id_obj, esp_flash_id);
596568
STATIC const mp_map_elem_t esp_module_globals_table[] = {
597569
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_esp) },
598570

599-
{ MP_OBJ_NEW_QSTR(MP_QSTR_scan), (mp_obj_t)&esp_scan_obj },
600571
{ MP_OBJ_NEW_QSTR(MP_QSTR_status), (mp_obj_t)&esp_status_obj },
601572
{ MP_OBJ_NEW_QSTR(MP_QSTR_mac), (mp_obj_t)&esp_mac_obj },
602573
{ MP_OBJ_NEW_QSTR(MP_QSTR_getaddrinfo), (mp_obj_t)&esp_getaddrinfo_obj },

esp8266/modnetwork.c

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,33 @@ STATIC mp_obj_t esp_disconnect() {
7171
}
7272
STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_disconnect_obj, esp_disconnect);
7373

74+
STATIC void esp_scan_cb(scaninfo *si, STATUS status) {
75+
struct bss_info *bs;
76+
if (si->pbss) {
77+
STAILQ_FOREACH(bs, si->pbss, next) {
78+
mp_obj_tuple_t *t = mp_obj_new_tuple(6, NULL);
79+
t->items[0] = mp_obj_new_bytes(bs->ssid, strlen((char*)bs->ssid));
80+
t->items[1] = mp_obj_new_bytes(bs->bssid, sizeof(bs->bssid));
81+
t->items[2] = MP_OBJ_NEW_SMALL_INT(bs->channel);
82+
t->items[3] = MP_OBJ_NEW_SMALL_INT(bs->rssi);
83+
t->items[4] = MP_OBJ_NEW_SMALL_INT(bs->authmode);
84+
t->items[5] = MP_OBJ_NEW_SMALL_INT(bs->is_hidden);
85+
call_function_1_protected(MP_STATE_PORT(scan_cb_obj), t);
86+
}
87+
}
88+
}
89+
90+
STATIC mp_obj_t esp_scan(mp_obj_t cb_in) {
91+
MP_STATE_PORT(scan_cb_obj) = cb_in;
92+
if (wifi_get_opmode() == SOFTAP_MODE) {
93+
nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError,
94+
"Scan not supported in AP mode"));
95+
}
96+
wifi_station_scan(NULL, (scan_done_cb_t)esp_scan_cb);
97+
return mp_const_none;
98+
}
99+
STATIC MP_DEFINE_CONST_FUN_OBJ_1(esp_scan_obj, esp_scan);
100+
74101
STATIC const mp_map_elem_t mp_module_network_globals_table[] = {
75102
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_network) },
76103
// MicroPython "network" module interface requires it to contains classes
@@ -80,6 +107,7 @@ STATIC const mp_map_elem_t mp_module_network_globals_table[] = {
80107
{ MP_OBJ_NEW_QSTR(MP_QSTR_WLAN), (mp_obj_t)&get_module_obj },
81108
{ MP_OBJ_NEW_QSTR(MP_QSTR_connect), (mp_obj_t)&esp_connect_obj },
82109
{ MP_OBJ_NEW_QSTR(MP_QSTR_disconnect), (mp_obj_t)&esp_disconnect_obj },
110+
{ MP_OBJ_NEW_QSTR(MP_QSTR_scan), (mp_obj_t)&esp_scan_obj },
83111
};
84112

85113
STATIC MP_DEFINE_CONST_DICT(mp_module_network_globals, mp_module_network_globals_table);

0 commit comments

Comments
 (0)