From f48d6548c5287eed1e267aae2368a67b9c2df27b Mon Sep 17 00:00:00 2001 From: 3djc Date: Wed, 27 Mar 2019 11:35:54 +0100 Subject: [PATCH] dBm / mW converstion and display --- radio/src/gui/128x64/model_module_options.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/128x64/model_module_options.cpp b/radio/src/gui/128x64/model_module_options.cpp index da28d556e..ffc3b291a 100644 --- a/radio/src/gui/128x64/model_module_options.cpp +++ b/radio/src/gui/128x64/model_module_options.cpp @@ -20,7 +20,7 @@ #include -#define RECEIVER_OPTIONS_2ND_COLUMN 80 +#define RECEIVER_OPTIONS_2ND_COLUMN 60 extern uint8_t g_moduleIdx; @@ -62,6 +62,10 @@ const uint8_t moduleOptions[] = { #define IF_MODULE_OPTIONS(option, count) uint8_t((moduleOptions[modelId] & (1 << option)) ? count : HIDDEN_ROW) +int16_t convertDBMtoMW(int8_t dBm) { + return pow( 10.0, (dBm - 30.0) / 10.0) * 1000; +} + void menuModelModuleOptions(event_t event) { uint8_t modelId = reusableBuffer.hardwareAndSettings.modules[g_moduleIdx].information.modelID; @@ -156,7 +160,9 @@ void menuModelModuleOptions(event_t event) case ITEM_MODULE_SETTINGS_POWER: lcdDrawText(0, y, "Power"); lcdDrawNumber(RECEIVER_OPTIONS_2ND_COLUMN, y, reusableBuffer.hardwareAndSettings.moduleSettings.txPower, attr); - lcdDrawText(lcdNextPos, y, "dBm"); + lcdDrawText(lcdNextPos, y, "dBm("); + lcdDrawNumber(lcdNextPos, y, convertDBMtoMW(reusableBuffer.hardwareAndSettings.moduleSettings.txPower), 0); + lcdDrawText(lcdNextPos, y, "mW)"); if (attr) { reusableBuffer.hardwareAndSettings.moduleSettings.txPower = checkIncDec(event, reusableBuffer.hardwareAndSettings.moduleSettings.txPower, -127, 127); if (checkIncDec_Ret) {