|
|
|
@ -15,6 +15,12 @@ const AP_Param::GroupInfo AP_Stats::var_info[] = {
@@ -15,6 +15,12 @@ const AP_Param::GroupInfo AP_Stats::var_info[] = {
|
|
|
|
|
// @User: Standard
|
|
|
|
|
AP_GROUPINFO("_FLTTIME", 1, AP_Stats, params.flttime, 0), |
|
|
|
|
|
|
|
|
|
// @Param: _RUNTIME
|
|
|
|
|
// @DisplayName: Total RunTime
|
|
|
|
|
// @Description: Total time autopilot has run
|
|
|
|
|
// @User: Standard
|
|
|
|
|
AP_GROUPINFO("_RUNTIME", 2, AP_Stats, params.runtime, 0), |
|
|
|
|
|
|
|
|
|
AP_GROUPEND |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
@ -24,11 +30,14 @@ void AP_Stats::init()
@@ -24,11 +30,14 @@ void AP_Stats::init()
|
|
|
|
|
|
|
|
|
|
// initialise our variables from parameters:
|
|
|
|
|
flttime = params.flttime; |
|
|
|
|
runtime = params.runtime; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void AP_Stats::flush() |
|
|
|
|
{ |
|
|
|
|
params.flttime.set_and_save(flttime); |
|
|
|
|
params.runtime.set_and_save(runtime); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void AP_Stats::update_flighttime() |
|
|
|
@ -41,11 +50,20 @@ void AP_Stats::update_flighttime()
@@ -41,11 +50,20 @@ void AP_Stats::update_flighttime()
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void AP_Stats::update_runtime() |
|
|
|
|
{ |
|
|
|
|
const uint32_t now = AP_HAL::millis(); |
|
|
|
|
const uint32_t delta = (now - _last_runtime_ms)/1000; |
|
|
|
|
runtime += delta; |
|
|
|
|
_last_runtime_ms += delta*1000; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void AP_Stats::update() |
|
|
|
|
{ |
|
|
|
|
const uint32_t now_ms = AP_HAL::millis(); |
|
|
|
|
if (now_ms - last_flush_ms > flush_interval_ms) { |
|
|
|
|
update_flighttime(); |
|
|
|
|
update_runtime(); |
|
|
|
|
flush(); |
|
|
|
|
last_flush_ms = now_ms; |
|
|
|
|
} |
|
|
|
|