Use a list of supported internal modules rather than a module by module test
This commit is contained in:
committed by
Raphael Coeffic
parent
a719b2429f
commit
1c823120e4
@@ -21,6 +21,7 @@
|
||||
#include "boards.h"
|
||||
#include "macros.h"
|
||||
#include "compounditemmodels.h"
|
||||
#include "moduledata.h"
|
||||
|
||||
// TODO remove all those constants
|
||||
// Update: These are now all only used within this class.
|
||||
@@ -808,3 +809,64 @@ StringTagMappingTable Boards::getTrimSourcesLookupTable(Board::Type board)
|
||||
|
||||
return tbl;
|
||||
}
|
||||
|
||||
QList<ModuleType> Boards::getSupportedInternalModules(Board::Type board)
|
||||
{
|
||||
QList<ModuleType> modules;
|
||||
if (IS_TARANIS_X9DP_2019(board) || IS_TARANIS_X7_ACCESS(board)) {
|
||||
modules = {MODULE_TYPE_ISRM_PXX2};
|
||||
} else if (IS_FLYSKY_NV14(board)) {
|
||||
modules = {MODULE_TYPE_FLYSKY};
|
||||
} else if (IS_FAMILY_HORUS_OR_T16(board) || IS_FAMILY_T12(board)
|
||||
|| (IS_TARANIS_SMALL(board) && IS_ACCESS_RADIO(board))) {
|
||||
modules.append({
|
||||
MODULE_TYPE_XJT_PXX1,
|
||||
MODULE_TYPE_ISRM_PXX2,
|
||||
MODULE_TYPE_CROSSFIRE,
|
||||
MODULE_TYPE_MULTIMODULE,
|
||||
});
|
||||
} else if (IS_TARANIS(board)) {
|
||||
modules = {MODULE_TYPE_XJT_PXX1};
|
||||
}
|
||||
|
||||
return modules;
|
||||
}
|
||||
|
||||
ModuleType Boards::getDefaultInternalModules(Board::Type board)
|
||||
{
|
||||
switch(board) {
|
||||
case BOARD_TARANIS_X7:
|
||||
case BOARD_TARANIS_X9D:
|
||||
case BOARD_TARANIS_X9DP:
|
||||
case BOARD_TARANIS_X9E:
|
||||
case BOARD_HORUS_X12S:
|
||||
case BOARD_X10:
|
||||
case BOARD_TARANIS_XLITE:
|
||||
return MODULE_TYPE_XJT_PXX1;
|
||||
|
||||
case BOARD_TARANIS_X7_ACCESS:
|
||||
case BOARD_TARANIS_X9DP_2019:
|
||||
case BOARD_X10_EXPRESS:
|
||||
case BOARD_TARANIS_XLITES:
|
||||
case BOARD_TARANIS_X9LITE:
|
||||
case BOARD_TARANIS_X9LITES:
|
||||
return MODULE_TYPE_ISRM_PXX2;
|
||||
|
||||
case BOARD_JUMPER_T12:
|
||||
case BOARD_JUMPER_T16:
|
||||
case BOARD_RADIOMASTER_TX16S:
|
||||
case BOARD_JUMPER_T18:
|
||||
case BOARD_RADIOMASTER_TX12:
|
||||
case BOARD_RADIOMASTER_T8:
|
||||
case BOARD_JUMPER_TLITE:
|
||||
case BOARD_RADIOMASTER_ZORRO:
|
||||
case BOARD_JUMPER_TPRO:
|
||||
return MODULE_TYPE_MULTIMODULE;
|
||||
|
||||
case BOARD_FLYSKY_NV14:
|
||||
return MODULE_TYPE_FLYSKY;
|
||||
|
||||
default:
|
||||
return MODULE_TYPE_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
|
||||
#pragma once
|
||||
#include "datahelpers.h"
|
||||
#include "moduledata.h"
|
||||
|
||||
#include <QtCore>
|
||||
#include <QObject>
|
||||
@@ -219,7 +220,9 @@ class Boards
|
||||
static AbstractStaticItemModel * intModuleTypeItemModel();
|
||||
static StringTagMappingTable getTrimSwitchesLookupTable(Board::Type board);
|
||||
static StringTagMappingTable getTrimSourcesLookupTable(Board::Type board);
|
||||
|
||||
static QList<ModuleType> getSupportedInternalModules(Board::Type board);
|
||||
static ModuleType getDefaultInternalModules(Board::Type board);
|
||||
|
||||
protected:
|
||||
|
||||
Board::Type m_boardType;
|
||||
@@ -291,7 +294,12 @@ inline bool IS_FAMILY_T16(Board::Type board)
|
||||
|
||||
inline bool IS_FAMILY_T12(Board::Type board)
|
||||
{
|
||||
return board == Board::BOARD_JUMPER_T12 || board == Board::BOARD_RADIOMASTER_TX12 || board == Board::BOARD_RADIOMASTER_ZORRO || board == Board::BOARD_RADIOMASTER_T8 || board == Board::BOARD_JUMPER_TLITE;
|
||||
return board == Board::BOARD_JUMPER_T12 ||
|
||||
board == Board::BOARD_RADIOMASTER_TX12 ||
|
||||
board == Board::BOARD_RADIOMASTER_ZORRO ||
|
||||
board == Board::BOARD_RADIOMASTER_T8 ||
|
||||
board == Board::BOARD_JUMPER_TLITE ||
|
||||
board == Board::BOARD_JUMPER_TPRO;
|
||||
}
|
||||
|
||||
inline bool IS_FLYSKY_NV14(Board::Type board)
|
||||
@@ -409,10 +417,17 @@ inline bool IS_TARANIS_X9DP_2019(Board::Type board)
|
||||
return (board == Board::BOARD_TARANIS_X9DP_2019);
|
||||
}
|
||||
|
||||
inline bool IS_ACCESS_RADIO(Board::Type board)
|
||||
{
|
||||
return IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board) ||
|
||||
board == Board::BOARD_TARANIS_X9DP_2019 ||
|
||||
board == Board::BOARD_X10_EXPRESS || IS_TARANIS_X7_ACCESS(board);
|
||||
}
|
||||
|
||||
inline bool IS_ACCESS_RADIO(Board::Type board, const QString & id)
|
||||
{
|
||||
return (IS_TARANIS_XLITES(board) || IS_TARANIS_X9LITE(board) || board == Board::BOARD_TARANIS_X9DP_2019 || board == Board::BOARD_X10_EXPRESS || IS_TARANIS_X7_ACCESS(board) ||
|
||||
(IS_FAMILY_HORUS_OR_T16(board) && id.contains("internalaccess")));
|
||||
return IS_ACCESS_RADIO(board) ||
|
||||
(IS_FAMILY_HORUS_OR_T16(board) && id.contains("internalaccess"));
|
||||
}
|
||||
|
||||
inline bool HAS_EEPROM_YAML(Board::Type board)
|
||||
|
||||
@@ -407,8 +407,9 @@ AbstractStaticItemModel * ModuleData::internalModuleItemModel()
|
||||
AbstractStaticItemModel * mdl = new AbstractStaticItemModel();
|
||||
mdl->setName("moduledata.internalmodule");
|
||||
|
||||
for (int i = 0; i < MODULE_TYPE_COUNT; i++) {
|
||||
mdl->appendToItemList(typeToString(i), i, isInternalModuleAvailable(i));
|
||||
auto modules = Boards::getSupportedInternalModules(getCurrentBoard());
|
||||
for(auto mod : modules) {
|
||||
mdl->appendToItemList(typeToString(mod), mod);
|
||||
}
|
||||
|
||||
mdl->loadItemList();
|
||||
|
||||
Reference in New Issue
Block a user