From 5fac283c143052767ce765bbbbda79c373e26c71 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 2 Sep 2020 14:05:13 +0200 Subject: [PATCH] Reduce codesize of setOutputPower The logic can be simplified by using integer logic without a functional change. Reduces code size by 40% (78 bytes -> 46 bytes) and silences a Warith-conversion warning. --- libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp b/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp index 41aaa00f24..304883506a 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp +++ b/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp @@ -369,17 +369,18 @@ WiFiPhyMode_t ESP8266WiFiGenericClass::getPhyMode() { */ void ESP8266WiFiGenericClass::setOutputPower(float dBm) { - if(dBm > 20.5f) { - dBm = 20.5f; - } else if(dBm < 0.0f) { - dBm = 0.0f; + int i_dBm = int(dBm * 4.0f); + + // i_dBm 82 == 20.5 dBm + if(i_dBm > 82) { + i_dBm = 82; + } else if(i_dBm < 0) { + i_dBm = 0; } - uint8_t val = (dBm*4.0f); - system_phy_set_max_tpw(val); + system_phy_set_max_tpw((uint8_t) i_dBm); } - /** * store WiFi config in SDK flash area * @param persistent