diff --git a/radio/src/gui/common/stdlcd/model_module_options.cpp b/radio/src/gui/common/stdlcd/model_module_options.cpp index a33a29b98..ad3701618 100644 --- a/radio/src/gui/common/stdlcd/model_module_options.cpp +++ b/radio/src/gui/common/stdlcd/model_module_options.cpp @@ -87,7 +87,7 @@ void menuModelModuleOptions(event_t event) uint8_t modelId = reusableBuffer.hardwareAndSettings.modules[g_moduleIdx].information.modelID; // uint8_t variant = reusableBuffer.hardwareAndSettings.modules[g_moduleIdx].information.variant; - uint8_t optionsAvailable = moduleOptions[modelId] & ((1 << MODULE_OPTION_EXTERNAL_ANTENNA) | (1 << MODULE_OPTION_POWER)); + uint8_t optionsAvailable = getModuleOptions(modelId) & ((1 << MODULE_OPTION_EXTERNAL_ANTENNA) | (1 << MODULE_OPTION_POWER)); SUBMENU_NOTITLE(ITEM_MODULE_SETTINGS_COUNT, { !optionsAvailable ? (uint8_t)0 : IF_MODULE_OPTIONS(MODULE_OPTION_EXTERNAL_ANTENNA, 0), diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index 6b9affe8c..efda11518 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -242,7 +242,7 @@ static const uint8_t moduleOptions[] = { #if defined(SIMU) 0b11111111, // None = display all options on SIMU #else - 0b00000000, // None = display all options on SIMU + 0b00000000, // None = no option available on unknown modules #endif 0b11110001, // XJT 0b11110001, // ISRM @@ -254,9 +254,17 @@ static const uint8_t moduleOptions[] = { 0b11110100, // ISRM-N }; +inline uint8_t getModuleOptions(uint8_t modelId) +{ + if (modelId < DIM(moduleOptions)) + return moduleOptions[modelId]; + else + return moduleOptions[0]; +} + inline bool isModuleOptionAvailable(uint8_t modelId, uint8_t option) { - return moduleOptions[modelId] & (1 << option); + return getModuleOptions(modelId) & (1 << option); } enum { @@ -300,6 +308,14 @@ static const uint8_t receiverOptions[] = { 0b11111111, // R9-MM+OTA }; +inline uint8_t getReceiverOptions(uint8_t modelId) +{ + if (modelId < DIM(receiverOptions)) + return receiverOptions[modelId]; + else + return receiverOptions[0]; +} + inline bool isReceiverOptionAvailable(uint8_t modelId, uint8_t option) { return receiverOptions[modelId] & (1 << option); diff --git a/radio/src/pulses/pxx2.h b/radio/src/pulses/pxx2.h index 41d53cce0..fccb6096f 100644 --- a/radio/src/pulses/pxx2.h +++ b/radio/src/pulses/pxx2.h @@ -102,12 +102,13 @@ static const char * const PXX2receiversModels[] = { enum PXX2ModuleModelID { PXX2_MODULE_NONE, PXX2_MODULE_XJT, - PXX2_MODULE_IXJT, - PXX2_MODULE_IXJT_PRO, - PXX2_MODULE_IXJT_S, + PXX2_MODULE_ISRM, + PXX2_MODULE_ISRM_PRO, + PXX2_MODULE_ISRM_S, PXX2_MODULE_R9M, PXX2_MODULE_R9M_LITE, PXX2_MODULE_R9M_LITE_PRO, + PXX2_MODULE_ISRM_N }; enum PXX2Variant {