From 4b0d8efbc1921f52be31676d7459901935c602c8 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Tue, 24 Nov 2020 23:57:56 +0100 Subject: [PATCH] Commander: move static overload_start to class --- src/modules/commander/Commander.cpp | 12 +++++------- src/modules/commander/Commander.hpp | 1 + 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/modules/commander/Commander.cpp b/src/modules/commander/Commander.cpp index 58d64c63d8..ae6bdb8523 100644 --- a/src/modules/commander/Commander.cpp +++ b/src/modules/commander/Commander.cpp @@ -2764,18 +2764,16 @@ Commander::get_circuit_breaker_params() void Commander::control_status_leds(bool changed, const uint8_t battery_warning) { - static hrt_abstime overload_start = 0; - bool overload = (_cpuload.load > 0.95f) || (_cpuload.ram_usage > 0.98f); - if (overload_start == 0 && overload) { - overload_start = hrt_absolute_time(); + if (_overload_start == 0 && overload) { + _overload_start = hrt_absolute_time(); } else if (!overload) { - overload_start = 0; + _overload_start = 0; } - /* driving rgbled */ + // driving the RGB led if (changed || _last_overload != overload) { uint8_t led_mode = led_control_s::MODE_OFF; uint8_t led_color = led_control_s::COLOR_WHITE; @@ -2784,7 +2782,7 @@ Commander::control_status_leds(bool changed, const uint8_t battery_warning) uint64_t overload_warn_delay = (_status.arming_state == vehicle_status_s::ARMING_STATE_ARMED) ? 1_ms : 250_ms; /* set mode */ - if (overload && (hrt_elapsed_time(&overload_start) > overload_warn_delay)) { + if (overload && (hrt_elapsed_time(&_overload_start) > overload_warn_delay)) { led_mode = led_control_s::MODE_BLINK_FAST; led_color = led_control_s::COLOR_PURPLE; diff --git a/src/modules/commander/Commander.hpp b/src/modules/commander/Commander.hpp index a36cf5cfd9..58861d2ac3 100644 --- a/src/modules/commander/Commander.hpp +++ b/src/modules/commander/Commander.hpp @@ -366,6 +366,7 @@ private: hrt_abstime _boot_timestamp{0}; hrt_abstime _last_disarmed_timestamp{0}; hrt_abstime _timestamp_engine_healthy{0}; ///< absolute time when engine was healty + hrt_abstime _overload_start{0}; ///< time when CPU overload started uint32_t _counter{0}; uint8_t _heading_reset_counter{0};