Use cyw43_tcpip_link_status instead

This commit is contained in:
Bill Sideris 2022-10-17 18:33:32 +03:00
parent bce024f59e
commit 47c373e67e
No known key found for this signature in database
GPG Key ID: 1BEF1BCEBA58EA33

View File

@ -187,40 +187,23 @@ wifi_radio_error_t common_hal_wifi_radio_connect(wifi_radio_obj_t *self, uint8_t
break; break;
} }
int result = cyw43_wifi_link_status(&cyw43_state, CYW43_ITF_STA); int result = cyw43_tcpip_link_status(&cyw43_state, CYW43_ITF_STA);
// While the async connection is running, it will return CYW43_LINK_JOIN.
int done = 0;
switch (result) { switch (result) {
case CYW43_LINK_UP: case CYW43_LINK_UP:
done = 1; bindings_cyw43_wifi_enforce_pm();
break; return WIFI_RADIO_ERROR_NONE;
case (unsigned int)CYW43_LINK_FAIL: case CYW43_LINK_FAIL:
return WIFI_RADIO_ERROR_CONNECTION_FAIL; return WIFI_RADIO_ERROR_CONNECTION_FAIL;
case (unsigned int)CYW43_LINK_NONET: case CYW43_LINK_NONET:
return WIFI_RADIO_ERROR_NO_AP_FOUND; return WIFI_RADIO_ERROR_NO_AP_FOUND;
case (unsigned int)CYW43_LINK_BADAUTH: case CYW43_LINK_BADAUTH:
return WIFI_RADIO_ERROR_AUTH_FAIL; return WIFI_RADIO_ERROR_AUTH_FAIL;
} }
if (done == 1) {
break;
}
} }
// Being here means we either timed out or got interrupted. // Being here means we either timed out or got interrupted.
int result = cyw43_wifi_link_status(&cyw43_state, CYW43_ITF_STA); return WIFI_RADIO_ERROR_UNSPECIFIED;
switch (result) {
case CYW43_LINK_UP:
case CYW43_LINK_JOIN:
// If CYW43_LINK_JOIN wasn't here, it wouldn't work even though we have ip.
bindings_cyw43_wifi_enforce_pm();
return WIFI_RADIO_ERROR_NONE;
default:
return WIFI_RADIO_ERROR_UNSPECIFIED;
}
} }
mp_obj_t common_hal_wifi_radio_get_ap_info(wifi_radio_obj_t *self) { mp_obj_t common_hal_wifi_radio_get_ap_info(wifi_radio_obj_t *self) {