Skip to content

Commit 19429d3

Browse files
committed
espnow.Peer: fix argument types and default values
1 parent 7af4822 commit 19429d3

File tree

2 files changed

+9
-17
lines changed

2 files changed

+9
-17
lines changed

ports/espressif/bindings/espnow/ESPNow.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ static void espnow_check_for_deinit(espnow_obj_t *self) {
5353
//| class ESPNow:
5454
//| """Provides access to the ESP-NOW protocol."""
5555
//|
56-
//| def __init__(self, buffer_size: Optional[int], phy_rate: Optional[int]) -> None:
56+
//| def __init__(self, buffer_size: int = 526, phy_rate: Optional[int] = None) -> None:
5757
//| """Allocate and initialize `ESPNow` instance as a singleton.
5858
//|
5959
//| :param int buffer_size: The size of the internal ring buffer. Default: 526 bytes.

ports/espressif/bindings/espnow/Peer.c

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
//| def __init__(
4141
//| self,
4242
//| mac: bytes,
43+
//| *,
4344
//| lmk: Optional[bytes],
4445
//| channel: int = 0,
4546
//| interface: int = 0,
@@ -58,10 +59,10 @@ STATIC mp_obj_t espnow_peer_make_new(const mp_obj_type_t *type, size_t n_args, s
5859
enum { ARG_mac, ARG_lmk, ARG_channel, ARG_interface, ARG_encrypt };
5960
static const mp_arg_t allowed_args[] = {
6061
{ MP_QSTR_mac, MP_ARG_OBJ | MP_ARG_REQUIRED },
61-
{ MP_QSTR_lmk, MP_ARG_OBJ, { .u_obj = mp_const_none } },
62-
{ MP_QSTR_channel, MP_ARG_INT, { .u_obj = mp_const_none } },
63-
{ MP_QSTR_interface,MP_ARG_INT, { .u_obj = mp_const_none } },
64-
{ MP_QSTR_encrypt, MP_ARG_BOOL,{ .u_obj = mp_const_none } },
62+
{ MP_QSTR_lmk, MP_ARG_OBJ | MP_ARG_KW_ONLY, { .u_obj = mp_const_none } },
63+
{ MP_QSTR_channel, MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = 0 } },
64+
{ MP_QSTR_interface,MP_ARG_INT | MP_ARG_KW_ONLY, { .u_int = 0 } },
65+
{ MP_QSTR_encrypt, MP_ARG_BOOL | MP_ARG_KW_ONLY,{ .u_bool = false } },
6566
};
6667

6768
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
@@ -77,20 +78,11 @@ STATIC mp_obj_t espnow_peer_make_new(const mp_obj_type_t *type, size_t n_args, s
7778

7879
memcpy(self->peer_info.peer_addr, common_hal_espnow_get_bytes_len(args[ARG_mac].u_obj, ESP_NOW_ETH_ALEN), ESP_NOW_ETH_ALEN);
7980

80-
const mp_obj_t channel = args[ARG_channel].u_obj;
81-
if (channel != mp_const_none) {
82-
self->peer_info.channel = mp_arg_validate_int_range(mp_obj_get_int(channel), 0, 14, MP_QSTR_channel);
83-
}
81+
self->peer_info.channel = mp_arg_validate_int_range(args[ARG_channel].u_int, 0, 14, MP_QSTR_channel);
8482

85-
const mp_obj_t interface = args[ARG_interface].u_obj;
86-
if (interface != mp_const_none) {
87-
self->peer_info.ifidx = (wifi_interface_t)mp_arg_validate_int_range(mp_obj_get_int(interface), 0, 1, MP_QSTR_interface);
88-
}
83+
self->peer_info.ifidx = (wifi_interface_t)mp_arg_validate_int_range(args[ARG_interface].u_int, 0, 1, MP_QSTR_interface);
8984

90-
const mp_obj_t encrypt = args[ARG_encrypt].u_obj;
91-
if (encrypt != mp_const_none) {
92-
self->peer_info.encrypt = mp_obj_is_true(encrypt);
93-
}
85+
self->peer_info.encrypt = args[ARG_encrypt].u_bool;
9486

9587
const mp_obj_t lmk = args[ARG_lmk].u_obj;
9688
if (lmk != mp_const_none) {

0 commit comments

Comments
 (0)