Skip to content

Commit 06b85f9

Browse files
committed
esp32/esp8266: Support config(pm=tuple) to set extended PM values.
Support using a tuple for the "pm" config option to fine-tune the power management parameters. WLAN.config(pm=(WLAN.PM_POWERSAVE, XX), where XX is an integer which sets the listen_address wifi config parameter.
1 parent c0cffe4 commit 06b85f9

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

ports/esp32/network_wlan.c

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,21 @@ STATIC mp_obj_t network_wlan_config(size_t n_args, const mp_obj_t *args, mp_map_
509509
break;
510510
}
511511
case MP_QSTR_pm: {
512-
esp_exceptions(esp_wifi_set_ps(mp_obj_get_int(kwargs->table[i].value)));
512+
mp_obj_t arg = kwargs->table[i].value;
513+
mp_int_t pm_mode;
514+
if (!mp_obj_get_int_maybe(arg, &pm_mode)) {
515+
mp_obj_tuple_t *tuple = MP_OBJ_FROM_PTR(arg);
516+
if (mp_obj_is_type(tuple, &mp_type_tuple) && tuple->len == 2) {
517+
pm_mode = mp_obj_get_int(tuple->items[0]);
518+
cfg.sta.listen_interval = mp_obj_get_int(tuple->items[1]);
519+
if (pm_mode != WIFI_PS_MAX_MODEM) {
520+
mp_raise_ValueError(NULL);
521+
}
522+
} else {
523+
mp_raise_ValueError(NULL);
524+
}
525+
}
526+
esp_exceptions(esp_wifi_set_ps((wifi_ps_type_t)pm_mode));
513527
break;
514528
}
515529
default:

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy