1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-23 00:05:33 +03:00

Maximum Home Distance in OSD stats

This commit is contained in:
Miguel Angel Mulero Martinez 2017-06-13 09:13:19 +02:00
parent 4f852fb416
commit 64aa5824a7
3 changed files with 22 additions and 6 deletions

View file

@ -660,6 +660,7 @@ const clivalue_t valueTable[] = {
{ "osd_disarmed_pos", VAR_UINT16 | MASTER_VALUE, .config.minmax = { 0, OSD_POSCFG_MAX }, PG_OSD_CONFIG, offsetof(osdConfig_t, item_pos[OSD_DISARMED]) }, { "osd_disarmed_pos", VAR_UINT16 | MASTER_VALUE, .config.minmax = { 0, OSD_POSCFG_MAX }, PG_OSD_CONFIG, offsetof(osdConfig_t, item_pos[OSD_DISARMED]) },
{ "osd_stat_max_spd", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_MAX_SPEED])}, { "osd_stat_max_spd", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_MAX_SPEED])},
{ "osd_stat_max_dist", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_MAX_DISTANCE])},
{ "osd_stat_min_batt", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_MIN_BATTERY])}, { "osd_stat_min_batt", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_MIN_BATTERY])},
{ "osd_stat_min_rssi", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_MIN_RSSI])}, { "osd_stat_min_rssi", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_MIN_RSSI])},
{ "osd_stat_max_curr", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_MAX_CURRENT])}, { "osd_stat_max_curr", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_MAX_CURRENT])},

View file

@ -118,6 +118,7 @@ typedef struct statistic_s {
int16_t max_current; // /10 int16_t max_current; // /10
int16_t min_rssi; int16_t min_rssi;
int16_t max_altitude; int16_t max_altitude;
int16_t max_distance;
uint16_t armed_time; uint16_t armed_time;
} statistic_t; } statistic_t;
@ -675,6 +676,7 @@ void pgResetFn_osdConfig(osdConfig_t *osdConfig)
osdConfig->enabled_stats[OSD_STAT_END_BATTERY] = false; osdConfig->enabled_stats[OSD_STAT_END_BATTERY] = false;
osdConfig->enabled_stats[OSD_STAT_FLYTIME] = false; osdConfig->enabled_stats[OSD_STAT_FLYTIME] = false;
osdConfig->enabled_stats[OSD_STAT_ARMEDTIME] = true; osdConfig->enabled_stats[OSD_STAT_ARMEDTIME] = true;
osdConfig->enabled_stats[OSD_STAT_MAX_DISTANCE] = false;
osdConfig->units = OSD_UNIT_METRIC; osdConfig->units = OSD_UNIT_METRIC;
@ -792,13 +794,14 @@ void osdResetAlarms(void)
static void osdResetStats(void) static void osdResetStats(void)
{ {
stats.max_current = 0; stats.max_current = 0;
stats.max_speed = 0; stats.max_speed = 0;
stats.min_voltage = 500; stats.min_voltage = 500;
stats.max_current = 0; stats.max_current = 0;
stats.min_rssi = 99; stats.min_rssi = 99;
stats.max_altitude = 0; stats.max_altitude = 0;
stats.armed_time = 0; stats.max_distance = 0;
stats.armed_time = 0;
} }
static void osdUpdateStats(void) static void osdUpdateStats(void)
@ -822,6 +825,12 @@ static void osdUpdateStats(void)
if (stats.max_altitude < getEstimatedAltitude()) if (stats.max_altitude < getEstimatedAltitude())
stats.max_altitude = getEstimatedAltitude(); stats.max_altitude = getEstimatedAltitude();
#ifdef GPS
if (STATE(GPS_FIX) && STATE(GPS_FIX_HOME) && (stats.max_distance < GPS_distanceToHome)) {
stats.max_distance = GPS_distanceToHome;
}
#endif
} }
#ifdef BLACKBOX #ifdef BLACKBOX
@ -896,6 +905,11 @@ static void osdShowStats(void)
osdDisplayStatisticLabel(top++, "MAX SPEED", buff); osdDisplayStatisticLabel(top++, "MAX SPEED", buff);
} }
if (osdConfig()->enabled_stats[OSD_STAT_MAX_DISTANCE]) {
tfp_sprintf(buff, "%d%c", osdGetMetersToSelectedUnit(stats.max_distance), osdGetMetersToSelectedUnitSymbol());
osdDisplayStatisticLabel(top++, "MAX DISTANCE", buff);
}
if (osdConfig()->enabled_stats[OSD_STAT_MIN_BATTERY]) { if (osdConfig()->enabled_stats[OSD_STAT_MIN_BATTERY]) {
tfp_sprintf(buff, "%d.%1d%c", stats.min_voltage / 10, stats.min_voltage % 10, SYM_VOLT); tfp_sprintf(buff, "%d.%1d%c", stats.min_voltage / 10, stats.min_voltage % 10, SYM_VOLT);
osdDisplayStatisticLabel(top++, "MIN BATTERY", buff); osdDisplayStatisticLabel(top++, "MIN BATTERY", buff);

View file

@ -74,6 +74,7 @@ typedef enum {
OSD_STAT_END_BATTERY, OSD_STAT_END_BATTERY,
OSD_STAT_FLYTIME, OSD_STAT_FLYTIME,
OSD_STAT_ARMEDTIME, OSD_STAT_ARMEDTIME,
OSD_STAT_MAX_DISTANCE,
OSD_STAT_COUNT // MUST BE LAST OSD_STAT_COUNT // MUST BE LAST
} osd_stats_e; } osd_stats_e;