R9M : activate automatically MODULE telem when possible (#5553)

* Fix #5543

* Auto activate R9M telem

* Adjust radio ui

* Thx @schwabe

* Stop being stupid ?

* PR rework

* [Companion] Removed "Module Telemetry" checkbox.
This commit is contained in:
3djc
2017-12-29 09:47:45 +01:00
committed by Bertrand Songis
parent 3cba3a76a4
commit 8ee9199abc
22 changed files with 157 additions and 146 deletions
+25 -13
View File
@@ -84,6 +84,7 @@ enum MenuModelSetupItems {
ITEM_MODEL_EXTERNAL_MODULE_BIND,
ITEM_MODEL_EXTERNAL_MODULE_FAILSAFE,
ITEM_MODEL_EXTERNAL_MODULE_OPTIONS,
ITEM_MODEL_EXTERNAL_MODULE_BIND_OPTIONS,
#if defined(MULTIMODULE)
ITEM_MODEL_EXTERNAL_MODULE_AUTOBIND,
#endif
@@ -329,6 +330,7 @@ void menuModelSetup(event_t event)
((IS_MODULE_XJT(EXTERNAL_MODULE) && !HAS_RF_PROTOCOL_FAILSAFE(g_model.moduleData[EXTERNAL_MODULE].rfProtocol)) || IS_MODULE_SBUS(EXTERNAL_MODULE)) ? (uint8_t)1 : (IS_MODULE_PPM(EXTERNAL_MODULE) || IS_MODULE_PXX(EXTERNAL_MODULE) || IS_MODULE_DSM2(EXTERNAL_MODULE) || IS_MODULE_MULTIMODULE(EXTERNAL_MODULE)) ? (uint8_t)2 : HIDDEN_ROW,
FAILSAFE_ROWS(EXTERNAL_MODULE),
EXTERNAL_MODULE_OPTION_ROW,
(IS_MODULE_R9M_LBT(EXTERNAL_MODULE) ? (uint8_t)0 : HIDDEN_ROW),
MULTIMODULE_MODULE_ROWS
EXTERNAL_MODULE_POWER_ROW,
LABEL(Trainer), 0, TRAINER_LINE1_ROWS, TRAINER_LINE2_ROWS});
@@ -1136,23 +1138,13 @@ void menuModelSetup(event_t event)
}
}
#endif
if (IS_MODULE_R9M_FCC(moduleIdx)) {
if (IS_MODULE_R9M(moduleIdx)) {
lcdDrawTextAlignedLeft(y, STR_MODULE_TELEMETRY);
if (IS_TELEMETRY_INTERNAL_MODULE()) {
lcdDrawTextAlignedLeft(y, STR_MODULE_TELEMETRY);
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_DISABLE_INTERNAL);
}
else {
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);
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_TELEM_ON);
}
}
else if (IS_MODULE_SBUS(moduleIdx)) {
@@ -1162,6 +1154,26 @@ void menuModelSetup(event_t event)
}
break;
case ITEM_MODEL_EXTERNAL_MODULE_BIND_OPTIONS:
{
uint8_t moduleIdx = CURRENT_MODULE_EDITED(k);
lcdDrawTextAlignedLeft(y, "Bind mode");
if (g_model.moduleData[moduleIdx].pxx.power == R9M_LBT_POWER_25) {
if(g_model.moduleData[moduleIdx].pxx.receiver_telem_off == true)
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_BINDING_25MW_CH1_8_TELEM_OFF);
else
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_BINDING_25MW_CH1_8_TELEM_ON);
}
else {
if(g_model.moduleData[moduleIdx].pxx.receiver_channel_9_16 == true)
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_BINDING_500MW_CH9_16_TELEM_OFF);
else
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_BINDING_500MW_CH1_8_TELEM_OFF);
}
if (attr) REPEAT_LAST_CURSOR_MOVE();
}
case ITEM_MODEL_EXTERNAL_MODULE_POWER:
{
uint8_t moduleIdx = CURRENT_MODULE_EDITED(k);