feat: add support for ExpressLRS optional arming method (#5641)
Co-authored-by: elecpower <elecpower@users.noreply.github.com>
This commit is contained in:
@@ -125,6 +125,10 @@ enum MenuModelSetupItems {
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_BAUDRATE,
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_SERIALSTATUS,
|
||||
#endif
|
||||
#if defined(CROSSFIRE)
|
||||
ITEM_MODEL_SETUP_ARMING_MODE,
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_ARMING_TRIGGER,
|
||||
#endif
|
||||
#if defined (MULTIMODULE)
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_PROTOCOL,
|
||||
ITEM_MODEL_SETUP_EXTERNAL_MODULE_DSM_CLONED,
|
||||
@@ -420,9 +424,13 @@ inline uint8_t EXTERNAL_MODULE_TYPE_ROW()
|
||||
#else
|
||||
#define IF_MODULE_BAUDRATE_ADJUST(module, xxx) (isModuleCrossfire(module) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#endif
|
||||
#define IF_MODULE_ARMED(module, xxx) (CRSF_ELRS_MIN_VER(module, 4, 0) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#define IF_MODULE_ARMED_TRIGGER(module, xxx) ((CRSF_ELRS_MIN_VER(module, 4, 0) && g_model.moduleData[module].crsf.crsfArmingMode) ? (uint8_t)(xxx) : HIDDEN_ROW)
|
||||
#else
|
||||
#define IF_MODULE_SYNCED(module, xxx)
|
||||
#define IF_MODULE_BAUDRATE_ADJUST(module, xxx)
|
||||
#define IF_MODULE_ARMED(module, xxx)
|
||||
#define IF_MODULE_ARMED_TRIGGER(module, xxx)
|
||||
#endif
|
||||
|
||||
#if defined(PXX2)
|
||||
@@ -546,6 +554,8 @@ void menuModelSetup(event_t event)
|
||||
EXTERNAL_MODULE_TYPE_ROW(), // ITEM_MODEL_SETUP_EXTERNAL_MODULE_TYPE
|
||||
IF_MODULE_BAUDRATE_ADJUST(EXTERNAL_MODULE, 0), // ITEM_MODEL_SETUP_EXTERNAL_MODULE_BAUDRATE
|
||||
IF_MODULE_SYNCED(EXTERNAL_MODULE, 0), // ITEM_MODEL_SETUP_EXTERNAL_MODULE_SERIALSTATUS
|
||||
IF_MODULE_ARMED(EXTERNAL_MODULE, 0), // ITEM_MODEL_SETUP_ARMING_MODE
|
||||
IF_MODULE_ARMED_TRIGGER(EXTERNAL_MODULE, 0), // ITEM_MODEL_SETUP_ARMING_TRIGGER
|
||||
MULTIMODULE_TYPE_ROW(EXTERNAL_MODULE) // ITEM_MODEL_SETUP_EXTERNAL_MODULE_PROTOCOL
|
||||
MULTIMODULE_DSM_CLONED_RAW(EXTERNAL_MODULE), // ITEM_MODEL_SETUP_EXTERNAL_MODULE_DSM_CLONED
|
||||
MULTIMODULE_STATUS_ROWS(EXTERNAL_MODULE) // ITEM_MODEL_SETUP_EXTERNAL_MODULE_STATUS + ITEM_MODEL_SETUP_EXTERNAL_MODULE_SYNCSTATUS
|
||||
@@ -1266,6 +1276,21 @@ void menuModelSetup(event_t event)
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(CROSSFIRE)
|
||||
case ITEM_MODEL_SETUP_ARMING_MODE:
|
||||
g_model.moduleData[EXTERNAL_MODULE].crsf.crsfArmingMode =
|
||||
editChoice(MODEL_SETUP_2ND_COLUMN, y, STR_CRSF_ARMING_MODE, STR_CRSF_ARMING_MODES,
|
||||
g_model.moduleData[EXTERNAL_MODULE].crsf.crsfArmingMode, ARMING_MODE_FIRST, ARMING_MODE_LAST, attr, event, INDENT_WIDTH);
|
||||
break;
|
||||
|
||||
case ITEM_MODEL_SETUP_EXTERNAL_MODULE_ARMING_TRIGGER:
|
||||
lcdDrawTextIndented(y, STR_SWITCH);
|
||||
drawSwitch(MODEL_SETUP_2ND_COLUMN, y, g_model.moduleData[EXTERNAL_MODULE].crsf.crsfArmingTrigger, attr);
|
||||
if(attr)
|
||||
CHECK_INCDEC_SWITCH(event, g_model.moduleData[EXTERNAL_MODULE].crsf.crsfArmingTrigger, SWSRC_FIRST, SWSRC_LAST, EE_MODEL, isSwitchAvailableForArming);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
case ITEM_MODEL_SETUP_EXTERNAL_MODULE_PROTOCOL:
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user