From e2bfa471fa84db2a2d740d256ac4cca8cd4fd031 Mon Sep 17 00:00:00 2001 From: Bill Owens Date: Mon, 22 Jun 2015 13:22:17 -0700 Subject: [PATCH] esp8266: Added wlan.isconnected() to maintain parity with other ports. --- esp8266/modnetwork.c | 13 +++++++++++++ esp8266/qstrdefsport.h | 1 + 2 files changed, 14 insertions(+) diff --git a/esp8266/modnetwork.c b/esp8266/modnetwork.c index 6911955c0b..7631b9179d 100644 --- a/esp8266/modnetwork.c +++ b/esp8266/modnetwork.c @@ -105,6 +105,18 @@ STATIC mp_obj_t esp_scan(mp_obj_t cb_in) { } STATIC MP_DEFINE_CONST_FUN_OBJ_1(esp_scan_obj, esp_scan); +/// \method isconnected() +/// Return True if connected to an AP and an IP address has been assigned, +/// false otherwise. +STATIC mp_obj_t esp_isconnected() { + if (wifi_station_get_connect_status() == STATION_GOT_IP) { + return mp_const_true; + } + return mp_const_false; +} + +STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_isconnected_obj, esp_isconnected); + STATIC const mp_map_elem_t mp_module_network_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_network) }, // MicroPython "network" module interface requires it to contains classes @@ -116,6 +128,7 @@ STATIC const mp_map_elem_t mp_module_network_globals_table[] = { { MP_OBJ_NEW_QSTR(MP_QSTR_disconnect), (mp_obj_t)&esp_disconnect_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_status), (mp_obj_t)&esp_status_obj }, { MP_OBJ_NEW_QSTR(MP_QSTR_scan), (mp_obj_t)&esp_scan_obj }, + { MP_OBJ_NEW_QSTR(MP_QSTR_isconnected), (mp_obj_t)&esp_isconnected_obj }, #if MODNETWORK_INCLUDE_CONSTANTS { MP_OBJ_NEW_QSTR(MP_QSTR_STAT_IDLE), diff --git a/esp8266/qstrdefsport.h b/esp8266/qstrdefsport.h index 6e682bf9f3..c894cf84ad 100644 --- a/esp8266/qstrdefsport.h +++ b/esp8266/qstrdefsport.h @@ -99,6 +99,7 @@ Q(network) Q(WLAN) Q(scan) Q(status) +Q(isconnected) Q(STAT_IDLE) Q(STAT_CONNECTING) Q(STAT_WRONG_PASSWORD)