fix(cpn): some trainer options not working (#5684)
This commit is contained in:
@@ -345,6 +345,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
|
||||
return ((IS_TARANIS_X9LITE(board) || (IS_TARANIS_XLITE(board) && !IS_TARANIS_X9LITES(board)) ||
|
||||
IS_TARANIS_X9DP_2019(board) || IS_TARANIS_X7_ACCESS(board) || IS_RADIOMASTER_ZORRO(board) ||
|
||||
IS_RADIOMASTER_TX12_MK2(board) || IS_RADIOMASTER_BOXER(board) || IS_RADIOMASTER_POCKET(board)) ||
|
||||
IS_FAMILY_T16(board) || IS_FAMILY_HORUS(board) ||
|
||||
(getCapability(board, HasExternalModuleSupport) && (IS_TARANIS(board) && !IS_FAMILY_T12(board))));
|
||||
|
||||
case LcdDepth:
|
||||
|
||||
@@ -108,7 +108,8 @@ static const YamlLookupTable trainerModeLut = {
|
||||
{ TRAINER_MODE_SLAVE_JACK, "SLAVE" },
|
||||
{ TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE, "MASTER_SBUS_EXT" },
|
||||
{ TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE, "MASTER_CPPM_EXT" },
|
||||
{ TRAINER_MODE_MASTER_SERIAL, "MASTER_BATT_COMP" },
|
||||
{ TRAINER_MODE_MASTER_SERIAL, "MASTER_SERIAL" },
|
||||
{ TRAINER_MODE_MASTER_SERIAL, "MASTER_BATT_COMP" }, // depreciated, kept for conversion from older settings
|
||||
{ TRAINER_MODE_MASTER_BLUETOOTH, "MASTER_BT" },
|
||||
{ TRAINER_MODE_SLAVE_BLUETOOTH, "SLAVE_BT" },
|
||||
{ TRAINER_MODE_MULTI, "MASTER_MULTI" },
|
||||
|
||||
@@ -1651,6 +1651,16 @@ bool ModelData::isTrainerModeAvailable(const GeneralSettings & generalSettings,
|
||||
generalSettings.bluetoothMode)
|
||||
return false;
|
||||
|
||||
if (value == TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE &&
|
||||
!Boards::getCapability(board, Board::HasTrainerModuleSBUS))
|
||||
return false;
|
||||
|
||||
if ((value == TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE || value == TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE) &&
|
||||
(Boards::getCapability(board, Board::HasTrainerModuleCPPM) ||
|
||||
Boards::getCapability(board, Board::HasTrainerModuleSBUS)) &&
|
||||
moduleData[1].protocol != PULSES_OFF)
|
||||
return false;
|
||||
|
||||
if (value == TRAINER_MODE_MASTER_SERIAL &&
|
||||
(generalSettings.serialPort[GeneralSettings::SP_AUX1] != GeneralSettings::AUX_SERIAL_SBUS_TRAINER &&
|
||||
generalSettings.serialPort[GeneralSettings::SP_AUX2] != GeneralSettings::AUX_SERIAL_SBUS_TRAINER))
|
||||
@@ -1669,16 +1679,6 @@ bool ModelData::isTrainerModeAvailable(const GeneralSettings & generalSettings,
|
||||
!Boards::getCapability(board, Board::HasTrainerModuleCPPM))
|
||||
return false;
|
||||
|
||||
if (value == TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE &&
|
||||
!Boards::getCapability(board, Board::HasTrainerModuleSBUS))
|
||||
return false;
|
||||
|
||||
if ((value == TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE || value == TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE) &&
|
||||
(Boards::getCapability(board, Board::HasTrainerModuleCPPM) ||
|
||||
Boards::getCapability(board, Board::HasTrainerModuleSBUS)) &&
|
||||
moduleData[1].protocol != PULSES_OFF)
|
||||
return false;
|
||||
|
||||
if (value == TRAINER_MODE_MULTI &&
|
||||
((!Boards::getCapability(board, Board::HasInternalModuleSupport) &&
|
||||
!Boards::getCapability(board, Board::HasExternalModuleSupport)) ||
|
||||
|
||||
Reference in New Issue
Block a user