From ab385d1bdbc736c818e2a585b8cea6f4462f72f0 Mon Sep 17 00:00:00 2001 From: 3djc Date: Tue, 1 Oct 2019 15:01:21 +0200 Subject: [PATCH] Prevent conflict with trainer on external module (#6846) Prevent conflict with trainer on external module --- radio/src/gui/gui_common.cpp | 11 ++++++++++- radio/src/gui/gui_common.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index db46986bb..cee207093 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -536,6 +536,15 @@ bool isPxx2IsrmChannelsCountAllowed(int channels) } #endif +bool isTrainerUsingModuleBay() +{ +#if defined(PCBTARANIS) + if (TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE <= g_model.trainerData.mode && g_model.trainerData.mode <= TRAINER_MODE_MASTER_BATTERY_COMPARTMENT) + return true; +#endif + return false; +} + bool isModuleUsingSport(uint8_t moduleBay, uint8_t moduleType) { switch (moduleType) { @@ -644,7 +653,7 @@ bool isExternalModuleAvailable(int moduleType) #endif #if defined(HARDWARE_INTERNAL_MODULE) - if (isModuleUsingSport(EXTERNAL_MODULE, moduleType) && isModuleUsingSport(INTERNAL_MODULE, g_model.moduleData[INTERNAL_MODULE].type)) + if ((isModuleUsingSport(EXTERNAL_MODULE, moduleType) || isTrainerUsingModuleBay()) && isModuleUsingSport(INTERNAL_MODULE, g_model.moduleData[INTERNAL_MODULE].type)) return false; #endif diff --git a/radio/src/gui/gui_common.h b/radio/src/gui/gui_common.h index b941d2ec9..16f5ac397 100644 --- a/radio/src/gui/gui_common.h +++ b/radio/src/gui/gui_common.h @@ -62,6 +62,7 @@ bool isSwitchAvailableInTimers(int swtch); bool isR9MModeAvailable(int mode); bool isPxx2IsrmChannelsCountAllowed(int channels); bool isModuleUsingSport(uint8_t moduleBay, uint8_t moduleType); +bool isTrainerUsingModuleBay(); bool isExternalModuleAvailable(int moduleType); bool isInternalModuleAvailable(int moduleType); bool isRfProtocolAvailable(int protocol);