1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-25 01:05:10 +03:00

No "Telemetry lost" during BIND mode

This commit is contained in:
Bertrand Songis 2019-08-23 09:26:16 +02:00
parent edb4f9a966
commit 6c27c60319
No known key found for this signature in database
GPG key ID: F189F79290FEC50F
8 changed files with 50 additions and 35 deletions

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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)

View file

@ -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);
}

View file

@ -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):

View file

@ -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_

View file

@ -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_

View file

@ -200,7 +200,9 @@ void telemetryWakeup()
}
else if (telemetryState == TELEMETRY_OK) {
telemetryState = TELEMETRY_KO;
AUDIO_TELEMETRY_LOST();
if (!isModuleInBeepMode()) {
AUDIO_TELEMETRY_LOST();
}
}
}
}