Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(wifi): Fix WiFi setTxPower and getTxPower #9862

Merged
merged 2 commits into from
Jun 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions libraries/WiFi/src/AP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
4 changes: 4 additions & 0 deletions libraries/WiFi/src/STA.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand Down
10 changes: 8 additions & 2 deletions libraries/WiFi/src/WiFiGeneric.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand All @@ -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;
Expand Down
3 changes: 3 additions & 0 deletions libraries/WiFi/src/WiFiGeneric.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading