diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h index 9d8d4efe0..3db0081df 100644 --- a/companion/src/firmwares/boards.h +++ b/companion/src/firmwares/boards.h @@ -294,7 +294,6 @@ inline bool IS_RADIOMASTER_ZORRO(Board::Type board) return board == Board::BOARD_RADIOMASTER_ZORRO; } - inline bool IS_RADIOMASTER_T8(Board::Type board) { return board == Board::BOARD_RADIOMASTER_T8; @@ -313,7 +312,7 @@ inline bool IS_FAMILY_T12(Board::Type board) board == Board::BOARD_RADIOMASTER_ZORRO || board == Board::BOARD_RADIOMASTER_T8 || board == Board::BOARD_JUMPER_TLITE || - board == Board::BOARD_BETAFPV_LR3PRO || + board == Board::BOARD_BETAFPV_LR3PRO || board == Board::BOARD_JUMPER_TPRO; } diff --git a/companion/src/firmwares/eeprominterface.h b/companion/src/firmwares/eeprominterface.h index 890ef7495..2b27f27d7 100644 --- a/companion/src/firmwares/eeprominterface.h +++ b/companion/src/firmwares/eeprominterface.h @@ -169,7 +169,11 @@ enum Capability { HasModelsList, HasFlySkyGimbals, RotaryEncoderNavigation, - HasSoftwareSerialPower + HasSoftwareSerialPower, + HasIntModuleMulti, + HasIntModuleCRSF, + HasIntModuleELRS, + HasIntModuleFlySky, }; class EEPROMInterface diff --git a/companion/src/firmwares/generalsettings.cpp b/companion/src/firmwares/generalsettings.cpp index 6cefde027..742a84287 100644 --- a/companion/src/firmwares/generalsettings.cpp +++ b/companion/src/firmwares/generalsettings.cpp @@ -346,6 +346,15 @@ void GeneralSettings::convert(RadioDataConversionState & cstate) setDefaultControlTypes(cstate.toType); // start with default switches/pots/sliders + cstate.setComponent("Hardware"); + cstate.setItemType("Int. Module"); + RadioDataConversionState::LogField oldData(internalModule, ModuleData::typeToString(internalModule)); + + if (internalModule != MODULE_TYPE_NONE && (int)internalModule != g.currentProfile().defaultInternalModule()) { + internalModule = MODULE_TYPE_NONE; + cstate.setInvalid(oldData); + } + // Try to intelligently copy any custom control names // SE and SG are skipped on X7 board diff --git a/companion/src/firmwares/modeldata.cpp b/companion/src/firmwares/modeldata.cpp index f920a31ce..8195d964e 100644 --- a/companion/src/firmwares/modeldata.cpp +++ b/companion/src/firmwares/modeldata.cpp @@ -441,7 +441,7 @@ void ModelData::convert(RadioDataConversionState & cstate) origin = QString::number(cstate.modelIdx+1); cstate.setOrigin(tr("Model: ") % origin); - cstate.setComponent("SET", 0); + cstate.setComponent("Settings", 0); if (thrTraceSrc && (int)thrTraceSrc < cstate.fromBoard.getCapability(Board::Pots) + cstate.fromBoard.getCapability(Board::Sliders)) { cstate.setSubComp(tr("Throttle Source")); thrTraceSrc = RawSource(SOURCE_TYPE_STICK, (int)thrTraceSrc + 3).convert(cstate).index - 3; diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index d8f3ad4a3..f9a5cb695 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -786,6 +786,16 @@ int OpenTxFirmware::getCapability(::Capability capability) IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board)); case HasSoftwareSerialPower: return IS_RADIOMASTER_TX16S(board); + case HasIntModuleMulti: + return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board) || + IS_RADIOMASTER_TX12(board) || IS_JUMPER_TLITE(board) || IS_BETAFPV_LR3PRO(board) || + (IS_RADIOMASTER_ZORRO(board) && !id.contains("internalelrs")); + case HasIntModuleCRSF: + return id.contains("internalcrsf"); + case HasIntModuleELRS: + return id.contains("internalelrs") || IS_RADIOMASTER_TX12_MK2(board); + case HasIntModuleFlySky: + return id.contains("afhds3") || IS_FLYSKY_NV14(board); default: return 0; } @@ -831,11 +841,11 @@ bool OpenTxFirmware::isAvailable(PulsesProtocol proto, int port) case PULSES_ACCST_ISRM_D16: return IS_ACCESS_RADIO(board, id); case PULSES_MULTIMODULE: - return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board) || IS_RADIOMASTER_TX12(board) || IS_JUMPER_TLITE(board) || IS_BETAFPV_LR3PRO(board); + return getCapability(HasIntModuleMulti); case PULSES_CROSSFIRE: - return IS_RADIOMASTER_TX12_MK2(board); + return getCapability(HasIntModuleCRSF) || getCapability(HasIntModuleELRS); case PULSES_AFHDS3: - return IS_FLYSKY_NV14(board); + return getCapability(HasIntModuleFlySky); default: return false; }