8000 esp32/8266: WLAN(): add support for set/get wifi power saving mode. · micropython/micropython@11cb259 · GitHub
[go: up one dir, main page]

Skip to content

Commit 11cb259

Browse files
committed
esp32/8266: WLAN(): add support for set/get wifi power saving mode.
For esp32 and esp8266: adds: - 'pm' option to WLAN.config() to set/get the wifi power saving mode; and - PM_NONE, PM_MIN_MODEM, PM_MAX_MODEM and PM_LIGHT_SLEEP (eps8266 only) constants to the WLAN class.
1 parent 8139cbc commit 11cb259

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

ports/esp32/network_wlan.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,10 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
494494
esp_exceptions(esp_wifi_set_protocol(self->if_id, mp_obj_get_int(kwargs->table[i].value)));
495495
break;
496496
}
497+
case MP_QSTR_pm: {
498+
esp_exceptions(esp_wifi_set_ps(mp_obj_get_int(kwargs->table[i].value)));
499+
break;
500+
}
497501
default:
498502
goto unknown;
499503
}
@@ -588,6 +592,12 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
588592
val = MP_OBJ_NEW_SMALL_INT(protocol_bitmap);
589593
break;
590594
}
595+
case MP_QSTR_pm: {
596+
wifi_ps_type_t ps_type;
597+
esp_exceptions(esp_wifi_get_ps(&ps_type));
598+
val = MP_OBJ_NEW_SMALL_INT(ps_type);
599+
break;
600+
}
591601
default:
592602
goto unknown;
593603
}
@@ -613,6 +623,11 @@ STATIC const mp_rom_map_elem_t wlan_if_locals_dict_table[] = {
613623
{ MP_ROM_QSTR(MP_QSTR_isconnected), MP_ROM_PTR(&network_wlan_isconnected_obj) },
614624
{ MP_ROM_QSTR(MP_QSTR_config), MP_ROM_PTR(&network_wlan_config_obj) },
615625
{ MP_ROM_QSTR(MP_QSTR_ifconfig), MP_ROM_PTR(&esp_ifconfig_obj) },
626+
627+
// Constants
628+
{ MP_ROM_QSTR(MP_QSTR_PS_NONE), MP_ROM_INT(WIFI_PS_NONE) },
629+
{ MP_ROM_QSTR(MP_QSTR_PS_MIN_MODEM), MP_ROM_INT(WIFI_PS_MIN_MODEM) },
630+
{ MP_ROM_QSTR(MP_QSTR_PS_MAX_MODEM), MP_ROM_INT(WIFI_PS_MAX_MODEM) },
616631
};
617632
STATIC MP_DEFINE_CONST_DICT(wlan_if_locals_dict, wlan_if_locals_dict_table);
618633

ports/esp8266/modnetwork.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,10 @@ STATIC mp_obj_t esp_config(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs
410410
wifi_set_phy_mode(mp_obj_get_int(kwargs->table[i].value));
411411
break;
412412
}
413+
case MP_QSTR_pm: {
414+
wifi_set_sleep_type(mp_obj_get_int(kwargs->table[i].value));
415+
break;
416+
}
413417
default:
414418
goto unknown;
415419
}
@@ -481,6 +485,10 @@ STATIC mp_obj_t esp_config(size_t n_args, const mp_obj_t *args, mp_map_t *kwargs
481485
val = mp_obj_new_int(wifi_get_phy_mode());
482486
break;
483487
}
488+
case MP_QSTR_pm: {
489+
val = MP_OBJ_NEW_SMALL_INT(wifi_get_sleep_type());
490+
break;
491+
}
484492
default:
485493
goto unknown;
486494
}
@@ -506,6 +514,12 @@ STATIC const mp_rom_map_elem_t wlan_if_locals_dict_table[] = {
506514
{ MP_ROM_QSTR(MP_QSTR_isconnected), MP_ROM_PTR(&esp_isconnected_obj) },
507515
{ MP_ROM_QSTR(MP_QSTR_config), MP_ROM_PTR(&esp_config_obj) },
508516
{ MP_ROM_QSTR(MP_QSTR_ifconfig), MP_ROM_PTR(&esp_ifconfig_obj) },
517+
518+
// Constants
519+
{ MP_ROM_QSTR(MP_QSTR_PM_NONE), MP_ROM_INT(NONE_SLEEP_T) },
520+
{ MP_ROM_QSTR(MP_QSTR_PM_MIN_MODEM), MP_ROM_INT(MODEM_SLEEP_T) },
521+
{ MP_ROM_QSTR(MP_QSTR_PM_MAX_MODEM), MP_ROM_INT(MODEM_SLEEP_T) },
522+
{ MP_ROM_QSTR(MP_QSTR_PM_LIGHT_SLEEP), MP_ROM_INT(LIGHT_SLEEP_T) },
509523
};
510524

511525
STATIC MP_DEFINE_CONST_DICT(wlan_if_locals_dict, wlan_if_locals_dict_table);

0 commit comments

Comments
 (0)
0