Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit eeb6a26

Browse filesBrowse files
fix(wifi): Disable properly LR mode if it was enabled before (#11052)
* fix(wifi): Disable properly LR mode if it was enabled before * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
1 parent 8575d04 commit eeb6a26
Copy full SHA for eeb6a26

File tree

1 file changed

+51
-19
lines changed
Filter options

1 file changed

+51
-19
lines changed

‎libraries/WiFi/src/WiFiGeneric.cpp

Copy file name to clipboardExpand all lines: libraries/WiFi/src/WiFiGeneric.cpp
+51-19Lines changed: 51 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ bool wifiLowLevelInit(bool persistent) {
308308

309309
esp_err_t err = esp_wifi_init(&cfg);
310310
if (err) {
311-
log_e("esp_wifi_init %d", err);
311+
log_e("esp_wifi_init 0x%x: %s", err, esp_err_to_name(err));
312312
lowLevelInitDone = false;
313313
return lowLevelInitDone;
314314
}
@@ -375,7 +375,7 @@ static bool espWiFiStart() {
375375
esp_err_t err = esp_wifi_start();
376376
if (err != ESP_OK) {
377377
_esp_wifi_started = false;
378-
log_e("esp_wifi_start %d", err);
378+
log_e("esp_wifi_start 0x%x: %s", err, esp_err_to_name(err));
379379
return _esp_wifi_started;
380380
}
381381
return _esp_wifi_started;
@@ -389,7 +389,7 @@ static bool espWiFiStop() {
389389
_esp_wifi_started = false;
390390
err = esp_wifi_stop();
391391
if (err) {
392-
log_e("Could not stop WiFi! %d", err);
392+
log_e("Could not stop WiFi! 0x%x: %s", err, esp_err_to_name(err));
393393
_esp_wifi_started = true;
394394
return false;
395395
}
@@ -478,7 +478,7 @@ int WiFiGenericClass::setChannel(uint8_t primary, wifi_second_chan_t secondary)
478478

479479
ret = esp_wifi_get_country(&country);
480480
if (ret != ESP_OK) {
481-
log_e("Failed to get country info");
481+
log_e("Failed to get country info 0x%x: %s", ret, esp_err_to_name(ret));
482482
return ret;
483483
}
484484

@@ -492,7 +492,7 @@ int WiFiGenericClass::setChannel(uint8_t primary, wifi_second_chan_t secondary)
492492

493493
ret = esp_wifi_set_channel(primary, secondary);
494494
if (ret != ESP_OK) {
495-
log_e("Failed to set channel");
495+
log_e("Failed to set channel 0x%x: %s", ret, esp_err_to_name(ret));
496496
return ret;
497497
}
498498

@@ -562,13 +562,13 @@ bool WiFiGenericClass::mode(wifi_mode_t m) {
562562
if (((m & WIFI_MODE_STA) != 0) && ((cm & WIFI_MODE_STA) == 0)) {
563563
err = esp_netif_set_hostname(esp_netifs[ESP_IF_WIFI_STA], NetworkManager::getHostname());
564564
if (err) {
565-
log_e("Could not set hostname! %d", err);
565+
log_e("Could not set hostname! 0x%x: %s", err, esp_err_to_name(err));
566566
return false;
567567
}
568568
}
569569
err = esp_wifi_set_mode(m);
570570
if (err) {
571-
log_e("Could not set mode! %d", err);
571+
log_e("Could not set mode! 0x%x: %s", err, esp_err_to_name(err));
572572
return false;
573573
}
574574

@@ -585,17 +585,44 @@ bool WiFiGenericClass::mode(wifi_mode_t m) {
585585
if (m & WIFI_MODE_STA) {
586586
err = esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_LR);
587587
if (err != ESP_OK) {
588-
log_e("Could not enable long range on STA! %d", err);
588+
log_e("Could not enable long range on STA! 0x%x: %s", err, esp_err_to_name(err));
589589
return false;
590590
}
591591
}
592592
if (m & WIFI_MODE_AP) {
593593
err = esp_wifi_set_protocol(WIFI_IF_AP, WIFI_PROTOCOL_LR);
594594
if (err != ESP_OK) {
595-
log_e("Could not enable long range on AP! %d", err);
595+
log_e("Could not enable long range on AP! 0x%x: %s", err, esp_err_to_name(err));
596596
return false;
597597
}
598598
}
599+
} else {
600+
#if CONFIG_SOC_WIFI_HE_SUPPORT
601+
#define WIFI_PROTOCOL_DEFAULT (WIFI_PROTOCOL_11B | WIFI_PROTOCOL_11G | WIFI_PROTOCOL_11N | WIFI_PROTOCOL_11AX)
602+
#else
603+
#define WIFI_PROTOCOL_DEFAULT (WIFI_PROTOCOL_11B | WIFI_PROTOCOL_11G | WIFI_PROTOCOL_11N)
604+
#endif
605+
uint8_t current_protocol = 0;
606+
if (m & WIFI_MODE_STA) {
607+
err = esp_wifi_get_protocol(WIFI_IF_STA, &current_protocol);
608+
if (err == ESP_OK && current_protocol == WIFI_PROTOCOL_LR) {
609+
log_v("Disabling long range on STA");
610+
err = esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_DEFAULT);
611+
if (err != ESP_OK) {
612+
log_e("Could not disable long range on STA! 0x%x: %s", err, esp_err_to_name(err));
613+
}
614+
}
615+
}
616+
if (m & WIFI_MODE_AP) {
617+
err = esp_wifi_get_protocol(WIFI_IF_AP, &current_protocol);
618+
if (err == ESP_OK && current_protocol == WIFI_PROTOCOL_LR) {
619+
log_v("Disabling long range on AP");
620+
err = esp_wifi_set_protocol(WIFI_IF_AP, WIFI_PROTOCOL_DEFAULT);
621+
if (err != ESP_OK) {
622+
log_e("Could not disable long range on AP! 0x%x: %s", err, esp_err_to_name(err));
623+
}
624+
}
625+
}
599626
}
600627
if (!espWiFiStart()) {
601628
return false;
@@ -683,8 +710,9 @@ bool WiFiGenericClass::setSleep(wifi_ps_type_t sleepType) {
683710
if (sleepType != _sleepEnabled) {
684711
_sleepEnabled = sleepType;
685712
if (WiFi.STA.started()) {
686-
if (esp_wifi_set_ps(_sleepEnabled) != ESP_OK) {
687-
log_e("esp_wifi_set_ps failed!");
713+
esp_err_t err = esp_wifi_set_ps(_sleepEnabled);
714+
if (err != ESP_OK) {
715+
log_e("esp_wifi_set_ps failed!: 0x%x: %s", err, esp_err_to_name(err));
688716
return false;
689717
}
690718
}
@@ -748,8 +776,9 @@ bool WiFiGenericClass::initiateFTM(uint8_t frm_count, uint16_t burst_period, uin
748776
memcpy(ftmi_cfg.resp_mac, mac, 6);
749777
}
750778
// Request FTM session with the Responder
751-
if (ESP_OK != esp_wifi_ftm_initiate_session(&ftmi_cfg)) {
752-
log_e("Failed to initiate FTM session");
779+
esp_err_t err = esp_wifi_ftm_initiate_session(&ftmi_cfg);
780+
if (ESP_OK != err) {
781+
log_e("Failed to initiate FTM session: 0x%x: %s", err, esp_err_to_name(err));
753782
return false;
754783
}
755784
return true;
@@ -768,8 +797,9 @@ bool WiFiGenericClass::setDualAntennaConfig(uint8_t gpio_ant1, uint8_t gpio_ant2
768797

769798
esp_phy_ant_gpio_config_t wifi_ant_io;
770799

771-
if (ESP_OK != esp_phy_get_ant_gpio(&wifi_ant_io)) {
772-
log_e("Failed to get antenna configuration");
800+
esp_err_t err = esp_phy_get_ant_gpio(&wifi_ant_io);
801+
if (ESP_OK != err) {
802+
log_e("Failed to get antenna configuration: 0x%x: %s", err, esp_err_to_name(err));
773803
return false;
774804
}
775805

@@ -778,8 +808,9 @@ bool WiFiGenericClass::setDualAntennaConfig(uint8_t gpio_ant1, uint8_t gpio_ant2
778808
wifi_ant_io.gpio_cfg[1].gpio_num = gpio_ant2;
779809
wifi_ant_io.gpio_cfg[1].gpio_select = 1;
780810

781-
if (ESP_OK != esp_phy_set_ant_gpio(&wifi_ant_io)) {
782-
log_e("Failed to set antenna GPIO configuration");
811+
err = esp_phy_set_ant_gpio(&wifi_ant_io);
812+
if (ESP_OK != err) {
813+
log_e("Failed to set antenna GPIO configuration: 0x%x: %s", err, esp_err_to_name(err));
783814
return false;
784815
}
785816

@@ -827,8 +858,9 @@ bool WiFiGenericClass::setDualAntennaConfig(uint8_t gpio_ant1, uint8_t gpio_ant2
827858
}
828859

829860
set_ant:
830-
if (ESP_OK != esp_phy_set_ant(&ant_config)) {
831-
log_e("Failed to set antenna configuration");
861+
err = esp_phy_set_ant(&ant_config);
862+
if (ESP_OK != err) {
863+
log_e("Failed to set antenna configuration: 0x%x: %s", err, esp_err_to_name(err));
832864
return false;
833865
}
834866
#endif

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.