From bbeaeaad54c4295e8f94a7d61f866f910a95d3a2 Mon Sep 17 00:00:00 2001 From: Markus Sattler Date: Tue, 29 Dec 2015 15:56:53 +0100 Subject: [PATCH] add WiFi TX power control --- .../ESP8266WiFi/src/ESP8266WiFiGeneric.cpp | 17 +++++++++++++++++ libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.h | 2 ++ 2 files changed, 19 insertions(+) diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp b/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp index 3b13549f7..78c55f76f 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp +++ b/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp @@ -124,6 +124,23 @@ WiFiPhyMode_t ESP8266WiFiGenericClass::getPhyMode() { return (WiFiPhyMode_t) wifi_get_phy_mode(); } +/** + * set the output power of WiFi + * @param dBm max: +20.5dBm min: 0dBm + */ +void ESP8266WiFiGenericClass::setOutputPower(float_t dBm) { + + if(dBm > 20.5) { + dBm = 20.5; + } else if(dBm < 0) { + dBm = 0; + } + + uint8_t val = (dBm*4.0f); + system_phy_set_max_tpw(val); +} + + /** * store WiFi config in SDK flash area * @param persistent diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.h b/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.h index 26381b43b..2232941c9 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.h +++ b/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.h @@ -46,6 +46,8 @@ class ESP8266WiFiGenericClass { bool setPhyMode(WiFiPhyMode_t mode); WiFiPhyMode_t getPhyMode(); + void setOutputPower(float_t dBm); + void persistent(bool persistent); bool mode(WiFiMode_t);