From 33df8b24f231d9a22f6dd2af0d96d7211d60b832 Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Wed, 25 May 2022 16:25:49 +0200 Subject: [PATCH] Commander: differentiate clearly between to arm and to disarm transition --- src/modules/commander/Commander.cpp | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/modules/commander/Commander.cpp b/src/modules/commander/Commander.cpp index b09214558d..a486291249 100644 --- a/src/modules/commander/Commander.cpp +++ b/src/modules/commander/Commander.cpp @@ -2900,22 +2900,21 @@ Commander::run() } } - // check for arming state change + // check for arming state changes if (_was_armed != _arm_state_machine.isArmed()) { _status_changed = true; + } - if (_arm_state_machine.isArmed()) { - if (!_vehicle_land_detected.landed) { // check if takeoff already detected upon arming - _have_taken_off_since_arming = true; - } + if (!_was_armed && _arm_state_machine.isArmed() && !_vehicle_land_detected.landed) { + _have_taken_off_since_arming = true; + } - } else { // increase the flight uuid upon disarming - const int32_t flight_uuid = _param_flight_uuid.get() + 1; - _param_flight_uuid.set(flight_uuid); - _param_flight_uuid.commit_no_notification(); + if (_was_armed && !_arm_state_machine.isArmed()) { + const int32_t flight_uuid = _param_flight_uuid.get() + 1; + _param_flight_uuid.set(flight_uuid); + _param_flight_uuid.commit_no_notification(); - _last_disarmed_timestamp = hrt_absolute_time(); - } + _last_disarmed_timestamp = hrt_absolute_time(); } if (!_arm_state_machine.isArmed()) {