diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 68c6b3df8..8a75f1c4f 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -1599,7 +1599,7 @@ void menuModelSetup(event_t event) } #if defined(PXX) - if (IS_RANGECHECK_ENABLE()) { + if (isModuleInRangeCheckMode()) { showMessageBox("RSSI: "); lcdDrawNumber(WARNING_LINE_X, 5*FH, TELEMETRY_RSSI(), BOLD); } diff --git a/radio/src/gui/212x64/model_setup.cpp b/radio/src/gui/212x64/model_setup.cpp index 5c0e00726..4c1d599c2 100644 --- a/radio/src/gui/212x64/model_setup.cpp +++ b/radio/src/gui/212x64/model_setup.cpp @@ -1411,7 +1411,7 @@ void menuModelSetup(event_t event) } #if defined(PXX) - if (IS_RANGECHECK_ENABLE()) { + if (isModuleInRangeCheckMode()) { showMessageBox("RSSI: "); lcdDrawNumber(WARNING_LINE_X, 5*FH, TELEMETRY_RSSI(), BOLD | LEFT); } diff --git a/radio/src/gui/480x272/menus.h b/radio/src/gui/480x272/menus.h index 02c743a0e..6b3242c7a 100644 --- a/radio/src/gui/480x272/menus.h +++ b/radio/src/gui/480x272/menus.h @@ -486,7 +486,6 @@ void insertMix(uint8_t idx); #define WARNING_INFOLINE_Y (WARNING_LINE_Y+68) void copySelection(char * dst, const char * src, uint8_t size); - void drawPopupBackgroundAndBorder(coord_t x, coord_t y, coord_t w, coord_t h); void showMessageBox(const char * title); void runPopupWarning(event_t event); @@ -516,7 +515,7 @@ extern uint8_t popupMenuOffsetType; extern uint8_t popupMenuSelectedItem; const char * runPopupMenu(event_t event); -typedef void (* PopupMenuHandler)(const char * result); +typedef void (* PopupMenuHandler)(const char * result); extern PopupMenuHandler popupMenuHandler; inline void POPUP_INPUT(const char * s, PopupFunc func) diff --git a/radio/src/gui/480x272/model_setup.cpp b/radio/src/gui/480x272/model_setup.cpp index 1c417a425..e6422bda1 100644 --- a/radio/src/gui/480x272/model_setup.cpp +++ b/radio/src/gui/480x272/model_setup.cpp @@ -1369,9 +1369,6 @@ bool menuModelSetup(event_t event) // popupMenuTitle = STR_PXX2_SELECT_RX; POPUP_MENU_START(onPXX2BindMenu); } - else { - POPUP_WAIT(STR_WAITING_FOR_RX); - } } } @@ -1645,7 +1642,7 @@ bool menuModelSetup(event_t event) } } - if (IS_RANGECHECK_ENABLE()) { + if (isModuleInRangeCheckMode()) { theme->drawMessageBox("RSSI :", NULL, NULL, WARNING_TYPE_INFO); lcdDrawNumber(WARNING_LINE_X, WARNING_INFOLINE_Y, TELEMETRY_RSSI(), DBLSIZE|LEFT); } diff --git a/radio/src/gui/480x272/popups.cpp b/radio/src/gui/480x272/popups.cpp index 0056e39a8..25a28779e 100644 --- a/radio/src/gui/480x272/popups.cpp +++ b/radio/src/gui/480x272/popups.cpp @@ -34,22 +34,6 @@ uint16_t popupMenuOffset = 0; uint8_t popupMenuOffsetType = MENU_OFFSET_INTERNAL; void (*popupMenuHandler)(const char * result); -void runPopupWarningBox() -{ - // theme->drawMessageBox("", "", "", MESSAGEBOX_TYPE_WARNING); - // lcdDrawSolidFilledRect(POPUP_X, POPUP_Y, POPUP_W, POPUP_H, TEXT_BGCOLOR); - // lcdDrawSolidRect(POPUP_X, POPUP_Y, POPUP_W, POPUP_H, 2, ALARM_COLOR); - // lcdDrawBitmap(POPUP_X+15, POPUP_Y+20, LBM_WARNING); -} - -void drawMessageBox() -{ - // theme->drawMessageBox("", "", "", MESSAGEBOX_TYPE_INFO); - // lcdDrawSolidFilledRect(POPUP_X, POPUP_Y, POPUP_W, POPUP_H, TEXT_BGCOLOR); - // lcdDrawSolidRect(POPUP_X, POPUP_Y, POPUP_W, POPUP_H, 2, WARNING_COLOR); - // lcdDrawBitmap(POPUP_X+15, POPUP_Y+20, LBM_MESSAGE); -} - void drawAlertBox(const char * title, const char * text, const char * action) { theme->drawMessageBox(title, text, action, WARNING_TYPE_ALERT); @@ -83,7 +67,21 @@ void runPopupWarning(event_t event) { warningResult = false; - theme->drawMessageBox(warningText, warningInfoText, warningType == WARNING_TYPE_INFO ? STR_OK : (warningType == WARNING_TYPE_ASTERISK ? STR_EXIT : STR_POPUPS_ENTER_EXIT), warningType); + const char * action; + switch (warningType) { + case WARNING_TYPE_INFO: + action = STR_OK; + break; + case WARNING_TYPE_ASTERISK: + case WARNING_TYPE_WAIT: + action = STR_EXIT; + break; + default: + action = STR_POPUPS_ENTER_EXIT; + break; + } + + theme->drawMessageBox(warningText, warningInfoText, action, warningType); switch (event) { case EVT_KEY_BREAK(KEY_ENTER): diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index b71e61c5a..1d4c2fa9b 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -18,8 +18,8 @@ * GNU General Public License for more details. */ -#ifndef _MODULES_H_ -#define _MODULES_H_ +#ifndef _MODULES_HELPERS_H_ +#define _MODULES_HELPERS_H_ #include "bitfield.h" #include "definitions.h" @@ -479,4 +479,4 @@ inline void removePXX2ReceiverIfEmpty(uint8_t moduleIdx, uint8_t receiverIdx) } } -#endif // _MODULES_H_ +#endif // _MODULES_HELPERS_H_ diff --git a/radio/src/pulses/pulses.h b/radio/src/pulses/pulses.h index e2000c310..4606b3d26 100644 --- a/radio/src/pulses/pulses.h +++ b/radio/src/pulses/pulses.h @@ -29,12 +29,6 @@ #include "modules_helpers.h" #include "ff.h" -#if NUM_MODULES > 1 - #define IS_RANGECHECK_ENABLE() (moduleState[0].mode == MODULE_MODE_RANGECHECK || moduleState[1].mode == MODULE_MODE_RANGECHECK) -#else - #define IS_RANGECHECK_ENABLE() (moduleState[0].mode == MODULE_MODE_RANGECHECK) -#endif - #if defined(PCBSKY9X) && defined(DSM2) #define DSM2_BIND_TIMEOUT 255 // 255*11ms extern uint8_t dsm2BindTimer; @@ -404,5 +398,30 @@ inline void SEND_FAILSAFE_1S() // for channels not set previously to HOLD or NOPULSE void setCustomFailsafe(uint8_t moduleIndex); +inline bool isModuleInRangeCheckMode() +{ + if (moduleState[0].mode == MODULE_MODE_RANGECHECK) + return true; + +#if NUM_MODULES > 1 + if (moduleState[1].mode == MODULE_MODE_RANGECHECK) + return true; +#endif + + return false; +} + +inline bool isModuleInBeepMode() +{ + if (moduleState[0].mode >= MODULE_MODE_BEEP_FIRST) + return true; + +#if NUM_MODULES > 1 + if (moduleState[1].mode >= MODULE_MODE_BEEP_FIRST) + return true; +#endif + + return false; +} #endif // _PULSES_H_ diff --git a/radio/src/telemetry/telemetry.cpp b/radio/src/telemetry/telemetry.cpp index ffddd7bee..ac3a38a5b 100644 --- a/radio/src/telemetry/telemetry.cpp +++ b/radio/src/telemetry/telemetry.cpp @@ -200,7 +200,9 @@ void telemetryWakeup() } else if (telemetryState == TELEMETRY_OK) { telemetryState = TELEMETRY_KO; - AUDIO_TELEMETRY_LOST(); + if (!isModuleInBeepMode()) { + AUDIO_TELEMETRY_LOST(); + } } } }