From 7d263667de622d99b59934949b2bb23e2fa53b6f Mon Sep 17 00:00:00 2001 From: Bruce Luckcuck Date: Sun, 23 Dec 2018 15:57:03 -0500 Subject: [PATCH] Prioritize pre-flight OSD warnings Rearranges the OSD warnings element messages to prioritize the pre-flight warnings. Previously other warnings could override the crash flip or launch control warnings - leading to safety issues. --- src/main/io/osd.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/main/io/osd.c b/src/main/io/osd.c index 791e05931c..316a7745c0 100644 --- a/src/main/io/osd.c +++ b/src/main/io/osd.c @@ -970,6 +970,27 @@ static bool osdDrawSingleElement(uint8_t item) break; } + // Warn when in flip over after crash mode + if (osdWarnGetState(OSD_WARNING_CRASH_FLIP) && isFlipOverAfterCrashActive()) { + osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "CRASH FLIP"); + break; + } + +#ifdef USE_LAUNCH_CONTROL + // Warn when in launch control mode + if (osdWarnGetState(OSD_WARNING_LAUNCH_CONTROL) && isLaunchControlActive()) { + if (sensors(SENSOR_ACC)) { + char launchControlMsg[OSD_FORMAT_MESSAGE_BUFFER_SIZE]; + const int pitchAngle = constrain((attitude.raw[FD_PITCH] - accelerometerConfig()->accelerometerTrims.raw[FD_PITCH]) / 10, -90, 90); + tfp_sprintf(launchControlMsg, "LAUNCH %d", pitchAngle); + osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, launchControlMsg); + } else { + osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "LAUNCH"); + } + break; + } +#endif + if (osdWarnGetState(OSD_WARNING_BATTERY_CRITICAL) && batteryState == BATTERY_CRITICAL) { osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, " LAND NOW"); SET_BLINK(OSD_WARNINGS); @@ -1058,27 +1079,6 @@ static bool osdDrawSingleElement(uint8_t item) } #endif - // Warn when in flip over after crash mode - if (osdWarnGetState(OSD_WARNING_CRASH_FLIP) && isFlipOverAfterCrashActive()) { - osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "CRASH FLIP"); - break; - } - -#ifdef USE_LAUNCH_CONTROL - // Warn when in launch control mode - if (osdWarnGetState(OSD_WARNING_LAUNCH_CONTROL) && isLaunchControlActive()) { - if (sensors(SENSOR_ACC)) { - char launchControlMsg[OSD_FORMAT_MESSAGE_BUFFER_SIZE]; - const int pitchAngle = constrain((attitude.raw[FD_PITCH] - accelerometerConfig()->accelerometerTrims.raw[FD_PITCH]) / 10, -90, 90); - tfp_sprintf(launchControlMsg, "LAUNCH %d", pitchAngle); - osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, launchControlMsg); - } else { - osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "LAUNCH"); - } - break; - } -#endif - if (osdWarnGetState(OSD_WARNING_BATTERY_WARNING) && batteryState == BATTERY_WARNING) { osdFormatMessage(buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "LOW BATTERY"); SET_BLINK(OSD_WARNINGS);