1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 17:25:20 +03:00

Remove remaining blank overwrite in OSD warnings

This commit is contained in:
Miguel Angel Mulero Martinez 2019-06-12 09:12:43 +02:00
parent f759ba75d7
commit fdc6aab7a9

View file

@ -240,16 +240,6 @@ static void osdFormatCoordinate(char *buff, char sym, int32_t val)
} }
#endif // USE_GPS #endif // USE_GPS
static void osdFormatMessage(char *buff, size_t size, const char *message)
{
memset(buff, SYM_BLANK, size);
if (message) {
memcpy(buff, message, strlen(message));
}
// Ensure buff is zero terminated
buff[size - 1] = '\0';
}
static void osdFormatPID(char * buff, const char * label, const pidf_t * pid) static void osdFormatPID(char * buff, const char * label, const pidf_t * pid)
{ {
tfp_sprintf(buff, "%s %3d %3d %3d", label, pid->P, pid->I, pid->D); tfp_sprintf(buff, "%s %3d %3d %3d", label, pid->P, pid->I, pid->D);
@ -1126,7 +1116,7 @@ static void osdElementWarnings(osdElementParms_t *element)
} while (!(flags & (1 << armingDisabledDisplayIndex))); } while (!(flags & (1 << armingDisabledDisplayIndex)));
} }
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, armingDisableFlagNames[armingDisabledDisplayIndex]); tfp_sprintf(element->buff, "%s", armingDisableFlagNames[armingDisabledDisplayIndex]);
return; return;
} else { } else {
armingDisabledUpdateTimeUs = 0; armingDisabledUpdateTimeUs = 0;
@ -1140,24 +1130,22 @@ static void osdElementWarnings(osdElementParms_t *element)
armingDelayTime = 0; armingDelayTime = 0;
} }
if (armingDelayTime >= (DSHOT_BEACON_GUARD_DELAY_US / 1e5 - 5)) { if (armingDelayTime >= (DSHOT_BEACON_GUARD_DELAY_US / 1e5 - 5)) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, " BEACON ON"); // Display this message for the first 0.5 seconds tfp_sprintf(element->buff, " BEACON ON"); // Display this message for the first 0.5 seconds
} else { } else {
char armingDelayMessage[OSD_FORMAT_MESSAGE_BUFFER_SIZE]; tfp_sprintf(element->buff, "ARM IN %d.%d", armingDelayTime / 10, armingDelayTime % 10);
tfp_sprintf(armingDelayMessage, "ARM IN %d.%d", armingDelayTime / 10, armingDelayTime % 10);
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, armingDelayMessage);
} }
return; return;
} }
#endif // USE_DSHOT #endif // USE_DSHOT
if (osdWarnGetState(OSD_WARNING_FAIL_SAFE) && failsafeIsActive()) { if (osdWarnGetState(OSD_WARNING_FAIL_SAFE) && failsafeIsActive()) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "FAIL SAFE"); tfp_sprintf(element->buff, "FAIL SAFE");
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
// Warn when in flip over after crash mode // Warn when in flip over after crash mode
if (osdWarnGetState(OSD_WARNING_CRASH_FLIP) && isFlipOverAfterCrashActive()) { if (osdWarnGetState(OSD_WARNING_CRASH_FLIP) && isFlipOverAfterCrashActive()) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "CRASH FLIP"); tfp_sprintf(element->buff, "CRASH FLIP");
return; return;
} }
@ -1166,14 +1154,12 @@ static void osdElementWarnings(osdElementParms_t *element)
if (osdWarnGetState(OSD_WARNING_LAUNCH_CONTROL) && isLaunchControlActive()) { if (osdWarnGetState(OSD_WARNING_LAUNCH_CONTROL) && isLaunchControlActive()) {
#ifdef USE_ACC #ifdef USE_ACC
if (sensors(SENSOR_ACC)) { 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); const int pitchAngle = constrain((attitude.raw[FD_PITCH] - accelerometerConfig()->accelerometerTrims.raw[FD_PITCH]) / 10, -90, 90);
tfp_sprintf(launchControlMsg, "LAUNCH %d", pitchAngle); tfp_sprintf(element->buff, "LAUNCH %d", pitchAngle);
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, launchControlMsg);
} else } else
#endif // USE_ACC #endif // USE_ACC
{ {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "LAUNCH"); tfp_sprintf(element->buff, "LAUNCH");
} }
return; return;
} }
@ -1181,14 +1167,14 @@ static void osdElementWarnings(osdElementParms_t *element)
// RSSI // RSSI
if (osdWarnGetState(OSD_WARNING_RSSI) && (getRssiPercent() < osdConfig()->rssi_alarm)) { if (osdWarnGetState(OSD_WARNING_RSSI) && (getRssiPercent() < osdConfig()->rssi_alarm)) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "RSSI LOW"); tfp_sprintf(element->buff, "RSSI LOW");
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
#ifdef USE_RX_RSSI_DBM #ifdef USE_RX_RSSI_DBM
// rssi dbm // rssi dbm
if (osdWarnGetState(OSD_WARNING_RSSI_DBM) && (getRssiDbm() > osdConfig()->rssi_dbm_alarm)) { if (osdWarnGetState(OSD_WARNING_RSSI_DBM) && (getRssiDbm() > osdConfig()->rssi_dbm_alarm)) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "RSSI DBM"); tfp_sprintf(element->buff, "RSSI DBM");
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
@ -1197,14 +1183,14 @@ static void osdElementWarnings(osdElementParms_t *element)
#ifdef USE_RX_LINK_QUALITY_INFO #ifdef USE_RX_LINK_QUALITY_INFO
// Link Quality // Link Quality
if (osdWarnGetState(OSD_WARNING_LINK_QUALITY) && (rxGetLinkQualityPercent() < osdConfig()->link_quality_alarm)) { if (osdWarnGetState(OSD_WARNING_LINK_QUALITY) && (rxGetLinkQualityPercent() < osdConfig()->link_quality_alarm)) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "LINK QUALITY"); tfp_sprintf(element->buff, "LINK QUALITY");
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
#endif // USE_RX_LINK_QUALITY_INFO #endif // USE_RX_LINK_QUALITY_INFO
if (osdWarnGetState(OSD_WARNING_BATTERY_CRITICAL) && batteryState == BATTERY_CRITICAL) { if (osdWarnGetState(OSD_WARNING_BATTERY_CRITICAL) && batteryState == BATTERY_CRITICAL) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, " LAND NOW"); tfp_sprintf(element->buff, " LAND NOW");
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
@ -1215,7 +1201,7 @@ static void osdElementWarnings(osdElementParms_t *element)
gpsRescueIsConfigured() && gpsRescueIsConfigured() &&
!gpsRescueIsDisabled() && !gpsRescueIsDisabled() &&
!gpsRescueIsAvailable()) { !gpsRescueIsAvailable()) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "RESCUE N/A"); tfp_sprintf(element->buff, "RESCUE N/A");
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
@ -1227,7 +1213,7 @@ static void osdElementWarnings(osdElementParms_t *element)
statistic_t *stats = osdGetStats(); statistic_t *stats = osdGetStats();
if (cmpTimeUs(stats->armed_time, OSD_GPS_RESCUE_DISABLED_WARNING_DURATION_US) < 0) { if (cmpTimeUs(stats->armed_time, OSD_GPS_RESCUE_DISABLED_WARNING_DURATION_US) < 0) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "RESCUE OFF"); tfp_sprintf(element->buff, "RESCUE OFF");
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
@ -1237,7 +1223,7 @@ static void osdElementWarnings(osdElementParms_t *element)
// Show warning if in HEADFREE flight mode // Show warning if in HEADFREE flight mode
if (FLIGHT_MODE(HEADFREE_MODE)) { if (FLIGHT_MODE(HEADFREE_MODE)) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "HEADFREE"); tfp_sprintf(element->buff, "HEADFREE");
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
@ -1245,10 +1231,7 @@ static void osdElementWarnings(osdElementParms_t *element)
#ifdef USE_ADC_INTERNAL #ifdef USE_ADC_INTERNAL
const int16_t coreTemperature = getCoreTemperatureCelsius(); const int16_t coreTemperature = getCoreTemperatureCelsius();
if (osdWarnGetState(OSD_WARNING_CORE_TEMPERATURE) && coreTemperature >= osdConfig()->core_temp_alarm) { if (osdWarnGetState(OSD_WARNING_CORE_TEMPERATURE) && coreTemperature >= osdConfig()->core_temp_alarm) {
char coreTemperatureWarningMsg[OSD_FORMAT_MESSAGE_BUFFER_SIZE]; tfp_sprintf(element->buff, "CORE %c: %3d%c", SYM_TEMPERATURE, osdConvertTemperatureToSelectedUnit(coreTemperature), osdGetTemperatureSymbolForSelectedUnit());
tfp_sprintf(coreTemperatureWarningMsg, "CORE %c: %3d%c", SYM_TEMPERATURE, osdConvertTemperatureToSelectedUnit(coreTemperature), osdGetTemperatureSymbolForSelectedUnit());
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, coreTemperatureWarningMsg);
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
@ -1299,7 +1282,7 @@ static void osdElementWarnings(osdElementParms_t *element)
escWarningMsg[pos] = '\0'; escWarningMsg[pos] = '\0';
if (escWarningCount > 0) { if (escWarningCount > 0) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, escWarningMsg); tfp_sprintf(element->buff, "%s", escWarningMsg);
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
@ -1307,7 +1290,7 @@ static void osdElementWarnings(osdElementParms_t *element)
#endif // USE_ESC_SENSOR #endif // USE_ESC_SENSOR
if (osdWarnGetState(OSD_WARNING_BATTERY_WARNING) && batteryState == BATTERY_WARNING) { if (osdWarnGetState(OSD_WARNING_BATTERY_WARNING) && batteryState == BATTERY_WARNING) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "LOW BATTERY"); tfp_sprintf(element->buff, "LOW BATTERY");
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
@ -1315,7 +1298,7 @@ static void osdElementWarnings(osdElementParms_t *element)
#ifdef USE_RC_SMOOTHING_FILTER #ifdef USE_RC_SMOOTHING_FILTER
// Show warning if rc smoothing hasn't initialized the filters // Show warning if rc smoothing hasn't initialized the filters
if (osdWarnGetState(OSD_WARNING_RC_SMOOTHING) && ARMING_FLAG(ARMED) && !rcSmoothingInitializationComplete()) { if (osdWarnGetState(OSD_WARNING_RC_SMOOTHING) && ARMING_FLAG(ARMED) && !rcSmoothingInitializationComplete()) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "RCSMOOTHING"); tfp_sprintf(element->buff, "RCSMOOTHING");
SET_BLINK(OSD_WARNINGS); SET_BLINK(OSD_WARNINGS);
return; return;
} }
@ -1324,17 +1307,16 @@ static void osdElementWarnings(osdElementParms_t *element)
// Show warning if battery is not fresh // Show warning if battery is not fresh
if (osdWarnGetState(OSD_WARNING_BATTERY_NOT_FULL) && !ARMING_FLAG(WAS_EVER_ARMED) && (getBatteryState() == BATTERY_OK) if (osdWarnGetState(OSD_WARNING_BATTERY_NOT_FULL) && !ARMING_FLAG(WAS_EVER_ARMED) && (getBatteryState() == BATTERY_OK)
&& getBatteryAverageCellVoltage() < batteryConfig()->vbatfullcellvoltage) { && getBatteryAverageCellVoltage() < batteryConfig()->vbatfullcellvoltage) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, "BATT < FULL"); tfp_sprintf(element->buff, "BATT < FULL");
return; return;
} }
// Visual beeper // Visual beeper
if (osdWarnGetState(OSD_WARNING_VISUAL_BEEPER) && osdGetVisualBeeperState()) { if (osdWarnGetState(OSD_WARNING_VISUAL_BEEPER) && osdGetVisualBeeperState()) {
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, " * * * *"); tfp_sprintf(element->buff, " * * * *");
return; return;
} }
osdFormatMessage(element->buff, OSD_FORMAT_MESSAGE_BUFFER_SIZE, NULL);
} }
// Define the order in which the elements are drawn. // Define the order in which the elements are drawn.