Skip to content

Commit 578af5e

Browse files
authored
feat(cpn): SBUS trainer support on serial inputs on H5/H7 (#7142)
1 parent e909548 commit 578af5e

4 files changed

Lines changed: 16 additions & 9 deletions

File tree

companion/src/firmwares/edgetx/yaml_generalsettings.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ const YamlLookupTable uartModeLut = {
9393
{ GeneralSettings::AUX_SERIAL_TELE_MIRROR, "TELEMETRY_MIRROR" },
9494
{ GeneralSettings::AUX_SERIAL_TELE_IN, "TELEMETRY_IN" },
9595
{ GeneralSettings::AUX_SERIAL_SBUS_TRAINER, "SBUS_TRAINER" },
96+
{ GeneralSettings::AUX_SERIAL_SBUS_TRAINER_INV, "SBUS_TRAINER_INV" },
9697
{ GeneralSettings::AUX_SERIAL_LUA, "LUA" },
9798
{ GeneralSettings::AUX_SERIAL_CLI, "CLI" },
9899
{ GeneralSettings::AUX_SERIAL_GPS, "GPS" },

companion/src/firmwares/generalsettings.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,8 @@ QString GeneralSettings::serialModeToString(int value)
511511
return tr("Telemetry In");
512512
case AUX_SERIAL_SBUS_TRAINER:
513513
return tr("SBUS Trainer");
514+
case AUX_SERIAL_SBUS_TRAINER_INV:
515+
return tr("SBUS Trainer Inverted");
514516
case AUX_SERIAL_LUA:
515517
return tr("LUA");
516518
case AUX_SERIAL_CLI:
@@ -600,16 +602,17 @@ AbstractStaticItemModel * GeneralSettings::serialModeItemModel()
600602

601603
if (i == AUX_SERIAL_EXT_MODULE) {
602604
contexts &= ~(AUX2Context | VCPContext);
603-
}
604-
else if (i == AUX_SERIAL_TELE_IN ||
605-
i == AUX_SERIAL_SBUS_TRAINER ||
606-
i == AUX_SERIAL_GPS ||
607-
i == AUX_SERIAL_SPACEMOUSE ||
608-
i == AUX_SERIAL_EXT_MODULE) {
605+
} else if (i == AUX_SERIAL_TELE_IN ||
606+
i == AUX_SERIAL_SBUS_TRAINER ||
607+
i == AUX_SERIAL_SBUS_TRAINER_INV ||
608+
i == AUX_SERIAL_GPS ||
609+
i == AUX_SERIAL_SPACEMOUSE ||
610+
i == AUX_SERIAL_EXT_MODULE) {
609611
contexts &= ~VCPContext;
610612
}
611613

612-
mdl->appendToItemList(serialModeToString(i), i, true, 0, contexts);
614+
bool avail = IS_STM32F2F4(getCurrentBoard()) && i == AUX_SERIAL_SBUS_TRAINER_INV ? false : true;
615+
mdl->appendToItemList(serialModeToString(i), i, avail, 0, contexts);
613616
}
614617

615618
mdl->loadItemList();

companion/src/firmwares/generalsettings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ class GeneralSettings {
161161
AUX_SERIAL_TELE_MIRROR,
162162
AUX_SERIAL_TELE_IN,
163163
AUX_SERIAL_SBUS_TRAINER,
164+
AUX_SERIAL_SBUS_TRAINER_INV,
164165
AUX_SERIAL_LUA,
165166
AUX_SERIAL_CLI,
166167
AUX_SERIAL_GPS,

companion/src/firmwares/modeldata.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1844,8 +1844,10 @@ bool ModelData::isTrainerModeAvailable(const GeneralSettings & generalSettings,
18441844
return false;
18451845

18461846
if (value == TRAINER_MODE_MASTER_SERIAL &&
1847-
(generalSettings.serialPort[GeneralSettings::SP_AUX1] != GeneralSettings::AUX_SERIAL_SBUS_TRAINER &&
1848-
generalSettings.serialPort[GeneralSettings::SP_AUX2] != GeneralSettings::AUX_SERIAL_SBUS_TRAINER))
1847+
generalSettings.serialPort[GeneralSettings::SP_AUX1] != GeneralSettings::AUX_SERIAL_SBUS_TRAINER &&
1848+
generalSettings.serialPort[GeneralSettings::SP_AUX1] != GeneralSettings::AUX_SERIAL_SBUS_TRAINER_INV &&
1849+
generalSettings.serialPort[GeneralSettings::SP_AUX2] != GeneralSettings::AUX_SERIAL_SBUS_TRAINER &&
1850+
generalSettings.serialPort[GeneralSettings::SP_AUX2] != GeneralSettings::AUX_SERIAL_SBUS_TRAINER_INV)
18491851
return false;
18501852

18511853
if ((value == TRAINER_MODE_MASTER_BLUETOOTH || value == TRAINER_MODE_SLAVE_BLUETOOTH) &&

0 commit comments

Comments
 (0)