From ad22d280c60afccdc1ff43f901d0bf0246576101 Mon Sep 17 00:00:00 2001 From: zhangyanjiao Date: Wed, 24 Oct 2018 10:31:58 +0800 Subject: [PATCH] wifi: add long range code --- examples/wifi/espnow/README.md | 3 +++ examples/wifi/espnow/main/Kconfig.projbuild | 8 +++++++- examples/wifi/espnow/main/espnow_example_main.c | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/examples/wifi/espnow/README.md b/examples/wifi/espnow/README.md index 0c3642b43a..047cf85a4a 100644 --- a/examples/wifi/espnow/README.md +++ b/examples/wifi/espnow/README.md @@ -44,6 +44,9 @@ make menuconfig The sending device and the recving device must be on the same channel. * Set Send count and Send delay under Example Configuration Options. * Set Send len under Example Configuration Options. +* Set Enable Long Range Options. + When this parameter is enabled, the ESP32 device will send data at the PHY rate of 512Kbps or 256Kbps + then the data can be transmitted over long range between two ESP32 devices. ### Build and Flash diff --git a/examples/wifi/espnow/main/Kconfig.projbuild b/examples/wifi/espnow/main/Kconfig.projbuild index be6b6ffdd9..782fd5b017 100644 --- a/examples/wifi/espnow/main/Kconfig.projbuild +++ b/examples/wifi/espnow/main/Kconfig.projbuild @@ -48,8 +48,14 @@ config ESPNOW_SEND_DELAY config ESPNOW_SEND_LEN int "Send len" range 10 250 - default 200 + default 10 help Length of ESPNOW data to be sent, unit: byte. +config ENABLE_LONG_RANGE + bool "Enable Long Range" + default "n" + help + When enable long range, the PHY rate of ESP32 will be 512Kbps or 256Kbps + endmenu diff --git a/examples/wifi/espnow/main/espnow_example_main.c b/examples/wifi/espnow/main/espnow_example_main.c index 78576137a8..49e04c8366 100644 --- a/examples/wifi/espnow/main/espnow_example_main.c +++ b/examples/wifi/espnow/main/espnow_example_main.c @@ -67,6 +67,10 @@ static void example_wifi_init(void) * been already on the same channel. */ ESP_ERROR_CHECK( esp_wifi_set_channel(CONFIG_ESPNOW_CHANNEL, 0) ); + +#if CONFIG_ENABLE_LONG_RANGE + ESP_ERROR_CHECK( esp_wifi_set_protocol(ESPNOW_WIFI_IF, WIFI_PROTOCOL_11B|WIFI_PROTOCOL_11G|WIFI_PROTOCOL_11N|WIFI_PROTOCOL_LR) ); +#endif } /* ESPNOW sending or receiving callback function is called in WiFi task.