Better support for R9M EU (#5487)

* POC for X9, requires -DBINDING_OPTIONS=YES

* There are apparently 4 valid choices

* - make BINDING_OPTIONS part of standard code
- adapt R9M EU LBT dialog to choice on bind

* - remove option from Companion
- cosmetics

* Compilation fixes
This commit is contained in:
3djc
2017-12-09 10:17:56 +01:00
committed by Bertrand Songis
parent f489742c9e
commit 8e5027dcb2
20 changed files with 105 additions and 88 deletions
+17 -13
View File
@@ -98,7 +98,6 @@ enum MenuModelSetupItems {
#define CURRENT_MODULE_EDITED(k) (k>=ITEM_MODEL_TRAINER_LABEL ? TRAINER_MODULE : (k>=ITEM_MODEL_EXTERNAL_MODULE_LABEL ? EXTERNAL_MODULE : INTERNAL_MODULE))
#if defined(BINDING_OPTIONS)
void onBindMenu(const char * result)
{
uint8_t moduleIdx = CURRENT_MODULE_EDITED(menuVerticalPosition);
@@ -145,7 +144,6 @@ void onBindMenu(const char * result)
moduleFlag[moduleIdx] = MODULE_BIND;
}
#endif
void onModelSetupBitmapMenu(const char * result)
{
@@ -922,7 +920,6 @@ bool menuModelSetup(event_t event)
s_editMode = 0;
}
#endif
#if defined(BINDING_OPTIONS)
if (attr && l_posHorz>0) {
if (s_editMode>0) {
if (l_posHorz == 1) {
@@ -930,8 +927,11 @@ bool menuModelSetup(event_t event)
if (event == EVT_KEY_BREAK(KEY_ENTER)) {
uint8_t default_selection;
if (IS_MODULE_R9M_LBT(moduleIdx)) {
if (IS_TELEMETRY_INTERNAL_MODULE())
POPUP_MENU_ADD_ITEM(STR_DISABLE_INTERNAL);
else
POPUP_MENU_ADD_ITEM(STR_BINDING_25MW_CH1_8_TELEM_ON);
POPUP_MENU_ADD_ITEM(STR_BINDING_25MW_CH1_8_TELEM_OFF);
POPUP_MENU_ADD_ITEM(STR_BINDING_25MW_CH1_8_TELEM_ON);
POPUP_MENU_ADD_ITEM(STR_BINDING_500MW_CH1_8_TELEM_OFF);
POPUP_MENU_ADD_ITEM(STR_BINDING_500MW_CH9_16_TELEM_OFF);
default_selection = 2;
@@ -963,13 +963,6 @@ bool menuModelSetup(event_t event)
else if (l_posHorz == 2) {
newFlag = MODULE_RANGECHECK;
}
#else
if (attr && l_posHorz>0 && s_editMode>0) {
if (l_posHorz == 1)
newFlag = MODULE_BIND;
else if (l_posHorz == 2) {
newFlag = MODULE_RANGECHECK;
#endif
}
}
moduleFlag[moduleIdx] = newFlag;
@@ -1044,15 +1037,26 @@ bool menuModelSetup(event_t event)
}
}
#endif
if (IS_MODULE_R9M(moduleIdx)) {
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MODULE_TELEMETRY);
if (IS_MODULE_R9M_FCC(moduleIdx)) {
if (IS_TELEMETRY_INTERNAL_MODULE()) {
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MODULE_TELEMETRY);
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_DISABLE_INTERNAL);
}
else {
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MODULE_TELEMETRY);
g_model.moduleData[moduleIdx].pxx.sport_out = editCheckBox(g_model.moduleData[EXTERNAL_MODULE].pxx.sport_out, MODEL_SETUP_2ND_COLUMN, y, attr, event);
}
}
else if (IS_MODULE_R9M_LBT(moduleIdx)) {
if (IS_TELEMETRY_INTERNAL_MODULE()) {
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MODULE_TELEMETRY);
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_DISABLE_INTERNAL);
}
else {
lcdDrawText(MENUS_MARGIN_LEFT,y, STR_MODULE_TELEMETRY);
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_BINDING_OPTION);
}
}
else if (IS_MODULE_SBUS(moduleIdx)) {
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_WARN_BATTVOLTAGE);
drawValueWithUnit(MODEL_SETUP_4TH_COLUMN, y, getBatteryVoltage(), UNIT_VOLTS, attr|PREC2|LEFT);