chore(cpn): add PL18EV support (#5849)

This commit is contained in:
Peter Feerick
2025-01-30 11:10:36 +10:00
committed by GitHub
parent 79bde7e3b7
commit 8256688268
8 changed files with 52 additions and 12 deletions
+2
View File
@@ -354,6 +354,8 @@ elseif(PCB STREQUAL X10 AND PCBREV STREQUAL T18)
set(FLAVOUR t18)
elseif(PCB STREQUAL NV14 AND PCBREV STREQUAL EL18)
set(FLAVOUR el18)
elseif(PCB STREQUAL PL18 AND PCBREV STREQUAL PL18EV)
set(FLAVOUR pl18ev)
elseif(PCB STREQUAL PL18)
set(FLAVOUR pl18)
else()
+23 -5
View File
@@ -153,10 +153,10 @@ uint32_t Boards::getFourCC(Type board)
case BOARD_RADIOMASTER_T8:
return 0x4378746F;
case BOARD_FLYSKY_NV14:
return 0x3A78746F;
case BOARD_FLYSKY_EL18:
return 0x3A78746F;
case BOARD_FLYSKY_PL18:
case BOARD_FLYSKY_PL18EV:
return 0x4878746F;
default:
return 0;
@@ -215,6 +215,7 @@ int Boards::getEEpromSize(Board::Type board)
case BOARD_FLYSKY_NV14:
case BOARD_FLYSKY_EL18:
case BOARD_FLYSKY_PL18:
case BOARD_FLYSKY_PL18EV:
case BOARD_FATFISH_F16:
case BOARD_HELLORADIOSKY_V16:
return 0;
@@ -273,6 +274,7 @@ int Boards::getFlashSize(Type board)
case BOARD_FLYSKY_NV14:
case BOARD_FLYSKY_EL18:
case BOARD_FLYSKY_PL18:
case BOARD_FLYSKY_PL18EV:
case BOARD_FATFISH_F16:
case BOARD_HELLORADIOSKY_V16:
return FSIZE_HORUS;
@@ -307,7 +309,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
return 4;
else if(IS_RADIOMASTER_ZORRO(board))
return 8;
else if (board == BOARD_RADIOMASTER_POCKET)
else if (IS_RADIOMASTER_POCKET(board))
return 5;
else if (IS_FAMILY_T12(board))
return 6;
@@ -337,7 +339,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
return (IS_STM32(board) && !IS_TARANIS_X9(board));
case HasLedStripGPIO:
return (IS_RADIOMASTER_MT12(board) || IS_FLYSKY_PL18(board) ||
return (IS_RADIOMASTER_MT12(board) || IS_FAMILY_PL18(board) ||
IS_HELLORADIOSKY_V16(board));
case HasSDCard:
@@ -371,7 +373,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
case LcdHeight:
if (IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board))
return 480;
else if (IS_FLYSKY_PL18(board) || IS_JUMPER_T15(board))
else if (IS_FAMILY_PL18(board) || IS_JUMPER_T15(board))
return 320;
else if (IS_FAMILY_HORUS_OR_T16(board))
return 272;
@@ -381,7 +383,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
case LcdWidth:
if (IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board))
return 320;
else if (IS_FLYSKY_PL18(board))
else if (IS_FAMILY_PL18(board))
return 480;
else if (IS_FAMILY_HORUS_OR_T16(board))
return 480;
@@ -518,6 +520,18 @@ StringTagMappingTable Boards::getLegacyAnalogsLookupTable(Board::Type board)
{tr("SL1").toStdString(), "LS"},
{tr("SL2").toStdString(), "RS"},
});
} else if (IS_FLYSKY_PL18EV(board)) {
tbl.insert(tbl.end(), {
{tr("P1").toStdString(), "POT1"},
{tr("P2").toStdString(), "POT2"},
{tr("P3").toStdString(), "POT3"},
{tr("SL1").toStdString(), "LS"},
{tr("SL2").toStdString(), "RS"},
{tr("EXT1").toStdString(), "EXT1"},
{tr("EXT2").toStdString(), "EXT2"},
{tr("EXT3").toStdString(), "EXT3"},
{tr("EXT4").toStdString(), "EXT4"},
});
} else if (IS_HORUS_X10(board) || IS_FAMILY_T16(board)) {
tbl.insert(tbl.end(), {
{tr("P1").toStdString(), "S1"},
@@ -641,6 +655,8 @@ QString Boards::getBoardName(Board::Type board)
return "FlySky EL18";
case BOARD_FLYSKY_PL18:
return "FlySky PL18";
case BOARD_FLYSKY_PL18EV:
return "FlySky PL18EV";
case BOARD_BETAFPV_LR3PRO:
return "BETAFPV LR3PRO";
case BOARD_IFLIGHT_COMMANDO8:
@@ -752,6 +768,7 @@ int Boards::getDefaultInternalModules(Board::Type board)
case BOARD_JUMPER_TPRO:
case BOARD_JUMPER_TPROV2:
case BOARD_FLYSKY_PL18:
case BOARD_FLYSKY_PL18EV:
return (int)MODULE_TYPE_MULTIMODULE;
case BOARD_BETAFPV_LR3PRO:
@@ -836,6 +853,7 @@ void Boards::getBattRange(Board::Type board, int& vmin, int& vmax, unsigned int&
BR(35, 42, 37)
break;
case BOARD_FLYSKY_PL18:
case BOARD_FLYSKY_PL18EV:
BR(35, 43, 37)
break;
case BOARD_IFLIGHT_COMMANDO8:
+13 -2
View File
@@ -78,6 +78,7 @@ namespace Board {
BOARD_JUMPER_TLITE_F4,
BOARD_FLYSKY_NV14,
BOARD_FLYSKY_PL18,
BOARD_FLYSKY_PL18EV,
BOARD_RADIOMASTER_ZORRO,
BOARD_JUMPER_TPRO,
BOARD_BETAFPV_LR3PRO,
@@ -660,6 +661,16 @@ inline bool IS_FLYSKY_PL18(Board::Type board)
return (board == Board::BOARD_FLYSKY_PL18);
}
inline bool IS_FLYSKY_PL18EV(Board::Type board)
{
return (board == Board::BOARD_FLYSKY_PL18EV);
}
inline bool IS_FAMILY_PL18(Board::Type board)
{
return IS_FLYSKY_PL18(board) || IS_FLYSKY_PL18EV(board);
}
inline bool IS_TARANIS_XLITE(Board::Type board)
{
return board == Board::BOARD_TARANIS_XLITE || board == Board::BOARD_TARANIS_XLITES;
@@ -739,7 +750,7 @@ inline bool IS_FAMILY_HORUS_OR_T16(Board::Type board)
{
return IS_FAMILY_HORUS(board) || IS_FAMILY_T16(board) ||
IS_FLYSKY_NV14(board)/*generally*/ || IS_FLYSKY_EL18(board)/*generally*/
|| IS_FLYSKY_PL18(board);
|| IS_FAMILY_PL18(board);
}
inline bool IS_HORUS_OR_TARANIS(Board::Type board)
@@ -750,7 +761,7 @@ inline bool IS_HORUS_OR_TARANIS(Board::Type board)
inline bool IS_STM32(Board::Type board)
{
return IS_TARANIS(board) || IS_FAMILY_HORUS_OR_T16(board) ||
IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FLYSKY_PL18(board);
IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FAMILY_PL18(board);
}
inline bool IS_ARM(Board::Type board)
+3 -1
View File
@@ -222,6 +222,8 @@ void GeneralSettings::init()
strcpy(bluetoothName, "nv14");
else if (IS_FLYSKY_PL18(board))
strcpy(bluetoothName, "pl18");
else if (IS_FLYSKY_PL18EV(board))
strcpy(bluetoothName, "pl18ev");
else if (IS_FAMILY_HORUS_OR_T16(board))
strcpy(bluetoothName, "horus");
else if (IS_TARANIS_X9E(board) || IS_TARANIS_SMALL(board))
@@ -328,7 +330,7 @@ void GeneralSettings::init()
internalModule = g.profile[g.sessionId()].defaultInternalModule();
if (IS_FLYSKY_NV14(board) || IS_FLYSKY_PL18(board))
if (IS_FLYSKY_NV14(board) || IS_FAMILY_PL18(board))
stickDeadZone = 2;
}
@@ -314,7 +314,7 @@ int OpenTxFirmware::getCapability(::Capability capability)
IS_RADIOMASTER_MT12(board);
case HasBluetooth:
return (IS_FAMILY_HORUS_OR_T16(board) || IS_TARANIS_X7(board) || IS_TARANIS_XLITE(board)|| IS_TARANIS_X9E(board) ||
IS_TARANIS_X9DP_2019(board) || IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FLYSKY_PL18(board)) ? true : false;
IS_TARANIS_X9DP_2019(board) || IS_FLYSKY_NV14(board) || IS_FLYSKY_EL18(board) || IS_FAMILY_PL18(board)) ? true : false;
case HasADCJitterFilter:
return IS_HORUS_OR_TARANIS(board);
case HasTelemetryBaudrate:
@@ -505,6 +505,13 @@ void registerOpenTxFirmwares()
addOpenTxRfOptions(firmware, FLEX + AFHDS3);
registerOpenTxFirmware(firmware);
/* FlySky PL18EV board */
firmware = new OpenTxFirmware(FIRMWAREID("pl18ev"), Firmware::tr("FlySky PL18EV"), BOARD_FLYSKY_PL18EV);
addOpenTxFrskyOptions(firmware);
firmware->addOption(opt_bt);
addOpenTxRfOptions(firmware, FLEX + AFHDS3);
registerOpenTxFirmware(firmware);
/* FrSky Horus X10 board */
firmware = new OpenTxFirmware(FIRMWAREID("x10"), Firmware::tr("FrSky Horus X10 / X10S"), BOARD_X10);
addOpenTxFrskyOptions(firmware);
+1 -1
View File
@@ -190,7 +190,7 @@ ui(new Ui::GeneralSetup)
ui->usbModeCB->hide();
}
if (IS_FLYSKY_EL18(board) || IS_FLYSKY_NV14(board) || IS_FLYSKY_PL18(board)) {
if (IS_FLYSKY_EL18(board) || IS_FLYSKY_NV14(board) || IS_FAMILY_PL18(board)) {
ui->hatsModeCB->setModel(panelFilteredModels->getItemModel(FIM_HATSMODE));
ui->hatsModeCB->setField(generalSettings.hatsMode, this);
}
+1 -1
View File
@@ -284,7 +284,7 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge
ui->trimsDisplay->setField(model.trimsDisplay, this);
if (IS_FLYSKY_EL18(board) || IS_FLYSKY_NV14(board) || IS_FLYSKY_PL18(board)) {
if (IS_FLYSKY_EL18(board) || IS_FLYSKY_NV14(board) || IS_FAMILY_PL18(board)) {
ui->cboHatsMode->setModel(panelFilteredModels->getItemModel(FIM_HATSMODE));
ui->cboHatsMode->setField(model.hatsMode, this);
}
+1 -1
View File
@@ -866,7 +866,7 @@ QString ModelPrinter::printSettingsTrim()
str << printLabelValue(tr("Display"), printTrimsDisplayMode());
str << printLabelValue(tr("Extended"), printBoolean(model.extendedTrims, BOOLEAN_YESNO));
Board::Type board = firmware->getBoard();
if (IS_FLYSKY_EL18(board) || IS_FLYSKY_NV14(board) || IS_FLYSKY_PL18(board)) {
if (IS_FLYSKY_EL18(board) || IS_FLYSKY_NV14(board) || IS_FAMILY_PL18(board)) {
str << printLabelValue(tr("Hats Mode"), printHatsMode());
}
return str.join(" ");