From e2bfa471fa84db2a2d740d256ac4cca8cd4fd031 Mon Sep 17 00:00:00 2001
From: Bill Owens <owens.bill@gmail.com>
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 6911955c0..7631b9179 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 6e682bf9f..c894cf84a 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)
-- 
GitLab