mirror of
https://github.com/espressif/arduino-esp32
synced 2024-09-21 10:28:04 +00:00
fix(wifi): Fix WiFi setTxPower and getTxPower (#9862)
* fix(wifi): Fix WiFi setTxPower and getTxPower We need to wait for the interface to be started in order to be able to set/get TX Power. Code was returning too early, so calling the functions after `begin()` resulted in failure. * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
This commit is contained in:
parent
5c22402025
commit
c43187a386
@ -187,6 +187,10 @@ bool APClass::begin() {
|
||||
log_e("AP enable failed!");
|
||||
return false;
|
||||
}
|
||||
if (!waitStatusBits(ESP_NETIF_STARTED_BIT, 1000)) {
|
||||
log_e("Failed to start AP!");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -298,6 +298,10 @@ bool STAClass::begin(bool tryConnect) {
|
||||
log_e("STA enable failed!");
|
||||
return false;
|
||||
}
|
||||
if (!waitStatusBits(ESP_NETIF_STARTED_BIT, 1000)) {
|
||||
log_e("Failed to start STA!");
|
||||
return false;
|
||||
}
|
||||
if (tryConnect) {
|
||||
return connect();
|
||||
}
|
||||
|
@ -639,7 +639,11 @@ bool WiFiGenericClass::setTxPower(wifi_power_t power) {
|
||||
log_w("Neither AP or STA has been started");
|
||||
return false;
|
||||
}
|
||||
return esp_wifi_set_max_tx_power(power) == ESP_OK;
|
||||
esp_err_t err = esp_wifi_set_max_tx_power(power);
|
||||
if (err != ESP_OK) {
|
||||
log_e("Failed to set TX Power: 0x%x: %s", err, esp_err_to_name(err));
|
||||
}
|
||||
return err == ESP_OK;
|
||||
}
|
||||
|
||||
wifi_power_t WiFiGenericClass::getTxPower() {
|
||||
@ -648,7 +652,9 @@ wifi_power_t WiFiGenericClass::getTxPower() {
|
||||
log_w("Neither AP or STA has been started");
|
||||
return WIFI_POWER_19_5dBm;
|
||||
}
|
||||
if (esp_wifi_get_max_tx_power(&power)) {
|
||||
esp_err_t err = esp_wifi_get_max_tx_power(&power);
|
||||
if (err != ESP_OK) {
|
||||
log_e("Failed to get TX Power: 0x%x: %s", err, esp_err_to_name(err));
|
||||
return WIFI_POWER_19_5dBm;
|
||||
}
|
||||
return (wifi_power_t)power;
|
||||
|
@ -44,6 +44,9 @@
|
||||
#define wifi_event_id_t network_event_handle_t
|
||||
|
||||
typedef enum {
|
||||
WIFI_POWER_21dBm = 84, // 21dBm
|
||||
WIFI_POWER_20_5dBm = 82, // 20.5dBm
|
||||
WIFI_POWER_20dBm = 80, // 20dBm
|
||||
WIFI_POWER_19_5dBm = 78, // 19.5dBm
|
||||
WIFI_POWER_19dBm = 76, // 19dBm
|
||||
WIFI_POWER_18_5dBm = 74, // 18.5dBm
|
||||
|
Loading…
Reference in New Issue
Block a user