Hardening

This commit is contained in:
Bertrand Songis
2019-06-25 11:26:08 +02:00
parent b5cfa0b5be
commit f9ab0ee9ad
3 changed files with 23 additions and 6 deletions
@@ -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),
+18 -2
View File
@@ -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);
+4 -3
View File
@@ -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 {