Sfoglia il codice sorgente

【添加】wlan 模块 status 功能

SummerGift 7 anni fa
parent
commit
a5881e1a7c
2 ha cambiato i file con 20 aggiunte e 18 eliminazioni
  1. 2 0
      port/genhdr/qstrdefs.generated.h
  2. 18 18
      port/network_wlan.c

+ 2 - 0
port/genhdr/qstrdefs.generated.h

@@ -705,5 +705,7 @@ QDEF(MP_QSTR_active, (const byte*)"\x69\x06" "active")
 QDEF(MP_QSTR_STA_IF, (const byte*)"\xb3\x06" "STA_IF")
 QDEF(MP_QSTR_AP_IF, (const byte*)"\x04\x05" "AP_IF")
 QDEF(MP_QSTR_bssid, (const byte*)"\x4a\x05" "bssid")
+QDEF(MP_QSTR_status, (const byte*)"\x71\x06" "status")
+QDEF(MP_QSTR_rssi, (const byte*)"\x7e\x04" "rssi")
 
 // This file was automatically generated by makeqstrdata.py

+ 18 - 18
port/network_wlan.c

@@ -160,23 +160,23 @@ STATIC mp_obj_t esp_disconnect(mp_obj_t self_in) {
 STATIC MP_DEFINE_CONST_FUN_OBJ_1(esp_disconnect_obj, esp_disconnect);
 
 STATIC mp_obj_t esp_status(size_t n_args, const mp_obj_t *args) {
-//    wlan_if_obj_t *self = MP_OBJ_TO_PTR(args[0]);
-//    if (n_args == 1) {
-//        // Get link status
-//        if (self->if_id == STATION_IF) {
-//            return MP_OBJ_NEW_SMALL_INT(wifi_station_get_connect_status());
-//        }
-//        return MP_OBJ_NEW_SMALL_INT(-1);
-//    } else {
-//        // Get specific status parameter
-//        switch (mp_obj_str_get_qstr(args[1])) {
-//            case MP_QSTR_rssi:
-//                if (self->if_id == STATION_IF) {
-//                    return MP_OBJ_NEW_SMALL_INT(wifi_station_get_rssi());
-//                }
-//        }
-//        mp_raise_ValueError("unknown status param");
-//    }
+    wlan_if_obj_t *self = MP_OBJ_TO_PTR(args[0]);
+    if (n_args == 1) {
+        // Get link status
+        if (self->if_id == STATION_IF) {
+            return MP_OBJ_NEW_SMALL_INT(rt_wlan_is_connected() == RT_TRUE);
+        }
+        return MP_OBJ_NEW_SMALL_INT(-1);
+    } else {
+        // Get specific status parameter
+        switch (mp_obj_str_get_qstr(args[1])) {
+            case MP_QSTR_rssi:
+                if (self->if_id == STATION_IF) {
+                    return MP_OBJ_NEW_SMALL_INT(rt_wlan_get_rssi());
+                }
+        }
+        mp_raise_ValueError("unknown status param");
+    }
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(esp_status_obj, 1, 2, esp_status);
 
@@ -479,7 +479,7 @@ STATIC const mp_rom_map_elem_t wlan_if_locals_dict_table[] = {
     { MP_ROM_QSTR(MP_QSTR_active), MP_ROM_PTR(&esp_active_obj) },
     { MP_ROM_QSTR(MP_QSTR_connect), MP_ROM_PTR(&esp_connect_obj) },
     { MP_ROM_QSTR(MP_QSTR_disconnect), MP_ROM_PTR(&esp_disconnect_obj) },
-//    { MP_ROM_QSTR(MP_QSTR_status), MP_ROM_PTR(&esp_status_obj) },
+    { MP_ROM_QSTR(MP_QSTR_status), MP_ROM_PTR(&esp_status_obj) },
 //    { MP_ROM_QSTR(MP_QSTR_scan), MP_ROM_PTR(&esp_scan_obj) },
     { MP_ROM_QSTR(MP_QSTR_isconnected), MP_ROM_PTR(&esp_isconnected_obj) },
 //    { MP_ROM_QSTR(MP_QSTR_config), MP_ROM_PTR(&esp_config_obj) },