From c748437d60d24a7a36f0855d756a75aa49eb481b Mon Sep 17 00:00:00 2001 From: Phil Howard Date: Wed, 14 Apr 2021 14:24:02 +0100 Subject: [PATCH] Make set_dns more idiomatic of Python Now accepts either one or two DNS servers and uses n_args to figure out how many you supplied and pass it on. --- micropython/modules/pico_wireless/pico_wireless.c | 2 +- micropython/modules/pico_wireless/pico_wireless.cpp | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/micropython/modules/pico_wireless/pico_wireless.c b/micropython/modules/pico_wireless/pico_wireless.c index ef5c6482..fcc013d7 100644 --- a/micropython/modules/pico_wireless/pico_wireless.c +++ b/micropython/modules/pico_wireless/pico_wireless.c @@ -15,7 +15,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(picowireless_wifi_set_key_obj, 3, picowireless STATIC MP_DEFINE_CONST_FUN_OBJ_KW(picowireless_config_obj, 4, picowireless_config); -STATIC MP_DEFINE_CONST_FUN_OBJ_KW(picowireless_set_dns_obj, 3, picowireless_set_dns); +STATIC MP_DEFINE_CONST_FUN_OBJ_KW(picowireless_set_dns_obj, 1, picowireless_set_dns); STATIC MP_DEFINE_CONST_FUN_OBJ_KW(picowireless_set_hostname_obj, 1, picowireless_set_hostname); STATIC MP_DEFINE_CONST_FUN_OBJ_0(picowireless_disconnect_obj, picowireless_disconnect); diff --git a/micropython/modules/pico_wireless/pico_wireless.cpp b/micropython/modules/pico_wireless/pico_wireless.cpp index c8eb7280..45839177 100644 --- a/micropython/modules/pico_wireless/pico_wireless.cpp +++ b/micropython/modules/pico_wireless/pico_wireless.cpp @@ -194,19 +194,18 @@ mp_obj_t picowireless_config(size_t n_args, const mp_obj_t *pos_args, mp_map_t * mp_obj_t picowireless_set_dns(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) { if(wireless != nullptr) { - enum { ARG_valid_params, ARG_dns_server1, ARG_dns_server2 }; + enum { ARG_dns_server1, ARG_dns_server2 }; static const mp_arg_t allowed_args[] = { - { MP_QSTR_valid_params, MP_ARG_REQUIRED | MP_ARG_INT }, { MP_QSTR_dns_server1, MP_ARG_REQUIRED | MP_ARG_OBJ }, - { MP_QSTR_dns_server2, MP_ARG_REQUIRED | MP_ARG_OBJ }, + { MP_QSTR_dns_server2 | MP_ARG_OBJ }, }; mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); - uint8_t valid_params = args[ARG_valid_params].u_int; + uint8_t valid_params = n_args; uint32_t dns_server1 = mp_obj_to_ip(args[ARG_dns_server1].u_obj); - uint32_t dns_server2 = mp_obj_to_ip(args[ARG_dns_server2].u_obj); + uint32_t dns_server2 = n_args == 1 ? 0 : mp_obj_to_ip(args[ARG_dns_server2].u_obj); wireless->set_dns(valid_params, dns_server1, dns_server2); } else