Add board flavour

This commit is contained in:
elecpower
2021-12-31 10:53:11 +01:00
committed by Raphael Coeffic
parent f965707bdd
commit e64f57768a
6 changed files with 111 additions and 70 deletions
@@ -27,6 +27,8 @@
#include "eeprominterface.h"
#include "edgetxinterface.h"
#include <QMessageBox>
const YamlLookupTable beeperModeLut = {
{ GeneralSettings::BEEPER_QUIET, "mode_quiet" },
{ GeneralSettings::BEEPER_ALARMS_ONLY, "mode_alarms" },
@@ -81,9 +83,11 @@ Node convert<GeneralSettings>::encode(const GeneralSettings& rhs)
{
Node node;
std::string board = getCurrentFirmware()->getFlavour().toStdString();
node["board"] = board;
node["version"] = CPN_CURRENT_SETTINGS_VERSION;
// Radio calib
YamlCalibData calib(rhs.calibMid, rhs.calibSpanNeg, rhs.calibSpanPos);
node["calib"] = calib;
@@ -198,21 +202,40 @@ bool convert<GeneralSettings>::decode(const Node& node, GeneralSettings& rhs)
// qDebug() << QString::fromStdString(n.first.Scalar());
// }
// TODO: check board string and fetch Board instance
std::string board;
node["board"] >> board;
// TODO: we should be able to fetch the board based on 'board'
// auto fw = getCurrentFirmware();
// if (fw) {
// qDebug() << "FW Id: " << fw->getId();
// if (fw->getId() != ("edgetx-" + radioData.generalSettings.board)) {
// throw std::runtime_error("Wrong board");
// }
// }
node["version"] >> rhs.version;
// Radio calib
// Decoding uses profile firmare therefore all conversions are performed on the fly
// So set board to firmware board
// However we should alert users that conversions may have occured
// If conversion should rename file with _converted suffix as done for bin
// Need to pass back messages and flags like converted so they can be handled in a more suitable section
rhs.variant = Board::BOARD_UNKNOWN;
std::string flavour;
node["board"] >> flavour;
auto fw = getCurrentFirmware();
auto msfw = Firmware::getFirmwareForFlavour(QString(flavour.c_str()));
if (flavour.empty()) {
qDebug() << "Warning: Settings file does not contain board flavour! Default firmware board will be used";
flavour = msfw->getFlavour().toStdString();
}
qDebug() << "Settings version:" << rhs.version << "File flavour:" << flavour.c_str() << "Firmware flavour:" << fw->getFlavour();
if (fw->getFlavour().toStdString() != flavour) {
QString prmpt = QCoreApplication::translate("YamlGeneralSettings", "File board (%1) does not match current profile board (%2), models and settings will be converted where possible.\n\nDo you wish to continue?").arg(Boards::getBoardName(msfw->getBoard())).arg(Boards::getBoardName(fw->getBoard()));
if (QMessageBox::question(NULL, CPN_STR_APP_NAME, prmpt, (QMessageBox::Yes | QMessageBox::No), QMessageBox::No) != QMessageBox::Yes) {
// TODO: this triggers an error in the calling code so we need a graceful way to handle
return false;
}
}
rhs.variant = fw->getBoard();
YamlCalibData calib;
node["calib"] >> calib;
calib.copy(rhs.calibMid, rhs.calibSpanNeg, rhs.calibSpanPos);
@@ -178,3 +178,9 @@ void Firmware::addOptionsGroup(const OptionsGroup & options)
{
this->opts.append(options);
}
QString Firmware::getFlavour()
{
QStringList strl = id.split("-");
return strl.count() >= 2 ? strl.at(1) : QString();
}
@@ -262,6 +262,8 @@ enum EepromLoadErrors {
NUM_ERRORS
};
constexpr char FIRMWARE_ID_PREFIX[] = { "edgetx-" };
class Firmware
{
Q_DECLARE_TR_FUNCTIONS(Firmware)
@@ -405,6 +407,13 @@ class Firmware
currentVariant = value;
}
QString getFlavour();
static Firmware * getFirmwareForFlavour(const QString & flavour)
{
return getFirmwareForId(FIRMWARE_ID_PREFIX + flavour);
}
const StringTagMappingTable* getAnalogIndexNamesLookupTable()
{
return &analogInputNamesLookupTable;
@@ -59,59 +59,59 @@ const char * OpenTxEepromInterface::getName()
{
switch (board) {
case BOARD_JUMPER_T12:
return "OpenTX for Jumper T12";
return "EdgeTX for Jumper T12";
case BOARD_JUMPER_TLITE:
return "OpenTX for Jumper T-Lite";
return "EdgeTX for Jumper T-Lite";
case BOARD_JUMPER_TPRO:
return "OpenTX for Jumper T-Pro";
return "EdgeTX for Jumper T-Pro";
case BOARD_JUMPER_T16:
return "OpenTX for Jumper T16";
return "EdgeTX for Jumper T16";
case BOARD_JUMPER_T18:
return "OpenTX for Jumper T18";
return "EdgeTX for Jumper T18";
case BOARD_RADIOMASTER_TX16S:
return "OpenTX for Radiomaster TX16S";
return "EdgeTX for Radiomaster TX16S";
case BOARD_RADIOMASTER_TX12:
return "OpenTX for Radiomaster TX12";
return "EdgeTX for Radiomaster TX12";
case BOARD_RADIOMASTER_ZORRO:
return "OpenTX for Radiomaster Zorro";
return "EdgeTX for Radiomaster Zorro";
case BOARD_RADIOMASTER_T8:
return "OpenTX for Radiomaster T8";
return "EdgeTX for Radiomaster T8";
case BOARD_TARANIS_X9D:
return "OpenTX for FrSky Taranis X9D";
return "EdgeTX for FrSky Taranis X9D";
case BOARD_TARANIS_X9DP:
return "OpenTX for FrSky Taranis X9D+";
return "EdgeTX for FrSky Taranis X9D+";
case BOARD_TARANIS_X9DP_2019:
return "OpenTX for FrSky Taranis X9D+ 2019";
return "EdgeTX for FrSky Taranis X9D+ 2019";
case BOARD_TARANIS_X9E:
return "OpenTX for FrSky Taranis X9E";
return "EdgeTX for FrSky Taranis X9E";
case BOARD_TARANIS_X7:
return "OpenTX for FrSky Taranis X7";
return "EdgeTX for FrSky Taranis X7";
case BOARD_TARANIS_X7_ACCESS:
return "OpenTX for FrSky Taranis X7 Access";
return "EdgeTX for FrSky Taranis X7 Access";
case BOARD_TARANIS_X9LITES:
return "OpenTX for FrSky Taranis X9-Lite S";
return "EdgeTX for FrSky Taranis X9-Lite S";
case BOARD_TARANIS_X9LITE:
return "OpenTX for FrSky Taranis X9-Lite";
return "EdgeTX for FrSky Taranis X9-Lite";
case BOARD_TARANIS_XLITE:
return "OpenTX for FrSky Taranis X-Lite";
return "EdgeTX for FrSky Taranis X-Lite";
case BOARD_TARANIS_XLITES:
return "OpenTX for FrSky Taranis X-Lite S/Pro";
return "EdgeTX for FrSky Taranis X-Lite S/Pro";
case BOARD_SKY9X:
return "OpenTX for Sky9x board / 9X";
return "EdgeTX for Sky9x board / 9X";
case BOARD_9XRPRO:
return "OpenTX for 9XR-PRO";
return "EdgeTX for 9XR-PRO";
case BOARD_AR9X:
return "OpenTX for ar9x board / 9X";
return "EdgeTX for ar9x board / 9X";
case BOARD_HORUS_X12S:
return "OpenTX for FrSky Horus";
return "EdgeTX for FrSky Horus";
case BOARD_X10:
return "OpenTX for FrSky X10";
return "EdgeTX for FrSky X10";
case BOARD_X10_EXPRESS:
return "OpenTX for FrSky X10 Express";
return "EdgeTX for FrSky X10 Express";
case BOARD_FLYSKY_NV14:
return "OpenTX for FlySky NV14";
return "EdgeTX for FlySky NV14";
default:
return "OpenTX for an unknown board";
return "Board is unknown to EdgeTX";
}
}
@@ -1280,25 +1280,28 @@ void addOpenTxArm9xOptions(OpenTxFirmware * firmware, bool dblkeys = true)
addOpenTxRfOptions(firmware, FLEX);
}
// TODO: refactoring OpenTxFirmware constructor - need to check if used elsewhere and how
#define FIRMWAREID(flavour) std::string(FIRMWARE_ID_PREFIX).append(flavour).c_str()
void registerOpenTxFirmwares()
{
OpenTxFirmware * firmware;
/* FrSky Taranis X9D+ board */
firmware = new OpenTxFirmware("edgetx-x9d+", Firmware::tr("FrSky Taranis X9D+"), BOARD_TARANIS_X9DP);
firmware = new OpenTxFirmware(FIRMWAREID("x9d+"), Firmware::tr("FrSky Taranis X9D+"), BOARD_TARANIS_X9DP);
firmware->addOption("noras", Firmware::tr("Disable RAS (SWR)"));
addOpenTxTaranisOptions(firmware);
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, EU + FLEX + AFHDS3);
/* FrSky Taranis X9D+ 2019 board */
firmware = new OpenTxFirmware("edgetx-x9d+2019", Firmware::tr("FrSky Taranis X9D+ 2019"), BOARD_TARANIS_X9DP_2019);
firmware = new OpenTxFirmware(FIRMWAREID("x9d+2019"), Firmware::tr("FrSky Taranis X9D+ 2019"), BOARD_TARANIS_X9DP_2019);
addOpenTxTaranisOptions(firmware);
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, FLEX);
/* FrSky Taranis X9D board */
firmware = new OpenTxFirmware("edgetx-x9d", Firmware::tr("FrSky Taranis X9D"), BOARD_TARANIS_X9D);
firmware = new OpenTxFirmware(FIRMWAREID("x9d"), Firmware::tr("FrSky Taranis X9D"), BOARD_TARANIS_X9D);
firmware->addOption("noras", Firmware::tr("Disable RAS (SWR)"));
firmware->addOption("haptic", Firmware::tr("Haptic module installed"));
addOpenTxTaranisOptions(firmware);
@@ -1306,7 +1309,7 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, EU + FLEX + AFHDS3);
/* FrSky Taranis X9E board */
firmware = new OpenTxFirmware("edgetx-x9e", Firmware::tr("FrSky Taranis X9E"), BOARD_TARANIS_X9E);
firmware = new OpenTxFirmware(FIRMWAREID("x9e"), Firmware::tr("FrSky Taranis X9E"), BOARD_TARANIS_X9E);
firmware->addOption("shutdownconfirm", Firmware::tr("Confirmation before radio shutdown"));
firmware->addOption("horussticks", Firmware::tr("Horus gimbals installed (Hall sensors)"));
addOpenTxTaranisOptions(firmware);
@@ -1314,44 +1317,44 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, EU + FLEX);
/* FrSky X9-Lite board */
firmware = new OpenTxFirmware("edgetx-x9lite", Firmware::tr("FrSky Taranis X9-Lite"), BOARD_TARANIS_X9LITE);
firmware = new OpenTxFirmware(FIRMWAREID("x9lite"), Firmware::tr("FrSky Taranis X9-Lite"), BOARD_TARANIS_X9LITE);
addOpenTxTaranisOptions(firmware);
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, FLEX);
/* FrSky X9-LiteS board */
firmware = new OpenTxFirmware("edgetx-x9lites", Firmware::tr("FrSky Taranis X9-Lite S"), BOARD_TARANIS_X9LITES);
firmware = new OpenTxFirmware(FIRMWAREID("x9lites"), Firmware::tr("FrSky Taranis X9-Lite S"), BOARD_TARANIS_X9LITES);
addOpenTxTaranisOptions(firmware);
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, FLEX);
/* FrSky X7 board */
firmware = new OpenTxFirmware("edgetx-x7", Firmware::tr("FrSky Taranis X7 / X7S"), BOARD_TARANIS_X7);
firmware = new OpenTxFirmware(FIRMWAREID("x7"), Firmware::tr("FrSky Taranis X7 / X7S"), BOARD_TARANIS_X7);
addOpenTxTaranisOptions(firmware);
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, EU + FLEX);
/* FrSky X7 Access board */
firmware = new OpenTxFirmware("edgetx-x7access", Firmware::tr("FrSky Taranis X7 / X7S Access"), BOARD_TARANIS_X7_ACCESS);
firmware = new OpenTxFirmware(FIRMWAREID("x7access"), Firmware::tr("FrSky Taranis X7 / X7S Access"), BOARD_TARANIS_X7_ACCESS);
addOpenTxTaranisOptions(firmware);
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, FLEX);
/* FrSky X-Lite S/PRO board */
firmware = new OpenTxFirmware("edgetx-xlites", Firmware::tr("FrSky Taranis X-Lite S/PRO"), BOARD_TARANIS_XLITES);
firmware = new OpenTxFirmware(FIRMWAREID("xlites"), Firmware::tr("FrSky Taranis X-Lite S/PRO"), BOARD_TARANIS_XLITES);
addOpenTxTaranisOptions(firmware);
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, FLEX);
/* FrSky X-Lite board */
firmware = new OpenTxFirmware("edgetx-xlite", Firmware::tr("FrSky Taranis X-Lite"), BOARD_TARANIS_XLITE);
firmware = new OpenTxFirmware(FIRMWAREID("xlite"), Firmware::tr("FrSky Taranis X-Lite"), BOARD_TARANIS_XLITE);
// firmware->addOption("stdr9m", Firmware::tr("Use JR-sized R9M module"));
addOpenTxTaranisOptions(firmware);
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, EU + FLEX);
/* FrSky X10 board */
firmware = new OpenTxFirmware("edgetx-x10", Firmware::tr("FrSky Horus X10 / X10S"), BOARD_X10);
firmware = new OpenTxFirmware(FIRMWAREID("x10"), Firmware::tr("FrSky Horus X10 / X10S"), BOARD_X10);
addOpenTxFrskyOptions(firmware);
firmware->addOption("internalaccess", Firmware::tr("Support for ACCESS internal module replacement"));
firmware->addOption("externalaccessmod", Firmware::tr("Support hardware mod: R9M ACCESS"));
@@ -1359,13 +1362,13 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, EU + FLEX);
/* FrSky X10 Express board */
firmware = new OpenTxFirmware("edgetx-x10express", Firmware::tr("FrSky Horus X10 Express / X10S Express"), BOARD_X10_EXPRESS);
firmware = new OpenTxFirmware(FIRMWAREID("x10express"), Firmware::tr("FrSky Horus X10 Express / X10S Express"), BOARD_X10_EXPRESS);
addOpenTxFrskyOptions(firmware);
registerOpenTxFirmware(firmware);
addOpenTxRfOptions(firmware, FLEX);
/* FrSky X12 (Horus) board */
firmware = new OpenTxFirmware("edgetx-x12s", Firmware::tr("FrSky Horus X12S"), BOARD_HORUS_X12S);
firmware = new OpenTxFirmware(FIRMWAREID("x12s"), Firmware::tr("FrSky Horus X12S"), BOARD_HORUS_X12S);
addOpenTxFrskyOptions(firmware);
firmware->addOption("internalaccess", Firmware::tr("Support for ACCESS internal module replacement"));
firmware->addOption("externalaccessmod", Firmware::tr("Support hardware mod: R9M ACCESS"));
@@ -1374,7 +1377,7 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, EU + FLEX);
/* Jumper T12 board */
firmware = new OpenTxFirmware("edgetx-t12", QCoreApplication::translate("Firmware", "Jumper T12 / T12 Pro"), BOARD_JUMPER_T12);
firmware = new OpenTxFirmware(FIRMWAREID("t12"), QCoreApplication::translate("Firmware", "Jumper T12 / T12 Pro"), BOARD_JUMPER_T12);
addOpenTxCommonOptions(firmware);
firmware->addOption("noheli", Firmware::tr("Disable HELI menu and cyclic mix support"));
firmware->addOption("nogvars", Firmware::tr("Disable Global variables"));
@@ -1385,7 +1388,7 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, FLEX);
/* Jumper T-Lite board */
firmware = new OpenTxFirmware("edgetx-tlite", QCoreApplication::translate("Firmware", "Jumper T-Lite"), BOARD_JUMPER_TLITE);
firmware = new OpenTxFirmware(FIRMWAREID("tlite"), QCoreApplication::translate("Firmware", "Jumper T-Lite"), BOARD_JUMPER_TLITE);
addOpenTxCommonOptions(firmware);
firmware->addOption("noheli", Firmware::tr("Disable HELI menu and cyclic mix support"));
firmware->addOption("nogvars", Firmware::tr("Disable Global variables"));
@@ -1395,7 +1398,7 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, FLEX);
/* Jumper T-Pro board */
firmware = new OpenTxFirmware("edgetx-tpro", QCoreApplication::translate("Firmware", "Jumper T-Pro"), BOARD_JUMPER_TPRO);
firmware = new OpenTxFirmware(FIRMWAREID("tpro"), QCoreApplication::translate("Firmware", "Jumper T-Pro"), BOARD_JUMPER_TPRO);
addOpenTxCommonOptions(firmware);
firmware->addOption("noheli", Firmware::tr("Disable HELI menu and cyclic mix support"));
firmware->addOption("nogvars", Firmware::tr("Disable Global variables"));
@@ -1405,7 +1408,7 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, FLEX);
/* Jumper T16 board */
firmware = new OpenTxFirmware("edgetx-t16", Firmware::tr("Jumper T16 / T16+ / T16 Pro"), BOARD_JUMPER_T16);
firmware = new OpenTxFirmware(FIRMWAREID("t16"), Firmware::tr("Jumper T16 / T16+ / T16 Pro"), BOARD_JUMPER_T16);
addOpenTxFrskyOptions(firmware);
firmware->addOption("internalmulti", Firmware::tr("Support for MULTI internal module"));
firmware->addOption("bluetooth", Firmware::tr("Support for bluetooth module"));
@@ -1414,7 +1417,7 @@ void registerOpenTxFirmwares()
registerOpenTxFirmware(firmware);
/* Radiomaster TX12 board */
firmware = new OpenTxFirmware("edgetx-tx12", QCoreApplication::translate("Firmware", "Radiomaster TX12"), BOARD_RADIOMASTER_TX12);
firmware = new OpenTxFirmware(FIRMWAREID("tx12"), QCoreApplication::translate("Firmware", "Radiomaster TX12"), BOARD_RADIOMASTER_TX12);
addOpenTxCommonOptions(firmware);
firmware->addOption("noheli", Firmware::tr("Disable HELI menu and cyclic mix support"));
firmware->addOption("nogvars", Firmware::tr("Disable Global variables"));
@@ -1424,7 +1427,7 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, FLEX);
/* Radiomaster Zorro board */
firmware = new OpenTxFirmware("edgetx-zorro", QCoreApplication::translate("Firmware", "Radiomaster Zorro"), Board::BOARD_RADIOMASTER_ZORRO);
firmware = new OpenTxFirmware(FIRMWAREID("zorro"), QCoreApplication::translate("Firmware", "Radiomaster Zorro"), Board::BOARD_RADIOMASTER_ZORRO);
addOpenTxCommonOptions(firmware);
firmware->addOption("noheli", Firmware::tr("Disable HELI menu and cyclic mix support"));
firmware->addOption("nogvars", Firmware::tr("Disable Global variables"));
@@ -1435,7 +1438,7 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, FLEX + AFHDS3);
/* Radiomaster T8 board */
firmware = new OpenTxFirmware("edgetx-t8", QCoreApplication::translate("Firmware", "Radiomaster T8"), BOARD_RADIOMASTER_T8);
firmware = new OpenTxFirmware(FIRMWAREID("t8"), QCoreApplication::translate("Firmware", "Radiomaster T8"), BOARD_RADIOMASTER_T8);
addOpenTxCommonOptions(firmware);
firmware->addOption("noheli", Firmware::tr("Disable HELI menu and cyclic mix support"));
firmware->addOption("nogvars", Firmware::tr("Disable Global variables"));
@@ -1446,7 +1449,7 @@ void registerOpenTxFirmwares()
firmware->addOption("bindkey", Firmware::tr("Allow bind using bind key"));
/* Radiomaster TX16S board */
firmware = new OpenTxFirmware("edgetx-tx16s", Firmware::tr("Radiomaster TX16S / SE / Hall / Masterfire"), BOARD_RADIOMASTER_TX16S);
firmware = new OpenTxFirmware(FIRMWAREID("tx16s"), Firmware::tr("Radiomaster TX16S / SE / Hall / Masterfire"), BOARD_RADIOMASTER_TX16S);
addOpenTxFrskyOptions(firmware);
addOpenTxRfOptions(firmware, FLEX);
static const Firmware::Option opt_bt("bluetooth", Firmware::tr("Support for bluetooth module"));
@@ -1457,7 +1460,7 @@ void registerOpenTxFirmwares()
registerOpenTxFirmware(firmware);
/* Jumper T18 board */
firmware = new OpenTxFirmware("edgetx-t18", Firmware::tr("Jumper T18"), BOARD_JUMPER_T18);
firmware = new OpenTxFirmware(FIRMWAREID("t18"), Firmware::tr("Jumper T18"), BOARD_JUMPER_T18);
addOpenTxFrskyOptions(firmware);
firmware->addOption("bluetooth", Firmware::tr("Support for bluetooth module"));
firmware->addOption("externalaccessmod", Firmware::tr("Support hardware mod: R9M ACCESS"));
@@ -1465,30 +1468,30 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, FLEX);
/* FlySky NV14 board */
firmware = new OpenTxFirmware("edgetx-nv14", QCoreApplication::translate("Firmware", "FlySky NV14"), BOARD_FLYSKY_NV14);
firmware = new OpenTxFirmware(FIRMWAREID("nv14"), QCoreApplication::translate("Firmware", "FlySky NV14"), BOARD_FLYSKY_NV14);
addOpenTxFrskyOptions(firmware);
firmware->addOption("bluetooth", Firmware::tr("Support for bluetooth module"));
addOpenTxRfOptions(firmware, FLEX + AFHDS3);
registerOpenTxFirmware(firmware);
/* 9XR-Pro */
firmware = new OpenTxFirmware("edgetx-9xrpro", Firmware::tr("Turnigy 9XR-PRO"), BOARD_9XRPRO);
firmware = new OpenTxFirmware(FIRMWAREID("9xrpro"), Firmware::tr("Turnigy 9XR-PRO"), BOARD_9XRPRO);
addOpenTxArm9xOptions(firmware, false);
registerOpenTxFirmware(firmware, true);
/* ar9x board */
firmware = new OpenTxFirmware("edgetx-ar9x", Firmware::tr("9X with AR9X board"), BOARD_AR9X);
firmware = new OpenTxFirmware(FIRMWAREID("ar9x"), Firmware::tr("9X with AR9X board"), BOARD_AR9X);
addOpenTxArm9xOptions(firmware, true);
//firmware->addOption("rtc", Firmware::tr("Optional RTC added"));
//firmware->addOption("volume", Firmware::tr("i2c volume control added"));
registerOpenTxFirmware(firmware, true);
/* Sky9x board */
firmware = new OpenTxFirmware("edgetx-sky9x", Firmware::tr("9X with Sky9x board"), BOARD_SKY9X);
firmware = new OpenTxFirmware(FIRMWAREID("sky9x"), Firmware::tr("9X with Sky9x board"), BOARD_SKY9X);
addOpenTxArm9xOptions(firmware);
registerOpenTxFirmware(firmware, true);
Firmware::setDefaultVariant(Firmware::getFirmwareForId("edgetx-tx16s"));
Firmware::setDefaultVariant(Firmware::getFirmwareForFlavour("tx16s"));
Firmware::setCurrentVariant(Firmware::getDefaultVariant());
}
+1
View File
@@ -1345,6 +1345,7 @@ bool MdiChild::loadFile(const QString & filename, bool resetCurrentFile)
setCurrentFile(filename);
}
// For etx files this will never be true as any conversion occurs when parsing file
if (!Boards::isBoardCompatible(storage.getBoard(), getCurrentBoard())) {
if (!convertStorage(storage.getBoard(), getCurrentBoard(), true))
return false;
+1 -2
View File
@@ -240,8 +240,7 @@ bool CategorizedStorageFormat::loadYaml(RadioData & radioData)
return false;
}
// TODO: provide a simple text mapping
board = Board::BOARD_RADIOMASTER_TX16S;
board = (Board::Type)radioData.generalSettings.variant;
// get models
QByteArray modelslistBuffer;