Fix Xlite R9 UI (pulse still wrong)
This commit is contained in:
@@ -97,7 +97,9 @@ enum MenuModelSetupItems {
|
||||
ITEM_MODEL_EXTERNAL_MODULE_AUTOBIND,
|
||||
#endif
|
||||
ITEM_MODEL_EXTERNAL_MODULE_POWER,
|
||||
#if !defined(PCBXLITE)
|
||||
ITEM_MODEL_EXTERNAL_MODULE_FREQ,
|
||||
#endif
|
||||
#if defined(PCBSKY9X) && !defined(REVA)
|
||||
ITEM_MODEL_EXTRA_MODULE_LABEL,
|
||||
ITEM_MODEL_EXTRA_MODULE_CHANNELS,
|
||||
@@ -161,17 +163,21 @@ enum MenuModelSetupItems {
|
||||
#define OUTPUT_TYPE_ROWS()
|
||||
#endif
|
||||
#define PORT_CHANNELS_ROWS(x) (x==EXTERNAL_MODULE ? EXTERNAL_MODULE_CHANNELS_ROWS : 0)
|
||||
|
||||
#if defined(PCBXLITE)
|
||||
#define EXTERNAL_MODULE_MODE_ROWS (isModulePXX(EXTERNAL_MODULE) || isModuleDSM2(EXTERNAL_MODULE) || isModuleMultimodule(EXTERNAL_MODULE)) ? (uint8_t)1 : (uint8_t)0
|
||||
#else
|
||||
#define EXTERNAL_MODULE_MODE_ROWS (isModuleXJT(EXTERNAL_MODULE) || isModuleDSM2(EXTERNAL_MODULE) || isModuleMultimodule(EXTERNAL_MODULE)) ? (uint8_t)1 : (uint8_t)0
|
||||
|
||||
#endif
|
||||
#define CURSOR_ON_CELL (true)
|
||||
#define MODEL_SETUP_MAX_LINES (HEADER_LINE+ITEM_MODEL_SETUP_MAX)
|
||||
#define POT_WARN_ITEMS() ((g_model.potsWarnMode) ? (uint8_t)(NUM_POTS+NUM_SLIDERS) : (uint8_t)0)
|
||||
#define TIMER_ROWS 2, 0, 0, 0, 0
|
||||
#if defined(PCBSKY9X) && !defined(REVA)
|
||||
#define EXTRA_MODULE_ROWS LABEL(ExtraModule), 1, 2,
|
||||
#elif defined(PCBXLITE)
|
||||
#define EXTRA_MODULE_ROWS
|
||||
#else
|
||||
#define EXTRA_MODULE_ROWS isR9MMFlex(EXTERNAL_MODULE) ? (uint8_t)1: (uint8_t)HIDDEN_ROW
|
||||
#define EXTRA_MODULE_ROWS isR9MMFlex(EXTERNAL_MODULE) ? (uint8_t)1: (uint8_t)HIDDEN_ROW,
|
||||
#endif
|
||||
|
||||
#if defined(PCBX7)
|
||||
@@ -274,7 +280,7 @@ void menuModelSetup(event_t event)
|
||||
EXTERNAL_MODULE_OPTION_ROW,
|
||||
MULTIMODULE_MODULE_ROWS
|
||||
EXTERNAL_MODULE_POWER_ROW,
|
||||
EXTRA_MODULE_ROWS,
|
||||
EXTRA_MODULE_ROWS
|
||||
FAILSAFE_ROWS(EXTERNAL_MODULE),
|
||||
TRAINER_ROWS });
|
||||
#else
|
||||
@@ -728,8 +734,13 @@ void menuModelSetup(event_t event)
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+5*FW, y, STR_XJT_PROTOCOLS, 1+g_model.moduleData[EXTERNAL_MODULE].rfProtocol, menuHorizontalPosition==1 ? attr : 0);
|
||||
else if (isModuleDSM2(EXTERNAL_MODULE))
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+5*FW, y, STR_DSM_PROTOCOLS, g_model.moduleData[EXTERNAL_MODULE].rfProtocol, menuHorizontalPosition==1 ? attr : 0);
|
||||
#if defined(PCBXLITE)
|
||||
else if (isModuleR9M(EXTERNAL_MODULE))
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+5*FW, y, STR_R9M_REGION, g_model.moduleData[EXTERNAL_MODULE].subType, (menuHorizontalPosition==1 ? attr : 0));
|
||||
#else
|
||||
else if (isR9ModuleRunning(EXTERNAL_MODULE))
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+5*FW, y, STR_R9M_REGION, g_model.moduleData[EXTERNAL_MODULE].r9m.region, (menuHorizontalPosition==1 ? attr : 0));
|
||||
#endif
|
||||
#if defined(MULTIMODULE)
|
||||
else if (isModuleMultimodule(EXTERNAL_MODULE)) {
|
||||
int multi_rfProto = g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false);
|
||||
@@ -756,6 +767,17 @@ void menuModelSetup(event_t event)
|
||||
case 1:
|
||||
if (isModuleDSM2(EXTERNAL_MODULE))
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].rfProtocol, DSM2_PROTO_LP45, DSM2_PROTO_DSMX);
|
||||
#if defined(PCBXLITE)
|
||||
else if (isModuleR9M(EXTERNAL_MODULE)) {
|
||||
uint8_t newR9MType = checkIncDec(event, g_model.moduleData[EXTERNAL_MODULE].subType, MODULE_SUBTYPE_R9M_FCC, MODULE_SUBTYPE_R9M_LAST, EE_MODEL, isR9MModeAvailable);
|
||||
if (newR9MType != g_model.moduleData[EXTERNAL_MODULE].subType && newR9MType > MODULE_SUBTYPE_R9M_EU) {
|
||||
POPUP_WARNING(STR_R9MFLEXWARN1);
|
||||
const char * w = STR_R9MFLEXWARN2;
|
||||
SET_WARNING_INFO(w, strlen(w), 0);
|
||||
}
|
||||
g_model.moduleData[EXTERNAL_MODULE].subType = newR9MType;
|
||||
}
|
||||
#endif
|
||||
#if defined(MULTIMODULE)
|
||||
else if (isModuleMultimodule(EXTERNAL_MODULE)) {
|
||||
int multiRfProto = g_model.moduleData[EXTERNAL_MODULE].multi.customProto == 1 ? MM_RF_PROTO_CUSTOM : g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false);
|
||||
@@ -1182,7 +1204,20 @@ void menuModelSetup(event_t event)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if defined(PCBXLITE)
|
||||
if (isModuleR9M(moduleIdx)) {
|
||||
lcdDrawTextAlignedLeft(y, STR_MODULE_TELEMETRY);
|
||||
if (IS_TELEMETRY_INTERNAL_MODULE()) {
|
||||
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_DISABLE_INTERNAL);
|
||||
}
|
||||
else {
|
||||
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_TELEM_ON);
|
||||
}
|
||||
}
|
||||
else if (isModuleSBUS(moduleIdx)) {
|
||||
#else
|
||||
if (isModuleSBUS(moduleIdx)) {
|
||||
#endif
|
||||
lcdDrawTextAlignedLeft(y, STR_WARN_BATTVOLTAGE);
|
||||
putsVolts(lcdLastRightPos, y, getBatteryVoltage(), attr | PREC2 | LEFT);
|
||||
}
|
||||
@@ -1228,7 +1263,7 @@ void menuModelSetup(event_t event)
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
#if !defined(PCBXLITE)
|
||||
case ITEM_MODEL_EXTERNAL_MODULE_FREQ:
|
||||
{
|
||||
uint8_t moduleIdx = CURRENT_MODULE_EDITED(k);
|
||||
@@ -1240,6 +1275,7 @@ void menuModelSetup(event_t event)
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
case ITEM_MODEL_EXTERNAL_MODULE_AUTOBIND:
|
||||
|
||||
@@ -157,10 +157,16 @@ const mm_protocol_definition *getMultiProtocolDefinition (uint8_t protocol);
|
||||
|
||||
#define FAILSAFE_ROWS(x) ((isModuleXJT(x) && HAS_RF_PROTOCOL_FAILSAFE(g_model.moduleData[x].rfProtocol)) || MULTIMODULE_HASFAILSAFE(x) || isModuleR9M(x)) ? (g_model.moduleData[x].failsafeMode==FAILSAFE_CUSTOM ? (uint8_t)1 : (uint8_t)0) : HIDDEN_ROW
|
||||
|
||||
#if defined(PCBXLITE)
|
||||
#define EXTERNAL_MODULE_OPTION_ROW (isModuleR9M(EXTERNAL_MODULE) || isModuleSBUS(EXTERNAL_MODULE) ? TITLE_ROW : MULTIMODULE_OPTIONS_ROW)
|
||||
#else
|
||||
#define EXTERNAL_MODULE_OPTION_ROW (isR9ModuleRunning(EXTERNAL_MODULE) ? HIDDEN_ROW : isModuleSBUS(EXTERNAL_MODULE) ? TITLE_ROW : MULTIMODULE_OPTIONS_ROW)
|
||||
#endif
|
||||
|
||||
#if defined(PCBXLITE) && !defined(MODULE_R9M_FULLSIZE)
|
||||
#define EXTERNAL_MODULE_POWER_ROW (isModuleMultimodule(EXTERNAL_MODULE) || isModuleR9M(EXTERNAL_MODULE)) ? (isModuleR9M_FCC_VARIANT(EXTERNAL_MODULE) ? TITLE_ROW : (uint8_t) 0) : HIDDEN_ROW
|
||||
#elif defined(PCBXLITE)
|
||||
#define EXTERNAL_MODULE_POWER_ROW (isModuleMultimodule(EXTERNAL_MODULE) || isModuleR9M(EXTERNAL_MODULE)) ? (uint8_t) 0 : HIDDEN_ROW
|
||||
#else
|
||||
#define EXTERNAL_MODULE_POWER_ROW (isModuleMultimodule(EXTERNAL_MODULE) || isR9ModuleRunning(EXTERNAL_MODULE)) ? (uint8_t) 0 : HIDDEN_ROW
|
||||
#endif
|
||||
|
||||
@@ -494,12 +494,22 @@ bool isR9ModuleRunning(int module)
|
||||
return g_model.moduleData[module].type == MODULE_TYPE_R9M && R9ModuleStreaming;
|
||||
#endif
|
||||
}
|
||||
#if defined(PCBXLITE)
|
||||
bool isR9MModeAvailable(int mode)
|
||||
{
|
||||
#if defined(MODULE_R9M_FLEX_FW)
|
||||
return mode >= MODULE_SUBTYPE_R9M_EUPLUS;
|
||||
#else
|
||||
return mode <= MODULE_SUBTYPE_R9M_EU;
|
||||
#endif
|
||||
}
|
||||
|
||||
#else
|
||||
bool isR9MModeAvailable(int mode)
|
||||
{
|
||||
return mode <= MODULE_SUBTYPE_R9M_EUPLUS;
|
||||
}
|
||||
|
||||
#endif
|
||||
bool isR9MMFlex(int module)
|
||||
{
|
||||
return g_model.moduleData[module].r9m.region == MODULE_R9M_REGION_FLEX;
|
||||
|
||||
@@ -99,6 +99,37 @@ inline bool isModulePPM(uint8_t idx)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(PCBXLITE)
|
||||
inline bool isModuleR9M(uint8_t idx)
|
||||
{
|
||||
return g_model.moduleData[idx].type == MODULE_TYPE_R9M;
|
||||
}
|
||||
|
||||
inline bool isModuleR9M_FCC(uint8_t idx)
|
||||
{
|
||||
return isModuleR9M(idx) && g_model.moduleData[idx].subType == MODULE_SUBTYPE_R9M_FCC;
|
||||
}
|
||||
|
||||
inline bool isModuleR9M_LBT(uint8_t idx)
|
||||
{
|
||||
return isModuleR9M(idx) && g_model.moduleData[idx].subType == MODULE_SUBTYPE_R9M_EU;
|
||||
}
|
||||
|
||||
inline bool isModuleR9M_FCC_VARIANT(uint8_t idx)
|
||||
{
|
||||
return isModuleR9M(idx) && g_model.moduleData[idx].subType != MODULE_SUBTYPE_R9M_EU;
|
||||
}
|
||||
|
||||
inline bool isModuleR9M_EUPLUS(uint8_t idx)
|
||||
{
|
||||
return isModuleR9M(idx) && g_model.moduleData[idx].subType != MODULE_SUBTYPE_R9M_EUPLUS;
|
||||
}
|
||||
|
||||
inline bool isModuleR9M_AU_PLUS(uint8_t idx)
|
||||
{
|
||||
return isModuleR9M(idx) && g_model.moduleData[idx].subType != MODULE_SUBTYPE_R9M_AUPLUS;
|
||||
}
|
||||
#else
|
||||
inline bool isModuleR9M(uint8_t idx)
|
||||
{
|
||||
return g_model.moduleData[idx].type == MODULE_TYPE_R9M;
|
||||
@@ -128,7 +159,7 @@ inline bool isModuleR9M_AU_PLUS(uint8_t idx)
|
||||
{
|
||||
return isModuleR9M(idx) && g_model.moduleData[idx].r9m.region == MODULE_R9M_REGION_FLEX && g_model.moduleData[idx].r9m.freq == MODULE_R9M_FREQ_915MHZ;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
inline bool isModulePXX(uint8_t idx)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user