Fixes for X7
This commit is contained in:
@@ -74,22 +74,24 @@ enum MenuModelSetupItems {
|
||||
#if defined(PCBTARANIS)
|
||||
ITEM_MODEL_INTERNAL_MODULE_LABEL,
|
||||
ITEM_MODEL_INTERNAL_MODULE_MODE,
|
||||
ITEM_MODEL_INTERNAL_MODULE_MODEL_NUM,
|
||||
ITEM_MODEL_INTERNAL_MODULE_FAILSAFE,
|
||||
ITEM_MODEL_INTERNAL_MODULE_RANGE_REG,
|
||||
ITEM_MODEL_INTERNAL_MODULE_NPXX2_CHANNELS,
|
||||
ITEM_MODEL_INTERNAL_MODULE_NPXX2_BIND,
|
||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_MODEL_NUM,
|
||||
#if defined(EXTERNAL_ANTENNA)
|
||||
ITEM_MODEL_INTERNAL_MODULE_ANTENNA,
|
||||
#endif
|
||||
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_NUMBER,
|
||||
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_RANGE,
|
||||
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_TELEM,
|
||||
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_BIND,
|
||||
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_NUMBER,
|
||||
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_RANGE,
|
||||
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_TELEM,
|
||||
ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_BIND,
|
||||
ITEM_MODEL_INTERNAL_MODULE_ADD_RECEIVER,
|
||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_RANGE_REGISTER,
|
||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1_NUMBER,
|
||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1_RANGE,
|
||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1_TELEM,
|
||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1_BIND,
|
||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2_NUMBER,
|
||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2_RANGE,
|
||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2_TELEM,
|
||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2_BIND,
|
||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_ADD_RECEIVER,
|
||||
#endif
|
||||
ITEM_MODEL_INTERNAL_MODULE_FAILSAFE,
|
||||
ITEM_MODEL_EXTERNAL_MODULE_LABEL,
|
||||
ITEM_MODEL_EXTERNAL_MODULE_MODE,
|
||||
#if defined(MULTIMODULE)
|
||||
@@ -144,14 +146,14 @@ enum MenuModelSetupItems {
|
||||
#define MODEL_SETUP_RANGE_OFS 4*FW+3
|
||||
#define MODEL_SETUP_SET_FAILSAFE_OFS 7*FW-2
|
||||
|
||||
#define IF_PXX2(x) (IS_PXX2_ENABLED() ? (uint8_t)(x) : HIDDEN_ROW)
|
||||
#define IF_PXX2(xxx) (IS_PXX2_ENABLED() ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#define IF_NOT_PXX2(xxx) (IS_PXX2_ENABLED() ? HIDDEN_ROW : (uint8_t)(xxx))
|
||||
#define IF_PXX2_RECEIVER_DISPLAYED(module, idx, xxx) ((IS_PXX2_ENABLED() && g_model.moduleData[module].pxx2.receivers[idx].enabled) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
#define CURRENT_MODULE_EDITED(k) (k >= ITEM_MODEL_EXTERNAL_MODULE_LABEL ? EXTERNAL_MODULE : INTERNAL_MODULE)
|
||||
#define CURRENT_RECEIVER_EDITED(k) (k >= ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_NUMBER ? 1 : 0)
|
||||
#define CURRENT_RECEIVER_EDITED(k) (k >= ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2_NUMBER ? 1 : 0)
|
||||
#define INTERNAL_MODULE_ADD_RECEIVER_ROW (g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[MAX_RECEIVERS_PER_MODULE-1].enabled ? HIDDEN_ROW : (uint8_t)0)
|
||||
#define IF_INTERNAL_MODULE_RECEIVER_1_ON(x) (g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[0].enabled ? (uint8_t)(x) : HIDDEN_ROW)
|
||||
#define IF_INTERNAL_MODULE_RECEIVER_2_ON(x) (g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[1].enabled ? (uint8_t)(x) : HIDDEN_ROW)
|
||||
#elif defined(PCBSKY9X) && !defined(REVA)
|
||||
#define CURRENT_MODULE_EDITED(k) (k>=ITEM_MODEL_EXTRA_MODULE_LABEL ? EXTRA_MODULE : EXTERNAL_MODULE)
|
||||
#else
|
||||
@@ -184,8 +186,10 @@ enum MenuModelSetupItems {
|
||||
|
||||
#if defined(PCBXLITE)
|
||||
#define EXTERNAL_MODULE_MODE_ROWS (isModulePXX(EXTERNAL_MODULE) || isModuleDSM2(EXTERNAL_MODULE) || isModuleMultimodule(EXTERNAL_MODULE)) ? (uint8_t)1 : (uint8_t)0
|
||||
#define EXTERNAL_MODULE_FREQ_ROW
|
||||
#else
|
||||
#define EXTERNAL_MODULE_MODE_ROWS (isModuleXJT(EXTERNAL_MODULE) || isModuleDSM2(EXTERNAL_MODULE) || isModuleMultimodule(EXTERNAL_MODULE)) ? (uint8_t)1 : (uint8_t)0
|
||||
#define EXTERNAL_MODULE_FREQ_ROW isR9MMFlex(EXTERNAL_MODULE) ? (uint8_t)1: (uint8_t)HIDDEN_ROW,
|
||||
#endif
|
||||
|
||||
#define CURSOR_ON_CELL (true)
|
||||
@@ -195,10 +199,8 @@ enum MenuModelSetupItems {
|
||||
|
||||
#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
|
||||
#endif
|
||||
|
||||
#if defined(PCBX7)
|
||||
@@ -303,31 +305,34 @@ void menuModelSetup(event_t event)
|
||||
IF_PXX2(PXX2_LEN_REGISTRATION_ID - 1), // Registration ID
|
||||
|
||||
LABEL(InternalModule),
|
||||
INTERNAL_MODULE_MODE_ROWS,
|
||||
IF_INTERNAL_MODULE_ON((uint8_t)0), // Model Number
|
||||
IF_INTERNAL_MODULE_ON(FAILSAFE_ROWS(INTERNAL_MODULE)), // Failsafe
|
||||
IF_INTERNAL_MODULE_ON((uint8_t)1), // Range check and receiver register
|
||||
INTERNAL_MODULE_MODE_ROWS, // module mode (PXX(2) / None)
|
||||
IF_NOT_PXX2(IF_INTERNAL_MODULE_ON(1)), // Channels min and count
|
||||
IF_NOT_PXX2(IF_INTERNAL_MODULE_ON(HAS_RF_PROTOCOL_MODELINDEX(g_model.moduleData[INTERNAL_MODULE].rfProtocol) ? (uint8_t)2 : (uint8_t)1)),
|
||||
IF_PXX2(0), // Model Number
|
||||
ANTENNA_ROW
|
||||
IF_INTERNAL_MODULE_RECEIVER_1_ON((uint8_t)0), // Receiver Number
|
||||
IF_INTERNAL_MODULE_RECEIVER_1_ON((uint8_t)0), // Receiver Range
|
||||
IF_INTERNAL_MODULE_RECEIVER_1_ON((uint8_t)0), // Receiver Telemetry
|
||||
IF_INTERNAL_MODULE_RECEIVER_1_ON((uint8_t)1), // Receiver Bind/Delete
|
||||
IF_INTERNAL_MODULE_RECEIVER_2_ON((uint8_t)0), // Receiver Number
|
||||
IF_INTERNAL_MODULE_RECEIVER_2_ON((uint8_t)0), // Receiver Range
|
||||
IF_INTERNAL_MODULE_RECEIVER_2_ON((uint8_t)0), // Receiver Telemetry
|
||||
IF_INTERNAL_MODULE_RECEIVER_2_ON((uint8_t)1), // Receiver Bind/Delete
|
||||
IF_INTERNAL_MODULE_ON(INTERNAL_MODULE_ADD_RECEIVER_ROW),
|
||||
IF_PXX2_RECEIVER_DISPLAYED(INTERNAL_MODULE, 0, 1), // Range check and Register buttons
|
||||
IF_PXX2_RECEIVER_DISPLAYED(INTERNAL_MODULE, 0, 0), // Receiver Number
|
||||
IF_PXX2_RECEIVER_DISPLAYED(INTERNAL_MODULE, 0, 0), // Receiver Range
|
||||
IF_PXX2_RECEIVER_DISPLAYED(INTERNAL_MODULE, 0, 0), // Receiver Telemetry
|
||||
IF_PXX2_RECEIVER_DISPLAYED(INTERNAL_MODULE, 0, 1), // Receiver Bind/Delete
|
||||
IF_PXX2_RECEIVER_DISPLAYED(INTERNAL_MODULE, 1, 0), // Receiver Number
|
||||
IF_PXX2_RECEIVER_DISPLAYED(INTERNAL_MODULE, 1, 0), // Receiver Range
|
||||
IF_PXX2_RECEIVER_DISPLAYED(INTERNAL_MODULE, 1, 0), // Receiver Telemetry
|
||||
IF_PXX2_RECEIVER_DISPLAYED(INTERNAL_MODULE, 1, 1), // Receiver Bind/Delete
|
||||
IF_PXX2(INTERNAL_MODULE_ADD_RECEIVER_ROW),
|
||||
IF_INTERNAL_MODULE_ON(FAILSAFE_ROWS(INTERNAL_MODULE)),
|
||||
|
||||
LABEL(ExternalModule),
|
||||
EXTERNAL_MODULE_MODE_ROWS,
|
||||
MULTIMODULE_SUBTYPE_ROWS(EXTERNAL_MODULE)
|
||||
MULTIMODULE_STATUS_ROWS
|
||||
EXTERNAL_MODULE_CHANNELS_ROWS,
|
||||
EXTERNAL_MODULE_BIND_ROWS(),
|
||||
EXTERNAL_MODULE_BIND_ROWS(), // line reused for PPM: PPM settings
|
||||
OUTPUT_TYPE_ROWS()
|
||||
EXTERNAL_MODULE_OPTION_ROW,
|
||||
MULTIMODULE_MODULE_ROWS
|
||||
EXTERNAL_MODULE_POWER_ROW,
|
||||
EXTERNAL_MODULE_FREQ_ROW
|
||||
FAILSAFE_ROWS(EXTERNAL_MODULE),
|
||||
|
||||
TRAINER_ROWS
|
||||
@@ -753,12 +758,10 @@ void menuModelSetup(event_t event)
|
||||
|
||||
case ITEM_MODEL_INTERNAL_MODULE_MODE:
|
||||
lcdDrawTextAlignedLeft(y, STR_MODE);
|
||||
#warning "TR_TARANIS_PROTOCOLS changes need to be ported to all languages"
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_TARANIS_PROTOCOLS, g_model.moduleData[INTERNAL_MODULE].type, attr);
|
||||
if (attr) {
|
||||
g_model.moduleData[INTERNAL_MODULE].type = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].type, MODULE_TYPE_NONE, MODULE_TYPE_XJT, EE_MODEL, isInternalModuleAvailable);
|
||||
if (checkIncDec_Ret) {
|
||||
/* ToDo : what needs to happen on module enable/disable */
|
||||
}
|
||||
g_model.moduleData[INTERNAL_MODULE].type = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].type, MODULE_TYPE_NONE, MODULE_TYPE_MAX, EE_MODEL, isInternalModuleAvailable);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
@@ -977,6 +980,10 @@ void menuModelSetup(event_t event)
|
||||
break;
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
case ITEM_MODEL_INTERNAL_MODULE_NPXX2_CHANNELS:
|
||||
#endif
|
||||
#if defined(PCBSKY9X)
|
||||
case ITEM_MODEL_EXTRA_MODULE_CHANNELS:
|
||||
#endif
|
||||
@@ -1045,7 +1052,7 @@ void menuModelSetup(event_t event)
|
||||
|
||||
break;
|
||||
|
||||
case ITEM_MODEL_INTERNAL_MODULE_MODEL_NUM:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_PXX2_MODEL_NUM:
|
||||
lcdDrawTextAlignedLeft(y, STR_RECEIVER_NUM);
|
||||
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.header.modelId[INTERNAL_MODULE], attr | LEADING0|LEFT, 2);
|
||||
if (attr) {
|
||||
@@ -1056,14 +1063,14 @@ void menuModelSetup(event_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_MODEL_INTERNAL_MODULE_RANGE_REG:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RANGE_REGISTER:
|
||||
lcdDrawTextAlignedLeft(y, INDENT "Module");
|
||||
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_RANGE, (menuHorizontalPosition==0 ? attr : 0) );
|
||||
lcdDrawText(lcdLastRightPos, y, "[Reg]", (menuHorizontalPosition==1 ? attr : 0) );
|
||||
if (attr && s_editMode>0 && menuHorizontalPosition == 0 ) {
|
||||
moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_RANGECHECK;
|
||||
}
|
||||
if(attr && menuHorizontalPosition == 1) {
|
||||
if (attr && menuHorizontalPosition == 1) {
|
||||
if (event == EVT_KEY_BREAK(KEY_ENTER)) {
|
||||
moduleSettings[INTERNAL_MODULE].mode ^= MODULE_MODE_REGISTER;
|
||||
}
|
||||
@@ -1079,7 +1086,7 @@ void menuModelSetup(event_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_MODEL_INTERNAL_MODULE_ADD_RECEIVER:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_PXX2_ADD_RECEIVER:
|
||||
lcdDrawTextAlignedLeft(y, "Receiver");
|
||||
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, "[Add]", attr);
|
||||
if (attr && s_editMode>0) {
|
||||
@@ -1095,8 +1102,8 @@ void menuModelSetup(event_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_NUMBER:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_NUMBER:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1_NUMBER:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2_NUMBER:
|
||||
{
|
||||
uint8_t receiverIdx = CURRENT_RECEIVER_EDITED(k);
|
||||
lcdDrawTextAlignedLeft(y, "Receiver");
|
||||
@@ -1108,8 +1115,8 @@ void menuModelSetup(event_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_RANGE:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_RANGE:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1_RANGE:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2_RANGE:
|
||||
{
|
||||
// TODO have a proper channel assignement screen, section bellow is just for tests
|
||||
uint8_t useUpperChannels;
|
||||
@@ -1129,16 +1136,16 @@ void menuModelSetup(event_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_TELEM:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_TELEM:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1_TELEM:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2_TELEM:
|
||||
{
|
||||
uint8_t receiverIdx = CURRENT_RECEIVER_EDITED(k);
|
||||
g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[receiverIdx].telemetry = editCheckBox(g_model.moduleData[INTERNAL_MODULE].pxx2.receivers[receiverIdx].telemetry, MODEL_SETUP_2ND_COLUMN, y, INDENT "Telemetry", attr, event);
|
||||
}
|
||||
break;
|
||||
|
||||
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_1_BIND:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_RECEIVER_2_BIND:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1_BIND:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2_BIND:
|
||||
{
|
||||
uint8_t receiverIdx = CURRENT_RECEIVER_EDITED(k);
|
||||
lcdDrawTextAlignedLeft(y, INDENT "Receiver");
|
||||
@@ -1183,6 +1190,10 @@ void menuModelSetup(event_t event)
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
case ITEM_MODEL_INTERNAL_MODULE_NPXX2_BIND:
|
||||
#endif
|
||||
#if defined(PCBSKY9X)
|
||||
case ITEM_MODEL_EXTRA_MODULE_BIND:
|
||||
#endif
|
||||
@@ -1596,7 +1607,7 @@ void menuModelSetup(event_t event)
|
||||
if (old_editMode > 0 && s_editMode == 0) {
|
||||
switch(menuVerticalPosition) {
|
||||
#if defined(PCBTARANIS)
|
||||
case ITEM_MODEL_INTERNAL_MODULE_MODEL_NUM:
|
||||
case ITEM_MODEL_INTERNAL_MODULE_NPXX2_BIND:
|
||||
if (menuHorizontalPosition == 0)
|
||||
checkModelIdUnique(g_eeGeneral.currModel, INTERNAL_MODULE);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user