From 6672284871d4cd4163e99d68e75831d0495f58c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Tue, 12 Mar 2019 10:28:56 +0100 Subject: [PATCH] commander: fix status init & some status update changes --- src/modules/commander/Commander.cpp | 14 ++++++++------ src/modules/commander/Commander.hpp | 9 +++++---- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/modules/commander/Commander.cpp b/src/modules/commander/Commander.cpp index d25aa94aaf..054a8749be 100644 --- a/src/modules/commander/Commander.cpp +++ b/src/modules/commander/Commander.cpp @@ -3769,9 +3769,6 @@ Commander *Commander::instantiate(int argc, char *argv[]) { Commander *instance = new Commander(); - // XXX remove this once this is a class member - status = {}; - if (instance) { if (argc >= 2 && !strcmp(argv[1], "--hil")) { instance->enable_hil(); @@ -3885,7 +3882,10 @@ void Commander::data_link_check(bool &status_changed) if (telemetry.heartbeat_time > _datalink_last_heartbeat_gcs) { status.data_link_lost = false; status_changed = true; - mavlink_log_info(&mavlink_log_pub, "Data link regained"); + + if (_datalink_last_heartbeat_gcs != 0) { + mavlink_log_info(&mavlink_log_pub, "Data link regained"); + } } } @@ -3899,6 +3899,7 @@ void Commander::data_link_check(bool &status_changed) if (telemetry.heartbeat_time > _datalink_last_heartbeat_onboard_controller) { mavlink_log_info(&mavlink_log_pub, "Onboard controller regained"); _onboard_controller_lost = false; + status_changed = true; } } @@ -3915,9 +3916,9 @@ void Commander::data_link_check(bool &status_changed) if (_avoidance_system_lost) { mavlink_log_info(&mavlink_log_pub, "Avoidance system regained"); + status_changed = true; + _avoidance_system_lost = false; } - - _avoidance_system_lost = false; } break; @@ -3947,6 +3948,7 @@ void Commander::data_link_check(bool &status_changed) mavlink_log_critical(&mavlink_log_pub, "Onboard controller lost"); _onboard_controller_lost = true; + status_changed = true; } // AVOIDANCE SYSTEM state check (only if it is enabled) diff --git a/src/modules/commander/Commander.hpp b/src/modules/commander/Commander.hpp index 4741b755ca..82c3648385 100644 --- a/src/modules/commander/Commander.hpp +++ b/src/modules/commander/Commander.hpp @@ -167,10 +167,15 @@ private: void mission_init(); + void estimator_check(bool *status_changed); + + void battery_status_check(); + /** * Checks the status of all available data links and handles switching between different system telemetry states. */ void data_link_check(bool &status_changed); + int _telemetry_status_sub{-1}; hrt_abstime _datalink_last_heartbeat_gcs{0}; @@ -190,14 +195,10 @@ private: hrt_abstime _high_latency_datalink_heartbeat{0}; hrt_abstime _high_latency_datalink_lost{0}; - void estimator_check(bool *status_changed); - int _battery_sub{-1}; uint8_t _battery_warning{battery_status_s::BATTERY_WARNING_NONE}; float _battery_current{0.0f}; - void battery_status_check(); - systemlib::Hysteresis _auto_disarm_landed{false}; systemlib::Hysteresis _auto_disarm_killed{false};