Merge remote-tracking branch 'origin/main'

This commit is contained in:
Hosted Weblate 2021-11-17 19:26:45 +01:00
commit 6296a73aa9
No known key found for this signature in database
GPG Key ID: A3FAAA06E6569B4C
4 changed files with 35 additions and 8 deletions

View File

@ -2143,7 +2143,7 @@ msgid "Stack size must be at least 256"
msgstr "" msgstr ""
#: ports/espressif/common-hal/wifi/Radio.c #: ports/espressif/common-hal/wifi/Radio.c
msgid "Station must be started" msgid "Interface must be started"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c #: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c

View File

@ -112,6 +112,7 @@ mp_obj_t common_hal_wifi_radio_get_hostname(wifi_radio_obj_t *self) {
void common_hal_wifi_radio_set_hostname(wifi_radio_obj_t *self, const char *hostname) { void common_hal_wifi_radio_set_hostname(wifi_radio_obj_t *self, const char *hostname) {
esp_netif_set_hostname(self->netif, hostname); esp_netif_set_hostname(self->netif, hostname);
esp_netif_set_hostname(self->ap_netif, hostname);
} }
mp_obj_t common_hal_wifi_radio_get_mac_address(wifi_radio_obj_t *self) { mp_obj_t common_hal_wifi_radio_get_mac_address(wifi_radio_obj_t *self) {
@ -122,7 +123,7 @@ mp_obj_t common_hal_wifi_radio_get_mac_address(wifi_radio_obj_t *self) {
void common_hal_wifi_radio_set_mac_address(wifi_radio_obj_t *self, const uint8_t *mac) { void common_hal_wifi_radio_set_mac_address(wifi_radio_obj_t *self, const uint8_t *mac) {
if (!self->sta_mode) { if (!self->sta_mode) {
mp_raise_RuntimeError(translate("Station must be started")); mp_raise_RuntimeError(translate("Interface must be started"));
} }
if ((mac[0] & 0b1) == 0b1) { if ((mac[0] & 0b1) == 0b1) {
mp_raise_RuntimeError(translate("Invalid multicast MAC address")); mp_raise_RuntimeError(translate("Invalid multicast MAC address"));
@ -136,6 +137,16 @@ mp_obj_t common_hal_wifi_radio_get_mac_address_ap(wifi_radio_obj_t *self) {
return mp_obj_new_bytes(mac, MAC_ADDRESS_LENGTH); return mp_obj_new_bytes(mac, MAC_ADDRESS_LENGTH);
} }
void common_hal_wifi_radio_set_mac_address_ap(wifi_radio_obj_t *self, const uint8_t *mac) {
if (!self->ap_mode) {
mp_raise_RuntimeError(translate("Interface must be started"));
}
if ((mac[0] & 0b1) == 0b1) {
mp_raise_RuntimeError(translate("Invalid multicast MAC address"));
}
esp_wifi_set_mac(ESP_IF_WIFI_AP, mac);
}
mp_obj_t common_hal_wifi_radio_start_scanning_networks(wifi_radio_obj_t *self) { mp_obj_t common_hal_wifi_radio_start_scanning_networks(wifi_radio_obj_t *self) {
if (self->current_scan != NULL) { if (self->current_scan != NULL) {
mp_raise_RuntimeError(translate("Already scanning for wifi networks")); mp_raise_RuntimeError(translate("Already scanning for wifi networks"));

View File

@ -149,23 +149,38 @@ const mp_obj_property_t wifi_radio_mac_address_obj = {
MP_ROM_NONE }, MP_ROM_NONE },
}; };
//| mac_address_ap: bytes //| mac_address_ap: ReadableBuffer
//| """MAC address of the wifi radio access point. (read-only)""" //| """MAC address for the AP. When the address is altered after interface is started
//| the changes would only be reflected once the interface restarts."""
//| //|
STATIC mp_obj_t wifi_radio_get_mac_address_ap(mp_obj_t self) { STATIC mp_obj_t wifi_radio_get_mac_address_ap(mp_obj_t self_in) {
wifi_radio_obj_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_FROM_PTR(common_hal_wifi_radio_get_mac_address_ap(self)); return MP_OBJ_FROM_PTR(common_hal_wifi_radio_get_mac_address_ap(self));
} }
MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_mac_address_ap_obj, wifi_radio_get_mac_address_ap); MP_DEFINE_CONST_FUN_OBJ_1(wifi_radio_get_mac_address_ap_obj, wifi_radio_get_mac_address_ap);
STATIC mp_obj_t wifi_radio_set_mac_address_ap(mp_obj_t self_in, mp_obj_t mac_address_in) {
mp_buffer_info_t mac_address;
mp_get_buffer_raise(mac_address_in, &mac_address, MP_BUFFER_READ);
if (mac_address.len != MAC_ADDRESS_LENGTH) {
mp_raise_ValueError(translate("Invalid MAC address"));
}
wifi_radio_obj_t *self = MP_OBJ_TO_PTR(self_in);
common_hal_wifi_radio_set_mac_address_ap(self, mac_address.buf);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(wifi_radio_set_mac_address_ap_obj, wifi_radio_set_mac_address_ap);
const mp_obj_property_t wifi_radio_mac_address_ap_obj = { const mp_obj_property_t wifi_radio_mac_address_ap_obj = {
.base.type = &mp_type_property, .base.type = &mp_type_property,
.proxy = { (mp_obj_t)&wifi_radio_get_mac_address_ap_obj, .proxy = { (mp_obj_t)&wifi_radio_get_mac_address_ap_obj,
MP_ROM_NONE, (mp_obj_t)&wifi_radio_set_mac_address_ap_obj,
MP_ROM_NONE }, MP_ROM_NONE },
}; };
//| def start_scanning_networks(self, *, start_channel: int = 1, stop_channel: int = 11) -> Iterable[Network]: //| def start_scanning_networks(self, *, start_channel: int = 1, stop_channel: int = 11) -> Iterable[Network]:
//| """Scans for available wifi networks over the given channel range. Make sure the channels are allowed in your country.""" //| """Scans for available wifi networks over the given channel range. Make sure the channels are allowed in your country."""
//| ... //| ...

View File

@ -80,6 +80,7 @@ extern void common_hal_wifi_radio_set_hostname(wifi_radio_obj_t *self, const cha
extern mp_obj_t common_hal_wifi_radio_get_mac_address(wifi_radio_obj_t *self); extern mp_obj_t common_hal_wifi_radio_get_mac_address(wifi_radio_obj_t *self);
extern void common_hal_wifi_radio_set_mac_address(wifi_radio_obj_t *self, const uint8_t *mac); extern void common_hal_wifi_radio_set_mac_address(wifi_radio_obj_t *self, const uint8_t *mac);
extern mp_obj_t common_hal_wifi_radio_get_mac_address_ap(wifi_radio_obj_t *self); extern mp_obj_t common_hal_wifi_radio_get_mac_address_ap(wifi_radio_obj_t *self);
extern void common_hal_wifi_radio_set_mac_address_ap(wifi_radio_obj_t *self, const uint8_t *mac);
extern mp_obj_t common_hal_wifi_radio_start_scanning_networks(wifi_radio_obj_t *self); extern mp_obj_t common_hal_wifi_radio_start_scanning_networks(wifi_radio_obj_t *self);
extern void common_hal_wifi_radio_stop_scanning_networks(wifi_radio_obj_t *self); extern void common_hal_wifi_radio_stop_scanning_networks(wifi_radio_obj_t *self);