Skip to content

Commit a77966a

Browse files
committed
Try to reuse/share existing objects
1 parent 2fa269c commit a77966a

File tree

2 files changed

+11
-15
lines changed

2 files changed

+11
-15
lines changed

ports/esp32s2/common-hal/wifi/Radio.c

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -153,49 +153,43 @@ mp_obj_t common_hal_wifi_radio_get_ap_rssi(wifi_radio_obj_t *self) {
153153
}
154154

155155
// Make sure the interface is in STA mode
156-
wifi_mode_t if_mode;
157-
esp_wifi_get_mode(&if_mode);
158-
if (if_mode != WIFI_MODE_STA){
156+
if (self->sta_mode){
159157
return mp_const_none;
160158
}
161159

162-
wifi_ap_record_t ap_info;
163160
// From esp_wifi.h, the possible return values (typos theirs):
164161
// ESP_OK: succeed
165162
// ESP_ERR_WIFI_CONN: The station interface don't initialized
166163
// ESP_ERR_WIFI_NOT_CONNECT: The station is in disconnect status
167-
if (esp_wifi_sta_get_ap_info(&ap_info) != ESP_OK){
164+
if (esp_wifi_sta_get_ap_info(&self->ap_info) != ESP_OK){
168165
return mp_const_none;
169166
} else {
170-
return mp_obj_new_int(ap_info.rssi);
167+
return mp_obj_new_int(self->ap_info.rssi);
171168
}
172169
}
173170

174171
mp_obj_t common_hal_wifi_radio_get_ipv4_gateway(wifi_radio_obj_t *self) {
175172
if (!esp_netif_is_netif_up(self->netif)) {
176173
return mp_const_none;
177174
}
178-
esp_netif_ip_info_t ip_info;
179-
esp_netif_get_ip_info(self->netif, &ip_info);
180-
return common_hal_ipaddress_new_ipv4address(ip_info.gw.addr);
175+
esp_netif_get_ip_info(self->netif, &self->ip_info);
176+
return common_hal_ipaddress_new_ipv4address(self->ip_info.gw.addr);
181177
}
182178

183179
mp_obj_t common_hal_wifi_radio_get_ipv4_subnet(wifi_radio_obj_t *self) {
184180
if (!esp_netif_is_netif_up(self->netif)) {
185181
return mp_const_none;
186182
}
187-
esp_netif_ip_info_t ip_info;
188-
esp_netif_get_ip_info(self->netif, &ip_info);
189-
return common_hal_ipaddress_new_ipv4address(ip_info.netmask.addr);
183+
esp_netif_get_ip_info(self->netif, &self->ip_info);
184+
return common_hal_ipaddress_new_ipv4address(self->ip_info.netmask.addr);
190185
}
191186

192187
mp_obj_t common_hal_wifi_radio_get_ipv4_address(wifi_radio_obj_t *self) {
193188
if (!esp_netif_is_netif_up(self->netif)) {
194189
return mp_const_none;
195190
}
196-
esp_netif_ip_info_t ip_info;
197-
esp_netif_get_ip_info(self->netif, &ip_info);
198-
return common_hal_ipaddress_new_ipv4address(ip_info.ip.addr);
191+
esp_netif_get_ip_info(self->netif, &self->ip_info);
192+
return common_hal_ipaddress_new_ipv4address(self->ip_info.ip.addr);
199193
}
200194

201195
mp_int_t common_hal_wifi_radio_ping(wifi_radio_obj_t *self, mp_obj_t ip_address, mp_float_t timeout) {

ports/esp32s2/common-hal/wifi/Radio.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ typedef struct {
4646
StaticEventGroup_t event_group;
4747
EventGroupHandle_t event_group_handle;
4848
wifi_config_t sta_config;
49+
wifi_ap_record_t ap_info;
50+
esp_netif_ip_info_t ip_info;
4951
esp_netif_t *netif;
5052
bool started;
5153
bool ap_mode;

0 commit comments

Comments
 (0)