mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-20 06:45:16 +03:00
Add fly timers to stats, add armed time OSD elem.
Added: - Fly time stat (total time armed) - Armed time stat (time since last arming) - Armed time OSD element (time since last arming)
This commit is contained in:
parent
3b353ae948
commit
d83f0ddf5e
3 changed files with 39 additions and 0 deletions
|
@ -660,6 +660,9 @@ const clivalue_t valueTable[] = {
|
|||
{ "osd_stat_used_mah", VAR_UINT8 | MASTER_VALUE, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_USED_MAH])},
|
||||
{ "osd_stat_max_alt", VAR_UINT8 | MASTER_VALUE, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_MAX_ALTITUDE])},
|
||||
{ "osd_stat_bbox", VAR_UINT8 | MASTER_VALUE, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_BLACKBOX])},
|
||||
{ "osd_stat_endbatt", VAR_UINT8 | MASTER_VALUE, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_END_BATTERY])},
|
||||
{ "osd_stat_flytime", VAR_UINT8 | MASTER_VALUE, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_FLYTIME])},
|
||||
{ "osd_stat_armtime", VAR_UINT8 | MASTER_VALUE, .config.lookup = { TABLE_OFF_ON }, PG_OSD_CONFIG, offsetof(osdConfig_t, enabled_stats[OSD_STAT_ARMEDTIME])},
|
||||
#endif
|
||||
|
||||
// PG_SYSTEM_CONFIG
|
||||
|
|
|
@ -120,6 +120,7 @@ typedef struct statistic_s {
|
|||
int16_t max_current; // /10
|
||||
int16_t min_rssi;
|
||||
int16_t max_altitude;
|
||||
uint16_t armed_time;
|
||||
} statistic_t;
|
||||
|
||||
static statistic_t stats;
|
||||
|
@ -274,6 +275,13 @@ static void osdDrawSingleElement(uint8_t item)
|
|||
break;
|
||||
}
|
||||
|
||||
case OSD_ARMED_TIME:
|
||||
{
|
||||
buff[0] = SYM_FLY_M;
|
||||
tfp_sprintf(buff + 1, "%02d:%02d", stats.armed_time / 60, stats.armed_time % 60);
|
||||
break;
|
||||
}
|
||||
|
||||
case OSD_FLYMODE:
|
||||
{
|
||||
char *p = "ACRO";
|
||||
|
@ -564,6 +572,7 @@ void osdDrawElements(void)
|
|||
osdDrawSingleElement(OSD_PITCH_ANGLE);
|
||||
osdDrawSingleElement(OSD_ROLL_ANGLE);
|
||||
osdDrawSingleElement(OSD_MAIN_BATT_USAGE);
|
||||
osdDrawSingleElement(OSD_ARMED_TIME);
|
||||
|
||||
#ifdef GPS
|
||||
#ifdef CMS
|
||||
|
@ -619,6 +628,9 @@ void pgResetFn_osdConfig(osdConfig_t *osdProfile)
|
|||
osdProfile->enabled_stats[OSD_STAT_USED_MAH] = true;
|
||||
osdProfile->enabled_stats[OSD_STAT_MAX_ALTITUDE] = false;
|
||||
osdProfile->enabled_stats[OSD_STAT_BLACKBOX] = true;
|
||||
osdProfile->enabled_stats[OSD_STAT_END_BATTERY] = false;
|
||||
osdProfile->enabled_stats[OSD_STAT_FLYTIME] = false;
|
||||
osdProfile->enabled_stats[OSD_STAT_ARMEDTIME] = true;
|
||||
|
||||
osdProfile->units = OSD_UNIT_METRIC;
|
||||
|
||||
|
@ -743,6 +755,7 @@ static void osdResetStats(void)
|
|||
stats.max_current = 0;
|
||||
stats.min_rssi = 99;
|
||||
stats.max_altitude = 0;
|
||||
stats.armed_time = 0;
|
||||
}
|
||||
|
||||
static void osdUpdateStats(void)
|
||||
|
@ -819,6 +832,18 @@ static void osdShowStats(void)
|
|||
displayClearScreen(osdDisplayPort);
|
||||
displayWrite(osdDisplayPort, 2, top++, " --- STATS ---");
|
||||
|
||||
if (osdConfig()->enabled_stats[OSD_STAT_ARMEDTIME]) {
|
||||
displayWrite(osdDisplayPort, 2, top, "ARMED TIME :");
|
||||
tfp_sprintf(buff, "%02d:%02d", stats.armed_time / 60, stats.armed_time % 60);
|
||||
displayWrite(osdDisplayPort, 22, top++, buff);
|
||||
}
|
||||
|
||||
if (osdConfig()->enabled_stats[OSD_STAT_FLYTIME]) {
|
||||
displayWrite(osdDisplayPort, 2, top, "FLY TIME :");
|
||||
tfp_sprintf(buff, "%02d:%02d", flyTime / 60, flyTime % 60);
|
||||
displayWrite(osdDisplayPort, 22, top++, buff);
|
||||
}
|
||||
|
||||
if (osdConfig()->enabled_stats[OSD_STAT_MAX_SPEED] && STATE(GPS_FIX)) {
|
||||
displayWrite(osdDisplayPort, 2, top, "MAX SPEED :");
|
||||
itoa(stats.max_speed, buff, 10);
|
||||
|
@ -831,6 +856,12 @@ static void osdShowStats(void)
|
|||
displayWrite(osdDisplayPort, 22, top++, buff);
|
||||
}
|
||||
|
||||
if (osdConfig()->enabled_stats[OSD_STAT_END_BATTERY]) {
|
||||
displayWrite(osdDisplayPort, 2, top, "END BATTERY :");
|
||||
tfp_sprintf(buff, "%d.%1dV", getBatteryVoltage() / 10, getBatteryVoltage() % 10);
|
||||
displayWrite(osdDisplayPort, 22, top++, buff);
|
||||
}
|
||||
|
||||
if (osdConfig()->enabled_stats[OSD_STAT_MIN_RSSI]) {
|
||||
displayWrite(osdDisplayPort, 2, top, "MIN RSSI :");
|
||||
itoa(stats.min_rssi, buff, 10);
|
||||
|
@ -901,6 +932,7 @@ static void osdRefresh(timeUs_t currentTimeUs)
|
|||
|
||||
if (ARMING_FLAG(ARMED) && sec != lastSec) {
|
||||
flyTime++;
|
||||
stats.armed_time++;
|
||||
lastSec = sec;
|
||||
}
|
||||
|
||||
|
|
|
@ -56,6 +56,7 @@ typedef enum {
|
|||
OSD_PITCH_ANGLE,
|
||||
OSD_ROLL_ANGLE,
|
||||
OSD_MAIN_BATT_USAGE,
|
||||
OSD_ARMED_TIME,
|
||||
OSD_ITEM_COUNT // MUST BE LAST
|
||||
} osd_items_e;
|
||||
|
||||
|
@ -67,6 +68,9 @@ typedef enum {
|
|||
OSD_STAT_USED_MAH,
|
||||
OSD_STAT_MAX_ALTITUDE,
|
||||
OSD_STAT_BLACKBOX,
|
||||
OSD_STAT_END_BATTERY,
|
||||
OSD_STAT_FLYTIME,
|
||||
OSD_STAT_ARMEDTIME,
|
||||
OSD_STAT_COUNT // MUST BE LAST
|
||||
} osd_states_e;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue