From be20e2ef2a90a8388571514dc07c833ca8c7420f Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Thu, 6 Mar 2025 12:08:09 +1000 Subject: [PATCH] fix(radio): don't check ELRS version if crossfire disabled (#5961) --- radio/src/gui/gui_common.cpp | 2 +- radio/src/pulses/modules_helpers.h | 2 +- radio/src/telemetry/crossfire.h | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/radio/src/gui/gui_common.cpp b/radio/src/gui/gui_common.cpp index b26913fa9..25fbcf80d 100644 --- a/radio/src/gui/gui_common.cpp +++ b/radio/src/gui/gui_common.cpp @@ -1376,7 +1376,7 @@ uint8_t MENU_FIRST_LINE_EDIT(const uint8_t * horTab, uint8_t horTabMax) uint8_t MODULE_BIND_ROWS(int moduleIdx) { - if (isModuleELRS(moduleIdx) && (crossfireModuleStatus[moduleIdx].major >= 4 || (crossfireModuleStatus[moduleIdx].major == 3 && crossfireModuleStatus[moduleIdx].minor >= 4))) + if (isModuleELRS(moduleIdx) && CRSF_ELRS_MIN_VER(moduleIdx, 3, 4)) return 1; if (isModuleCrossfire(moduleIdx)) diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index 01df50079..915642901 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -619,7 +619,7 @@ inline bool isModuleBindRangeAvailable(uint8_t moduleIdx) return isModulePXX2(moduleIdx) || isModulePXX1(moduleIdx) || isModuleDSM2(moduleIdx) || isModuleMultimodule(moduleIdx) || isModuleFlySky(moduleIdx) || isModuleDSMP(moduleIdx) || - (isModuleELRS(moduleIdx) && (crossfireModuleStatus[moduleIdx].major >= 4 || (crossfireModuleStatus[moduleIdx].major == 3 && crossfireModuleStatus[moduleIdx].minor >= 4))); + (isModuleELRS(moduleIdx) && CRSF_ELRS_MIN_VER(moduleIdx, 3, 4)); } inline uint32_t getNV14RfFwVersion() diff --git a/radio/src/telemetry/crossfire.h b/radio/src/telemetry/crossfire.h index 347ea2e6d..8e7c55c1c 100644 --- a/radio/src/telemetry/crossfire.h +++ b/radio/src/telemetry/crossfire.h @@ -156,11 +156,15 @@ const uint8_t CROSSFIRE_FRAME_PERIODS[] = { % DIM(CROSSFIRE_BAUDRATES) #endif +#if defined(CROSSFIRE) #define CRSF_ELRS_MIN_VER(moduleIdx, maj, min) \ (crossfireModuleStatus[moduleIdx].isELRS \ && (crossfireModuleStatus[moduleIdx].major > maj \ || (crossfireModuleStatus[moduleIdx].major == maj \ && crossfireModuleStatus[moduleIdx].minor >= min))) +#else +#define CRSF_ELRS_MIN_VER(moduleIdx, maj, min) false +#endif #if defined(HARDWARE_INTERNAL_MODULE) #define INT_CROSSFIRE_BR_IDX CROSSFIRE_STORE_TO_INDEX(g_eeGeneral.internalModuleBaudrate)