diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 6d774e64d..0cbca315c 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -116,26 +116,26 @@ static inline void check_struct() CHKSIZE(TrainerData, 16); #if defined(PCBXLITES) - CHKSIZE(RadioData, 861); + CHKSIZE(RadioData, 862); CHKSIZE(ModelData, 6157); #elif defined(PCBXLITE) - CHKSIZE(RadioData, 859); + CHKSIZE(RadioData, 860); CHKSIZE(ModelData, 6157); #elif defined(PCBX7) - CHKSIZE(RadioData, 865); + CHKSIZE(RadioData, 866); CHKSIZE(ModelData, 6157); #elif defined(PCBX9E) - CHKSIZE(RadioData, 961); + CHKSIZE(RadioData, 962); CHKSIZE(ModelData, 6614); #elif defined(PCBX9D) || defined(PCBX9DP) - CHKSIZE(RadioData, 899); + CHKSIZE(RadioData, 900); CHKSIZE(ModelData, 6604); #elif defined(PCBHORUS) #if defined(PCBX10) - CHKSIZE(RadioData, 920); + CHKSIZE(RadioData, 921); CHKSIZE(ModelData, 11022); #else - CHKSIZE(RadioData, 902); + CHKSIZE(RadioData, 903); CHKSIZE(ModelData, 11020); #endif #endif diff --git a/radio/src/datastructs_private.h b/radio/src/datastructs_private.h index 34ce21de7..82025d0a4 100644 --- a/radio/src/datastructs_private.h +++ b/radio/src/datastructs_private.h @@ -848,6 +848,7 @@ PACK(struct RadioData { uint8_t disableRtcWarning:1; uint8_t keysBacklight:1; int8_t spare1:1 SKIP; + NOBACKUP(uint8_t internalModule ENUM(ModuleType)); NOBACKUP(TrainerData trainer); NOBACKUP(uint8_t view); // index of view in main screen NOBACKUP(BUZZER_FIELD); /* 2bits */ diff --git a/radio/src/gui/colorlcd/radio_hardware.cpp b/radio/src/gui/colorlcd/radio_hardware.cpp index 0221e5b06..219a449f0 100644 --- a/radio/src/gui/colorlcd/radio_hardware.cpp +++ b/radio/src/gui/colorlcd/radio_hardware.cpp @@ -321,6 +321,41 @@ void RadioHardwarePage::build(FormWindow * window) new CheckBox(window, grid.getFieldSlot(1,0), GET_SET_INVERTED(g_eeGeneral.disableRtcWarning )); grid.nextLine(); +#if defined(HARDWARE_INTERNAL_MODULE) + new StaticText(window, grid.getLabelSlot(), TR_INTERNAL_MODULE, 0, + COLOR_THEME_PRIMARY1); + auto internalModule = + new Choice(window, grid.getFieldSlot(1, 0), STR_INTERNAL_MODULE_PROTOCOLS, + MODULE_TYPE_NONE, MODULE_TYPE_COUNT - 1, + GET_SET_DEFAULT(g_eeGeneral.internalModule)); + + internalModule->setAvailableHandler([](int module){ + switch(module) { + case MODULE_TYPE_NONE: return true; +#if defined(INTERNAL_MODULE_MULTI) + case MODULE_TYPE_MULTIMODULE: return true; +#endif +#if defined(INTERNAL_MODULE_CRSF) + case MODULE_TYPE_CROSSFIRE: return true; +#endif +#if defined(INTERNAL_MODULE_PXX1) + case MODULE_TYPE_XJT_PXX1: return true; +#endif +#if defined(INTERNAL_MODULE_PXX2) + case MODULE_TYPE_ISRM_PXX2: return true; +#endif +#if defined(INTERNAL_MODULE_PPM) + case MODULE_TYPE_PPM: return true; +#endif +#if defined(INTERNAL_MODULE_AFHDS2A) || defined(INTERNAL_MODULE_AFHDS3) + case MODULE_TYPE_FLYSKY: return true; +#endif + } + return false; + }); + grid.nextLine(); +#endif + #if defined(CROSSFIRE) // Max baud for external modules new StaticText(window, grid.getLabelSlot(), STR_MAXBAUDRATE, 0, COLOR_THEME_PRIMARY1); diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index 21a9cbab2..60762927e 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -607,41 +607,26 @@ bool isInternalModuleAvailable(int moduleType) if (moduleType == MODULE_TYPE_NONE) return true; -#if defined(INTERNAL_MODULE_MULTI) - if (moduleType == MODULE_TYPE_MULTIMODULE) - return true; -#endif + if (g_eeGeneral.internalModule != moduleType) + return false; -#if defined(INTERNAL_MODULE_CRSF) - if (moduleType == MODULE_TYPE_CROSSFIRE) - return true; -#endif - -#if defined(PXX1) && defined(INTERNAL_MODULE_PXX1) - if (moduleType == MODULE_TYPE_XJT_PXX1) { - return !isModuleUsingSport(EXTERNAL_MODULE, g_model.moduleData[EXTERNAL_MODULE].type); +#if defined(INTERNAL_MODULE_PXX1) + if ((moduleType == MODULE_TYPE_XJT_PXX1) && + isModuleUsingSport(EXTERNAL_MODULE, + g_model.moduleData[EXTERNAL_MODULE].type)) { + return false; } #endif -#if defined(PXX2) && defined(INTERNAL_MODULE_PXX2) - if (moduleType == MODULE_TYPE_ISRM_PXX2) { - return !areModulesConflicting(moduleType, g_model.moduleData[EXTERNAL_MODULE].type); +#if defined(INTERNAL_MODULE_PXX2) + if ((moduleType == MODULE_TYPE_ISRM_PXX2) && + areModulesConflicting(moduleType, + g_model.moduleData[EXTERNAL_MODULE].type)) { + return false; } #endif -#if defined(PPM) && defined(INTERNAL_MODULE_PPM) - if (moduleType == MODULE_TYPE_PPM) { - return true; - } -#endif - -#if (defined(AFHDS3) || defined(AFHDS2)) && (defined(INTERNAL_MODULE_AFHDS2A) || defined(INTERNAL_MODULE_AFHDS3)) - if (moduleType == MODULE_TYPE_FLYSKY) { - return true; - } -#endif - - return false; + return true; } #else bool isInternalModuleAvailable(int moduleType) diff --git a/radio/src/storage/sdcard_yaml.cpp b/radio/src/storage/sdcard_yaml.cpp index ce669ca26..55e6f22cf 100644 --- a/radio/src/storage/sdcard_yaml.cpp +++ b/radio/src/storage/sdcard_yaml.cpp @@ -130,6 +130,10 @@ const char * loadRadioSettings() #endif } +#if defined(DEFAULT_INTERNAL_MODULE) + g_eeGeneral.internalModule = DEFAULT_INTERNAL_MODULE; +#endif + const char* error = loadRadioSettingsYaml(); if (!error) { g_eeGeneral.chkSum = evalChkSum(); diff --git a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp index 940b5a3da..28a32ad4e 100644 --- a/radio/src/storage/yaml/yaml_datastructs_nv14.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_nv14.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -234,27 +255,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -378,6 +378,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_t12.cpp b/radio/src/storage/yaml/yaml_datastructs_t12.cpp index aa600ddd4..35622e44d 100644 --- a/radio/src/storage/yaml/yaml_datastructs_t12.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_t12.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -224,27 +245,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -349,6 +349,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_t8.cpp b/radio/src/storage/yaml/yaml_datastructs_t8.cpp index aa600ddd4..35622e44d 100644 --- a/radio/src/storage/yaml/yaml_datastructs_t8.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_t8.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -224,27 +245,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -349,6 +349,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_tlite.cpp b/radio/src/storage/yaml/yaml_datastructs_tlite.cpp index aa600ddd4..35622e44d 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tlite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tlite.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -224,27 +245,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -349,6 +349,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_tx12.cpp b/radio/src/storage/yaml/yaml_datastructs_tx12.cpp index 8603219d8..25357a3a4 100644 --- a/radio/src/storage/yaml/yaml_datastructs_tx12.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_tx12.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -224,27 +245,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -349,6 +349,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_x10.cpp b/radio/src/storage/yaml/yaml_datastructs_x10.cpp index 44fa71a05..c1fdd5cb3 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x10.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x10.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -257,27 +278,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -399,6 +399,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp index 82c6bad7d..8574486e8 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x12s.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x12s.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -255,27 +276,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -397,6 +397,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_x7.cpp b/radio/src/storage/yaml/yaml_datastructs_x7.cpp index aa600ddd4..35622e44d 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x7.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x7.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -224,27 +245,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -349,6 +349,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp index e5a64dadb..0be048a3f 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9d.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9d.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -231,27 +252,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -356,6 +356,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp index 23fdb4339..6a811f5a0 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9e.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9e.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -270,27 +291,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -395,6 +395,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp index bb18434b3..bda4c59c6 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9lite.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -211,27 +232,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -336,6 +336,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp b/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp index 56641780a..d16c3bd75 100644 --- a/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_x9lites.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -219,27 +240,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -344,6 +344,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_xlite.cpp b/radio/src/storage/yaml/yaml_datastructs_xlite.cpp index ba53ebcc7..fc4795fb4 100644 --- a/radio/src/storage/yaml/yaml_datastructs_xlite.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_xlite.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -216,27 +237,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -341,6 +341,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp index 491f7e014..9fba51c9c 100644 --- a/radio/src/storage/yaml/yaml_datastructs_xlites.cpp +++ b/radio/src/storage/yaml/yaml_datastructs_xlites.cpp @@ -21,6 +21,27 @@ const struct YamlIdStr enum_AntennaModes[] = { { ANTENNA_MODE_LAST, "MODE_LAST" }, { 0, NULL } }; +const struct YamlIdStr enum_ModuleType[] = { + { MODULE_TYPE_NONE, "TYPE_NONE" }, + { MODULE_TYPE_PPM, "TYPE_PPM" }, + { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, + { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, + { MODULE_TYPE_DSM2, "TYPE_DSM2" }, + { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, + { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, + { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, + { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, + { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, + { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, + { MODULE_TYPE_GHOST, "TYPE_GHOST" }, + { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, + { MODULE_TYPE_SBUS, "TYPE_SBUS" }, + { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, + { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, + { MODULE_TYPE_COUNT, "TYPE_COUNT" }, + { MODULE_TYPE_MAX, "TYPE_MAX" }, + { 0, NULL } +}; const struct YamlIdStr enum_TrainerMultiplex[] = { { TRAINER_OFF, "OFF" }, { TRAINER_ADD, "ADD" }, @@ -218,27 +239,6 @@ const struct YamlIdStr enum_PotsWarnMode[] = { { POTS_WARN_AUTO, "WARN_AUTO" }, { 0, NULL } }; -const struct YamlIdStr enum_ModuleType[] = { - { MODULE_TYPE_NONE, "TYPE_NONE" }, - { MODULE_TYPE_PPM, "TYPE_PPM" }, - { MODULE_TYPE_XJT_PXX1, "TYPE_XJT_PXX1" }, - { MODULE_TYPE_ISRM_PXX2, "TYPE_ISRM_PXX2" }, - { MODULE_TYPE_DSM2, "TYPE_DSM2" }, - { MODULE_TYPE_CROSSFIRE, "TYPE_CROSSFIRE" }, - { MODULE_TYPE_MULTIMODULE, "TYPE_MULTIMODULE" }, - { MODULE_TYPE_R9M_PXX1, "TYPE_R9M_PXX1" }, - { MODULE_TYPE_R9M_PXX2, "TYPE_R9M_PXX2" }, - { MODULE_TYPE_R9M_LITE_PXX1, "TYPE_R9M_LITE_PXX1" }, - { MODULE_TYPE_R9M_LITE_PXX2, "TYPE_R9M_LITE_PXX2" }, - { MODULE_TYPE_GHOST, "TYPE_GHOST" }, - { MODULE_TYPE_R9M_LITE_PRO_PXX2, "TYPE_R9M_LITE_PRO_PXX2" }, - { MODULE_TYPE_SBUS, "TYPE_SBUS" }, - { MODULE_TYPE_XJT_LITE_PXX2, "TYPE_XJT_LITE_PXX2" }, - { MODULE_TYPE_FLYSKY, "TYPE_FLYSKY" }, - { MODULE_TYPE_COUNT, "TYPE_COUNT" }, - { MODULE_TYPE_MAX, "TYPE_MAX" }, - { 0, NULL } -}; const struct YamlIdStr enum_FailsafeModes[] = { { FAILSAFE_NOT_SET, "NOT_SET" }, { FAILSAFE_HOLD, "HOLD" }, @@ -343,6 +343,7 @@ static const struct YamlNode struct_RadioData[] = { YAML_UNSIGNED( "disableRtcWarning", 1 ), YAML_UNSIGNED( "keysBacklight", 1 ), YAML_PADDING( 1 ), + YAML_ENUM("internalModule", 8, enum_ModuleType), YAML_STRUCT("trainer", 128, struct_TrainerData, NULL), YAML_UNSIGNED( "view", 8 ), YAML_PADDING( 2 ), diff --git a/radio/src/targets/common/arm/CMakeLists.txt b/radio/src/targets/common/arm/CMakeLists.txt index bd780c5d5..b1ea6469f 100644 --- a/radio/src/targets/common/arm/CMakeLists.txt +++ b/radio/src/targets/common/arm/CMakeLists.txt @@ -24,6 +24,57 @@ option(DEBUG_USB_INTERRUPTS "Count individual USB interrupts" OFF) option(DEBUG_TASKS "Task switching statistics" OFF) option(DEBUG_TIMERS "Time critical parts of the code" OFF) +# option to select the default internal module +#set(DEFAULT_INTERNAL_MODULE NONE CACHE STRING "Default internal module") +set_property(CACHE DEFAULT_INTERNAL_MODULE PROPERTY STRINGS ${INTERNAL_MODULES}) + +# define variables for internal modules +foreach(module ${INTERNAL_MODULES}) + message("-- Adding support for ${module} as internal module") + set(INTERNAL_MODULE_${module} ON CACHE BOOL "Support for ${module} internal module") +endforeach() + +if(INTERNAL_MODULE_PXX1) + add_definitions(-DHARDWARE_INTERNAL_MODULE) + add_definitions(-DINTERNAL_MODULE_PXX1) +endif() + +if(INTERNAL_MODULE_PXX2) + set(PXX2 ON) + add_definitions(-DHARDWARE_INTERNAL_MODULE) + add_definitions(-DINTERNAL_MODULE_PXX2) +endif() + +if(INTERNAL_MODULE_MULTI) + add_definitions(-DHARDWARE_INTERNAL_MODULE) + add_definitions(-DINTERNAL_MODULE_MULTI) + add_definitions(-DINTERNAL_MODULE_SERIAL_TELEMETRY) +endif() + +if(INTERNAL_MODULE_CRSF) + add_definitions(-DHARDWARE_INTERNAL_MODULE) + add_definitions(-DINTERNAL_MODULE_CRSF) + add_definitions(-DINTERNAL_MODULE_SERIAL_TELEMETRY) +endif() + +if(INTERNAL_MODULE_PPM) + add_definitions(-DHARDWARE_INTERNAL_MODULE) + add_definitions(-DINTERNAL_MODULE_PPM) +endif() + +if(DEFAULT_INTERNAL_MODULE) + add_definitions(-DDEFAULT_INTERNAL_MODULE=MODULE_TYPE_${DEFAULT_INTERNAL_MODULE}) +endif() + +if(HARDWARE_EXTERNAL_MODULE) + set(TARGET_SRC + ${TARGET_SRC} + extmodule_driver.cpp + ) + add_definitions(-DHARDWARE_EXTERNAL_MODULE) +endif() + + if(TIMERS EQUAL 3) add_definitions(-DTIMERS=3) else() diff --git a/radio/src/targets/horus/CMakeLists.txt b/radio/src/targets/horus/CMakeLists.txt index 9a0a83605..ad2a310b3 100644 --- a/radio/src/targets/horus/CMakeLists.txt +++ b/radio/src/targets/horus/CMakeLists.txt @@ -48,6 +48,13 @@ endif() add_definitions(-DPCBFRSKY) +# defines existing internal modules +set(INTERNAL_MODULES PXX1 PXX2 MULTI CRSF) + +# VCP CLI +set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough") +set(CLI ON CACHE BOOL "Enable CLI") + if (PCB STREQUAL X10) set(PCBREV "STD" CACHE STRING "PCB Revision") add_definitions(-DPCBX10) @@ -73,8 +80,7 @@ if (PCB STREQUAL X10) set(LUA_EXPORT lua_export_x10) if (PCBREV STREQUAL EXPRESS) set(FLAVOUR x10express) - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" OFF) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" ON) + set(DEFAULT_INTERNAL_MODULE ISRM_PXX2 CACHE STRING "Default internal module") set(BLUETOOTH ON) add_definitions(-DHARDWARE_POWER_MANAGEMENT_UNIT) add_definitions(-DRADIO_X10E) @@ -84,7 +90,7 @@ if (PCB STREQUAL X10) set(LUA_EXPORT lua_export_t16) add_definitions(-DRADIO_T16) add_definitions(-DRADIO_FAMILY_T16) - option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" OFF) + set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module") option(BLUETOOTH "Support for bluetooth module" OFF) add_definitions(-DMANUFACTURER_JUMPER) elseif (PCBREV STREQUAL TX16S) @@ -92,8 +98,7 @@ if (PCB STREQUAL X10) set(LUA_EXPORT lua_export_t16) add_definitions(-DRADIO_TX16S) add_definitions(-DRADIO_FAMILY_T16) - option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON) - option(INTERNAL_MODULE_CRSF "Support for CRSF internal module" OFF) + set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module") option(BLUETOOTH "Support for bluetooth module" OFF) option(INTERNAL_GPS "Support for internal ublox GPS" OFF) set(HARDWARE_TOUCH YES) @@ -106,27 +111,23 @@ if (PCB STREQUAL X10) set(AUX2_SERIAL ON) endif() set(INTERNAL_GPS_BAUDRATE "9600" CACHE STRING "Baud rate for internal GPS") - set(ENABLE_SERIAL_PASSTHROUGH ON CACHE BOOL "Enable serial passthrough") - set(CLI ON CACHE BOOL "Enable CLI") elseif (PCBREV STREQUAL T18) set(FLAVOUR t18) set(LUA_EXPORT lua_export_t16) add_definitions(-DRADIO_T18) add_definitions(-DRADIO_FAMILY_T16) - option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON) + set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module") option(BLUETOOTH "Support for bluetooth module" OFF) set(HARDWARE_TOUCH YES) add_definitions(-DMANUFACTURER_JUMPER) else() set(FLAVOUR x10) - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF) + set(DEFAULT_INTERNAL_MODULE XJT_PXX1 CACHE STRING "Default internal module") set(BLUETOOTH ON) add_definitions(-DMANUFACTURER_FRSKY) endif() elseif (PCB STREQUAL X12S) - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF) + set(DEFAULT_INTERNAL_MODULE XJT_PXX1 CACHE STRING "Default internal module") set(FLAVOUR x12s) set(BLUETOOTH ON) set(PCBREV "13" CACHE STRING "PCB Revision") @@ -201,39 +202,17 @@ if(IMU_LSM6DS33) set(IMU_LSM6DS33_DRIVER imu_lsm6ds33.cpp) endif() -if(HARDWARE_EXTERNAL_MODULE) - add_definitions(-DHARDWARE_EXTERNAL_MODULE) -endif() - -if(INTERNAL_MODULE_PXX1) - add_definitions(-DHARDWARE_INTERNAL_MODULE) - add_definitions(-DINTERNAL_MODULE_PXX1) -else() +if(NOT INTERNAL_MODULE_PXX1) option(ALLOW_TRAINER_MULTI "Allow multimodule to be use as trainer input" OFF) endif() -if(INTERNAL_MODULE_PXX2) - set(PXX2 ON) - add_definitions(-DHARDWARE_INTERNAL_MODULE) - add_definitions(-DINTERNAL_MODULE_PXX2) +if(PXX2 IN_LIST INTERNAL_MODULES) if (NOT PCBREV STREQUAL EXPRESS) set(ACCESS_DENIED ON) add_definitions(-DACCESS_DENIED) endif() endif() -if(INTERNAL_MODULE_MULTI) - add_definitions(-DHARDWARE_INTERNAL_MODULE) - add_definitions(-DINTERNAL_MODULE_MULTI) - add_definitions(-DINTERNAL_MODULE_SERIAL_TELEMETRY) -endif() - -if(INTERNAL_MODULE_CRSF) - add_definitions(-DHARDWARE_INTERNAL_MODULE) - add_definitions(-DINTERNAL_MODULE_CRSF) - add_definitions(-DINTERNAL_MODULE_SERIAL_TELEMETRY) -endif() - if(ALLOW_TRAINER_MULTI) add_definitions(-DALLOW_TRAINER_MULTI) endif() @@ -255,7 +234,6 @@ set(GVAR_SCREEN model_gvars.cpp) set(TARGET_SRC ${TARGET_SRC} led_driver.cpp - extmodule_driver.cpp trainer_driver.cpp ../common/arm/stm32/mixer_scheduler_driver.cpp ../common/arm/stm32/timers_driver.cpp diff --git a/radio/src/targets/nv14/CMakeLists.txt b/radio/src/targets/nv14/CMakeLists.txt index 0e4835c3f..711f75262 100644 --- a/radio/src/targets/nv14/CMakeLists.txt +++ b/radio/src/targets/nv14/CMakeLists.txt @@ -49,6 +49,10 @@ add_definitions(-DPCBNV14 -DPCBFLYSKY -DINTERNAL_MODULE_SERIAL -DAFHDS2_BAUDRATE add_definitions(-DBATTERY_CHARGE) # -DSOFTWARE_VOLUME add_definitions(-DINTERNAL_MODULE_AFHDS2A) +# defines existing internal modules +set(INTERNAL_MODULES AFHDS2A) +set(DEFAULT_INTERNAL_MODULE FLYSKY CACHE STRING "Default internal module") + set(TARGET_SRC ${TARGET_SRC} audio_spi_driver.cpp diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index 859827532..cefcd48c5 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -8,13 +8,12 @@ option(INTERNAL_MODULE_PPM "Support for PPM internal module" OFF) option(AUTOUPDATE "Auto update internal chips from SD" OFF) option(BIND_KEY "Enable bind button" OFF) -set(EXTERNAL_MODULE YES) +set(HARDWARE_EXTERNAL_MODULE YES) add_definitions(-DPCBFRSKY) if(PCB STREQUAL X9E) - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF) + set(DEFAULT_INTERNAL_MODULE XJT_PXX1 CACHE STRING "Default internal module") set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)") set(STICKS "STANDARD" CACHE STRING "Sticks type (STANDARD/HORUS)") set(CPU_TYPE STM32F4) @@ -64,8 +63,7 @@ elseif(PCB STREQUAL X9D+) add_definitions(-DPCBREV=${PCBREV}) add_definitions(-DMANUFACTURER_FRSKY) if (${PCBREV} STREQUAL 2019) - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" OFF) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" ON) + set(DEFAULT_INTERNAL_MODULE ISRM_PXX2 CACHE STRING "Default internal module") set(FLAVOUR x9d+2019) set(LUA_EXPORT lua_export_x9d+2019) set(CPU_TYPE STM32F4) @@ -86,8 +84,7 @@ elseif(PCB STREQUAL X9D+) set(ROTARY_ENCODER YES) set(INTERNAL_MODULE_SERIAL YES) else() - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF) + set(DEFAULT_INTERNAL_MODULE XJT_PXX1 CACHE STRING "Default internal module") set(FLAVOUR x9d+) set(CPU_TYPE STM32F2) set(CPU_TYPE_FULL STM32F205xE) # for size report @@ -96,8 +93,7 @@ elseif(PCB STREQUAL X9D+) set(STATUS_LEDS NO) endif() elseif(PCB STREQUAL X9D) - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF) + set(DEFAULT_INTERNAL_MODULE XJT_PXX1 CACHE STRING "Default internal module") set(FLAVOUR x9d) set(CPU_TYPE STM32F2) set(CPU_TYPE_FULL STM32F205xE) # for size report @@ -130,7 +126,7 @@ elseif(PCB STREQUAL X7) add_definitions(-DPCBX7 -DSOFTWARE_VOLUME) add_definitions(-DPWR_BUTTON_${PWR_BUTTON}) if(PCBREV STREQUAL T12) - option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" OFF) + set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module") set(FLAVOUR t12) set(NAVIGATION_TYPE 9x) set(CPU_TYPE STM32F2) @@ -142,7 +138,7 @@ elseif(PCB STREQUAL X7) add_definitions(-DEEPROM_VARIANT=0x4001) add_definitions(-DMANUFACTURER_JUMPER) elseif(PCBREV STREQUAL TLITE) - option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON) + set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module") set(FLAVOUR tlite) set(NAVIGATION_TYPE 9x) set(CPU_TYPE STM32F2) @@ -154,7 +150,7 @@ elseif(PCB STREQUAL X7) add_definitions(-DEEPROM_VARIANT=0x4003) add_definitions(-DMANUFACTURER_JUMPER) elseif(PCBREV STREQUAL TX12) - option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON) + set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module") set(FLAVOUR tx12) set(NAVIGATION_TYPE x7) set(CPU_TYPE STM32F2) @@ -168,8 +164,8 @@ elseif(PCB STREQUAL X7) add_definitions(-DEEPROM_VARIANT=0x4002) add_definitions(-DMANUFACTURER_RADIOMASTER) elseif(PCBREV STREQUAL T8) - option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON) - set(EXTERNAL_MODULE NO) + set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module") + set(HARDWARE_EXTERNAL_MODULE NO) #set(AFHDS3 NO) set(FLAVOUR t8) set(NAVIGATION_TYPE x7) @@ -186,8 +182,7 @@ elseif(PCB STREQUAL X7) add_definitions(-DEEPROM_VARIANT=0x4004) add_definitions(-DMANUFACTURER_RADIOMASTER) elseif(PCBREV STREQUAL ACCESS) - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" OFF) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" ON) + set(DEFAULT_INTERNAL_MODULE ISRM_PXX2 CACHE STRING "Default internal module") set(FLAVOUR x7access) set(NAVIGATION_TYPE x7) set(CPU_TYPE STM32F4) @@ -211,8 +206,7 @@ elseif(PCB STREQUAL X7) set(INTERNAL_MODULE_SERIAL YES) add_definitions(-DMANUFACTURER_FRSKY) else() - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF) + set(DEFAULT_INTERNAL_MODULE XJT_PXX1 CACHE STRING "Default internal module") set(FLAVOUR x7) set(NAVIGATION_TYPE x7) set(CPU_TYPE STM32F2) @@ -235,8 +229,7 @@ elseif(PCB STREQUAL X7) endif() endif() elseif(PCB STREQUAL X9LITE) - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" OFF) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" ON) + set(DEFAULT_INTERNAL_MODULE ISRM_PXX2 CACHE STRING "Default internal module") set(PXX_FREQUENCY "HIGH") set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)") set(CPU_TYPE STM32F2) @@ -262,8 +255,7 @@ elseif(PCB STREQUAL X9LITE) set(INTERNAL_MODULE_SERIAL YES) add_definitions(-DMANUFACTURER_FRSKY) elseif(PCB STREQUAL X9LITES) - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" OFF) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" ON) + set(DEFAULT_INTERNAL_MODULE ISRM_PXX2 CACHE STRING "Default internal module") set(PXX_FREQUENCY "HIGH") set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)") set(CPU_TYPE STM32F2) @@ -290,8 +282,7 @@ elseif(PCB STREQUAL X9LITES) set(INTERNAL_MODULE_SERIAL YES) add_definitions(-DMANUFACTURER_FRSKY) elseif(PCB STREQUAL XLITE) - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" OFF) + set(DEFAULT_INTERNAL_MODULE XJT_PXX1 CACHE STRING "Default internal module") set(PXX_FREQUENCY "HIGH" CACHE STRING "PXX frequency (LOW / HIGH)") # always use HIGH except on some prototype boards set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)") set(CPU_TYPE STM32F2) @@ -316,8 +307,7 @@ elseif(PCB STREQUAL XLITE) set(INTERNAL_MODULE_SERIAL YES) add_definitions(-DMANUFACTURER_FRSKY) elseif(PCB STREQUAL XLITES) - option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" OFF) - option(INTERNAL_MODULE_PXX2 "Support for PXX2 internal module" ON) + set(DEFAULT_INTERNAL_MODULE ISRM_PXX2 CACHE STRING "Default internal module") set(PXX_FREQUENCY "HIGH") set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)") set(CPU_TYPE STM32F2) @@ -361,15 +351,24 @@ if(GYRO) endif() if(INTERNAL_MODULE_SERIAL) + + # defines existing internal modules + set(INTERNAL_MODULES PXX1 PXX2 MULTI CRSF) + add_definitions(-DINTERNAL_MODULE_SERIAL) if(PXX_FREQUENCY STREQUAL HIGH) add_definitions(-DPXX_FREQUENCY_HIGH) endif() - set(TARGET_SRC - ${TARGET_SRC} - ../common/arm/stm32/intmodule_serial_driver.cpp + set(FIRMWARE_SRC + ${FIRMWARE_SRC} + targets/common/arm/stm32/intmodule_serial_driver.cpp ) -elseif(INTERNAL_MODULE_PXX1 OR INTERNAL_MODULE_PXX2) + +else() + + # defines existing internal modules + set(INTERNAL_MODULES PXX1) + set(TARGET_SRC ${TARGET_SRC} intmodule_pulses_driver.cpp @@ -503,38 +502,4 @@ if(LCD_DUAL_BUFFER) add_definitions(-DLCD_DUAL_BUFFER) endif() -if(INTERNAL_MODULE_PXX1) - add_definitions(-DHARDWARE_INTERNAL_MODULE) - add_definitions(-DINTERNAL_MODULE_PXX1) -endif() - -if(INTERNAL_MODULE_PXX2) - set(PXX2 ON) - add_definitions(-DHARDWARE_INTERNAL_MODULE) - add_definitions(-DINTERNAL_MODULE_PXX2) -endif() - -if(INTERNAL_MODULE_MULTI) - add_definitions(-DHARDWARE_INTERNAL_MODULE) - add_definitions(-DINTERNAL_MODULE_MULTI) - add_definitions(-DINTERNAL_MODULE_SERIAL_TELEMETRY) - set(TARGET_SRC - ${TARGET_SRC} - ../common/arm/stm32/intmodule_serial_driver.cpp - ) -endif() - -if(INTERNAL_MODULE_PPM) - add_definitions(-DHARDWARE_INTERNAL_MODULE) - add_definitions(-DINTERNAL_MODULE_PPM) -endif() - -if(EXTERNAL_MODULE) - set(TARGET_SRC - ${TARGET_SRC} - extmodule_driver.cpp - ) - add_definitions(-DHARDWARE_EXTERNAL_MODULE) -endif() - set(RADIO_DEPENDENCIES ${RADIO_DEPENDENCIES} ${BITMAPS_TARGET})