Horus : ext PXX2 module

This commit is contained in:
3djc
2019-04-27 13:33:23 +02:00
parent 628e3ed609
commit 9ee91664ff
+30 -20
View File
@@ -91,7 +91,11 @@ enum MenuModelSetupItems {
ITEM_MODEL_EXTERNAL_MODULE_CHANNELS,
ITEM_MODEL_EXTERNAL_MODULE_BIND,
ITEM_MODEL_EXTERNAL_MODULE_FAILSAFE,
ITEM_MODEL_EXTERNAL_MODULE_PXX2_REGISTER_RANGE,
ITEM_MODEL_EXTERNAL_MODULE_PXX2_OPTIONS,
ITEM_MODEL_EXTERNAL_MODULE_PXX2_RECEIVER_1,
ITEM_MODEL_EXTERNAL_MODULE_PXX2_RECEIVER_2,
ITEM_MODEL_EXTERNAL_MODULE_PXX2_RECEIVER_3,
ITEM_MODEL_EXTERNAL_MODULE_OPTIONS,
#if defined(MULTIMODULE)
ITEM_MODEL_EXTERNAL_MODULE_AUTOBIND,
@@ -497,7 +501,7 @@ int getSwitchWarningsCount()
#define IF_INTERNAL_MODULE_ON(x) (IS_INTERNAL_MODULE_ENABLED() ? (uint8_t)(x) : HIDDEN_ROW)
#define IF_EXTERNAL_MODULE_ON(x) (IS_EXTERNAL_MODULE_ENABLED() ? (uint8_t)(x) : HIDDEN_ROW)
#define INTERNAL_MODULE_MODE_ROWS (uint8_t)0
#define INTERNAL_MODULE_MODE_ROWS isModulePXX2(INTERNAL_MODULE) ? (uint8_t)0 : (uint8_t)1
#define PORT_CHANNELS_ROWS(x) (x==INTERNAL_MODULE ? INTERNAL_MODULE_CHANNELS_ROWS : (x==EXTERNAL_MODULE ? EXTERNAL_MODULE_CHANNELS_ROWS : 1))
#define TIMER_ROWS(x) NAVIGATION_LINE_BY_LINE|1, 0, 0, 0, g_model.timers[x].countdownBeep != COUNTDOWN_SILENT ? (uint8_t)1 : (uint8_t)0
@@ -517,8 +521,6 @@ int getSwitchWarningsCount()
#define POT_WARN_ITEMS() ((g_model.potsWarnMode) ? uint8_t(NAVIGATION_LINE_BY_LINE|(NUM_POTS-1)) : (uint8_t)0)
#define SLIDER_WARN_ITEMS() ((g_model.potsWarnMode) ? uint8_t(NAVIGATION_LINE_BY_LINE|(NUM_SLIDERS-1)) : (uint8_t)0)
#define ANTENNA_ROW IF_NOT_PXX2_MODULE(INTERNAL_MODULE, IF_INTERNAL_MODULE_ON(0)),
#define TRAINER_LINE1_BLUETOOTH_M_ROWS ((bluetooth.distantAddr[0] == 0 || bluetooth.state == BLUETOOTH_STATE_CONNECTED) ? (uint8_t)0 : (uint8_t)1)
#define TRAINER_LINE1_ROWS (g_model.trainerData.mode == TRAINER_MODE_SLAVE ? (uint8_t)1 : (g_model.trainerData.mode == TRAINER_MODE_MASTER_BLUETOOTH ? TRAINER_LINE1_BLUETOOTH_M_ROWS : (g_model.trainerData.mode == TRAINER_MODE_SLAVE_BLUETOOTH ? (uint8_t)1 : HIDDEN_ROW)))
#define TRAINER_LINE2_ROWS (g_model.trainerData.mode == TRAINER_MODE_SLAVE ? (uint8_t)2 : HIDDEN_ROW)
@@ -542,29 +544,35 @@ bool menuModelSetup(event_t event)
LABEL(Throttle), 0, 0, 0,
LABEL(PreflightCheck), 0, 0, SW_WARN_ITEMS(), POT_WARN_ROWS, (g_model.potsWarnMode ? POT_WARN_ITEMS() : HIDDEN_ROW), (g_model.potsWarnMode ? SLIDER_WARN_ITEMS() : HIDDEN_ROW), NAVIGATION_LINE_BY_LINE|(NUM_STICKS+NUM_POTS+NUM_SLIDERS+NUM_ROTARY_ENCODERS-1), 0,
uint8_t((isDefaultModelRegistrationID() || (warningText && popupFunc == runPopupRegister)) ? HIDDEN_ROW : READONLY_ROW), // Registration ID
LABEL(InternalModule),
INTERNAL_MODULE_MODE_ROWS, // module mode (PXX(2) / None)
INTERNAL_MODULE_CHANNELS_ROWS, // Channels min and count
INTERNAL_MODULE_MODE_ROWS, // module mode (PXX(2) / None)
INTERNAL_MODULE_CHANNELS_ROWS, // Channels min and count
IF_NOT_PXX2_MODULE(INTERNAL_MODULE, IF_INTERNAL_MODULE_ON(HAS_RF_PROTOCOL_MODELINDEX(g_model.moduleData[INTERNAL_MODULE].rfProtocol) ? (uint8_t)2 : (uint8_t)1)), // RxNum + Bind
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // RxNum
IF_INTERNAL_MODULE_ON(FAILSAFE_ROWS(INTERNAL_MODULE)), // Failsafe
ANTENNA_ROW // Antenna (pxx1 only)
IF_INTERNAL_MODULE_ON(FAILSAFE_ROWS(INTERNAL_MODULE)), // Failsafe
IF_PXX2_MODULE(INTERNAL_MODULE, 1), // Range check and Register buttons
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // Module options
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // Receiver 1
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // Receiver 2
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // Receiver 3
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // RxNum
IF_INTERNAL_MODULE_ON(FAILSAFE_ROWS(INTERNAL_MODULE)), // Failsafe
IF_NOT_PXX2_MODULE(INTERNAL_MODULE, IF_INTERNAL_MODULE_ON(0)), // Antenna
IF_PXX2_MODULE(INTERNAL_MODULE, 1), // Range check and Register buttons
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // Module options
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // Receiver 1
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // Receiver 2
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // Receiver 3
LABEL(ExternalModule),
EXTERNAL_MODULE_MODE_ROWS,
EXTERNAL_MODULE_MODE_ROWS, // module mode (PXX(2) / None)
MULTIMODULE_STATUS_ROWS
EXTERNAL_MODULE_CHANNELS_ROWS,
((isModuleXJT(EXTERNAL_MODULE) && !HAS_RF_PROTOCOL_MODELINDEX(g_model.moduleData[EXTERNAL_MODULE].rfProtocol)) || isModuleSBUS(EXTERNAL_MODULE)) ? (uint8_t)1 : (isModulePPM(EXTERNAL_MODULE) || isModulePXX(EXTERNAL_MODULE) || isModuleDSM2(EXTERNAL_MODULE) || isModuleMultimodule(EXTERNAL_MODULE)) ? (uint8_t)2 : HIDDEN_ROW,
EXTERNAL_MODULE_CHANNELS_ROWS, // Channels min and count
((isModuleXJT(EXTERNAL_MODULE) && !HAS_RF_PROTOCOL_MODELINDEX(g_model.moduleData[EXTERNAL_MODULE].rfProtocol)) || isModuleSBUS(EXTERNAL_MODULE)) ? (uint8_t)1 : (isModulePPM(EXTERNAL_MODULE) || isModulePXX(EXTERNAL_MODULE) || isModuleDSM2(EXTERNAL_MODULE) || isModuleMultimodule(EXTERNAL_MODULE)) ? (uint8_t)2 : HIDDEN_ROW, // RxNum + Bind
FAILSAFE_ROWS(EXTERNAL_MODULE),
IF_PXX2_MODULE(EXTERNAL_MODULE, 1), // Range check and Register buttons
IF_PXX2_MODULE(EXTERNAL_MODULE, 0), // Module options
IF_PXX2_MODULE(EXTERNAL_MODULE, 0), // Receiver 1
IF_PXX2_MODULE(EXTERNAL_MODULE, 0), // Receiver 2
IF_PXX2_MODULE(EXTERNAL_MODULE, 0), // Receiver 3
EXTERNAL_MODULE_OPTION_ROW,
MULTIMODULE_MODULE_ROWS
EXTERNAL_MODULE_POWER_ROW,
LABEL(Trainer),
0,
TRAINER_LINE1_ROWS,
@@ -977,7 +985,7 @@ bool menuModelSetup(event_t event)
break;
case ITEM_MODEL_INTERNAL_MODULE_PXX2_REGISTER_RANGE:
case ITEM_MODEL_EXTERNAL_MODULE_PXX2_REGISTER_RANGE:
{
uint8_t moduleIdx = CURRENT_MODULE_EDITED(k);
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MODULE);
@@ -1004,7 +1012,7 @@ bool menuModelSetup(event_t event)
break;
case ITEM_MODEL_INTERNAL_MODULE_PXX2_OPTIONS:
case ITEM_MODEL_EXTERNAL_MODULE_PXX2_OPTIONS:
lcdDrawText(INDENT_WIDTH, y, STR_OPTIONS);
lcdDrawText(MODEL_SETUP_2ND_COLUMN, y, STR_SET, attr);
if (event == EVT_KEY_BREAK(KEY_ENTER) && attr) {
@@ -1017,7 +1025,9 @@ bool menuModelSetup(event_t event)
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_1:
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_2:
case ITEM_MODEL_INTERNAL_MODULE_PXX2_RECEIVER_3:
case ITEM_MODEL_EXTERNAL_MODULE_PXX2_RECEIVER_1:
case ITEM_MODEL_EXTERNAL_MODULE_PXX2_RECEIVER_2:
case ITEM_MODEL_EXTERNAL_MODULE_PXX2_RECEIVER_3:
{
uint8_t moduleIdx = CURRENT_MODULE_EDITED(k);
uint8_t receiverIdx = CURRENT_RECEIVER_EDITED(k);