mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-23 16:25:31 +03:00
Fix GPS speed and max speed to respect the units selection
Previously GPS speed and max speed would always display in KPH even if the user chose imperial units. Now they will display in MPH for imperial units.
This commit is contained in:
parent
c0b27e6d0c
commit
8c24176d96
2 changed files with 18 additions and 3 deletions
|
@ -38,6 +38,7 @@
|
||||||
#define DEGREES_TO_RADIANS(angle) ((angle) * 0.0174532925f)
|
#define DEGREES_TO_RADIANS(angle) ((angle) * 0.0174532925f)
|
||||||
|
|
||||||
#define CM_S_TO_KM_H(centimetersPerSecond) (centimetersPerSecond * 36 / 1000)
|
#define CM_S_TO_KM_H(centimetersPerSecond) (centimetersPerSecond * 36 / 1000)
|
||||||
|
#define CM_S_TO_MPH(centimetersPerSecond) (((centimetersPerSecond * 10000) / 5080) / 88)
|
||||||
|
|
||||||
#define MIN(a,b) \
|
#define MIN(a,b) \
|
||||||
__extension__ ({ __typeof__ (a) _a = (a); \
|
__extension__ ({ __typeof__ (a) _a = (a); \
|
||||||
|
|
|
@ -427,8 +427,15 @@ static bool osdDrawSingleElement(uint8_t item)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OSD_GPS_SPEED:
|
case OSD_GPS_SPEED:
|
||||||
// FIXME ideally we want to use SYM_KMH symbol but it's not in the font any more, so we use K.
|
// FIXME ideally we want to use SYM_KMH symbol but it's not in the font any more, so we use K (M for MPH)
|
||||||
tfp_sprintf(buff, "%3dK", CM_S_TO_KM_H(gpsSol.groundSpeed));
|
switch (osdConfig()->units) {
|
||||||
|
case OSD_UNIT_IMPERIAL:
|
||||||
|
tfp_sprintf(buff, "%3dM", CM_S_TO_MPH(gpsSol.groundSpeed));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
tfp_sprintf(buff, "%3dK", CM_S_TO_KM_H(gpsSol.groundSpeed));
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OSD_GPS_LAT:
|
case OSD_GPS_LAT:
|
||||||
|
@ -1119,7 +1126,14 @@ static void osdUpdateStats(void)
|
||||||
{
|
{
|
||||||
int16_t value = 0;
|
int16_t value = 0;
|
||||||
#ifdef USE_GPS
|
#ifdef USE_GPS
|
||||||
value = CM_S_TO_KM_H(gpsSol.groundSpeed);
|
switch (osdConfig()->units) {
|
||||||
|
case OSD_UNIT_IMPERIAL:
|
||||||
|
value = CM_S_TO_MPH(gpsSol.groundSpeed);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
value = CM_S_TO_KM_H(gpsSol.groundSpeed);
|
||||||
|
break;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
if (stats.max_speed < value) {
|
if (stats.max_speed < value) {
|
||||||
stats.max_speed = value;
|
stats.max_speed = value;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue