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
+16 -13
View File
@@ -105,7 +105,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);
@@ -152,7 +151,6 @@ void onBindMenu(const char * result)
moduleFlag[moduleIdx] = MODULE_BIND;
}
#endif
void copySelection(char * dst, const char * src, uint8_t size)
{
@@ -1020,7 +1018,6 @@ void 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) {
@@ -1028,11 +1025,14 @@ void 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;
default_selection = 1;
}
else {
POPUP_MENU_ADD_ITEM(STR_BINDING_1_8_TELEM_ON);
@@ -1061,13 +1061,6 @@ void 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;
@@ -1143,7 +1136,7 @@ void menuModelSetup(event_t event)
}
}
#endif
if (IS_MODULE_R9M(moduleIdx)) {
if (IS_MODULE_R9M_FCC(moduleIdx)) {
if (IS_TELEMETRY_INTERNAL_MODULE()) {
lcdDrawTextAlignedLeft(y, STR_MODULE_TELEMETRY);
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_DISABLE_INTERNAL);
@@ -1152,6 +1145,16 @@ void menuModelSetup(event_t event)
g_model.moduleData[moduleIdx].pxx.sport_out = editCheckBox(g_model.moduleData[EXTERNAL_MODULE].pxx.sport_out, MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_TELEMETRY, attr, event);
}
}
else if (IS_MODULE_R9M_LBT(moduleIdx)) {
if (IS_TELEMETRY_INTERNAL_MODULE()) {
lcdDrawTextAlignedLeft(y, STR_MODULE_TELEMETRY);
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_DISABLE_INTERNAL);
}
else {
lcdDrawTextAlignedLeft(y, STR_MODULE_TELEMETRY);
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_BINDING_OPTION);
}
}
else if (IS_MODULE_SBUS(moduleIdx)) {
lcdDrawTextAlignedLeft(y, STR_WARN_BATTVOLTAGE);
putsVolts(lcdLastRightPos, y, getBatteryVoltage(), attr | PREC2 | LEFT);