mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-25 17:25:18 +03:00
Update osd.c
This commit is contained in:
parent
1753ed1383
commit
1efec56b8e
1 changed files with 12 additions and 6 deletions
|
@ -4401,11 +4401,15 @@ uint8_t drawStat_FlightDistance(uint8_t col, uint8_t row, uint8_t statValX) {
|
||||||
|
|
||||||
uint8_t drawStat_MaxDistanceFromHome(uint8_t col, uint8_t row, uint8_t statValX) {
|
uint8_t drawStat_MaxDistanceFromHome(uint8_t col, uint8_t row, uint8_t statValX) {
|
||||||
char buff[12];
|
char buff[12];
|
||||||
if (!osdDisplayIsHD())
|
uint8_t valueXOffset = 0;
|
||||||
|
if (!osdDisplayIsHD()) {
|
||||||
displayWrite(osdDisplayPort, col, row, "DISTANCE FROM ");
|
displayWrite(osdDisplayPort, col, row, "DISTANCE FROM ");
|
||||||
else
|
valueXOffset = 14;
|
||||||
|
} else {
|
||||||
displayWrite(osdDisplayPort, col, row, "MAX DISTANCE FROM ");
|
displayWrite(osdDisplayPort, col, row, "MAX DISTANCE FROM ");
|
||||||
displayWriteChar(osdDisplayPort, col + 14, row, SYM_HOME);
|
valueXOffset = 18;
|
||||||
|
}
|
||||||
|
displayWriteChar(osdDisplayPort, col + valueXOffset, row, SYM_HOME);
|
||||||
tfp_sprintf(buff, ": ");
|
tfp_sprintf(buff, ": ");
|
||||||
osdFormatDistanceStr(buff + 2, stats.max_distance * 100);
|
osdFormatDistanceStr(buff + 2, stats.max_distance * 100);
|
||||||
displayWrite(osdDisplayPort, statValX, row++, buff);
|
displayWrite(osdDisplayPort, statValX, row++, buff);
|
||||||
|
@ -4505,6 +4509,7 @@ uint8_t drawStat_AverageEfficiency(uint8_t col, uint8_t row, uint8_t statValX) {
|
||||||
char buff[15];
|
char buff[15];
|
||||||
uint8_t buffOffset = 2;
|
uint8_t buffOffset = 2;
|
||||||
int32_t totalDistance = getTotalTravelDistance();
|
int32_t totalDistance = getTotalTravelDistance();
|
||||||
|
bool isDJI = false;
|
||||||
bool moreThanAh = false;
|
bool moreThanAh = false;
|
||||||
bool efficiencyValid = totalDistance >= 10000;
|
bool efficiencyValid = totalDistance >= 10000;
|
||||||
|
|
||||||
|
@ -4516,6 +4521,7 @@ uint8_t drawStat_AverageEfficiency(uint8_t col, uint8_t row, uint8_t statValX) {
|
||||||
if (isBfCompatibleVideoSystem(osdConfig())) {
|
if (isBfCompatibleVideoSystem(osdConfig())) {
|
||||||
// Add one digit so no switch to scaled decimal occurs above 99
|
// Add one digit so no switch to scaled decimal occurs above 99
|
||||||
digits = 4U;
|
digits = 4U;
|
||||||
|
isDJI = true;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
switch (osdConfig()->units) {
|
switch (osdConfig()->units) {
|
||||||
|
@ -4567,12 +4573,12 @@ uint8_t drawStat_AverageEfficiency(uint8_t col, uint8_t row, uint8_t statValX) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (statValX > 20 && osdConfig()->units != OSD_UNIT_METRIC_MPH && osdConfig()->units != OSD_UNIT_METRIC) {
|
if (!isDJI && osdConfig()->units != OSD_UNIT_METRIC_MPH && osdConfig()->units != OSD_UNIT_METRIC) {
|
||||||
strcat(osdFormatTrimWhiteSpace(buff), "/");
|
strcat(osdFormatTrimWhiteSpace(buff), "/");
|
||||||
buffOffset = strlen(buff);
|
buffOffset = strlen(buff);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (statValX > 20 || (osdConfig()->units != OSD_UNIT_METRIC_MPH || osdConfig()->units != OSD_UNIT_METRIC)) {
|
if (!isDJI || osdConfig()->units == OSD_UNIT_METRIC_MPH || osdConfig()->units == OSD_UNIT_METRIC) {
|
||||||
if (osdConfig()->stats_energy_unit == OSD_STATS_ENERGY_UNIT_MAH) {
|
if (osdConfig()->stats_energy_unit == OSD_STATS_ENERGY_UNIT_MAH) {
|
||||||
moreThanAh = osdFormatCentiNumber(buff + buffOffset, (int32_t)(getMAhDrawn() * 10000000.0f / totalDistance), 1000, 0, 2, digits, false);
|
moreThanAh = osdFormatCentiNumber(buff + buffOffset, (int32_t)(getMAhDrawn() * 10000000.0f / totalDistance), 1000, 0, 2, digits, false);
|
||||||
if (!moreThanAh) {
|
if (!moreThanAh) {
|
||||||
|
@ -4702,7 +4708,7 @@ uint8_t drawStat_GForce(uint8_t col, uint8_t row, uint8_t statValX) {
|
||||||
multiValueXOffset = strlen(buff);
|
multiValueXOffset = strlen(buff);
|
||||||
osdFormatCentiNumber(buff + multiValueXOffset, acc_extremes_max * 100, 0, 2, 0, 3, false);
|
osdFormatCentiNumber(buff + multiValueXOffset, acc_extremes_max * 100, 0, 2, 0, 3, false);
|
||||||
osdLeftAlignString(buff);
|
osdLeftAlignString(buff);
|
||||||
displayWrite(osdDisplayPort, statValX + multiValueXOffset, row++, buff);
|
displayWrite(osdDisplayPort, statValX, row++, buff);
|
||||||
|
|
||||||
return row;
|
return row;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue