From 6900f97b72abb7816b2e0fec022bf039c0d9eea4 Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 26 Feb 2018 21:58:01 +0100 Subject: [PATCH] vtol_att_control: use airspeed_disabled flag instead of airspeed mode Signed-off-by: Roman --- src/modules/vtol_att_control/standard.cpp | 4 ++-- src/modules/vtol_att_control/vtol_att_control_main.cpp | 3 ++- src/modules/vtol_att_control/vtol_type.h | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/modules/vtol_att_control/standard.cpp b/src/modules/vtol_att_control/standard.cpp index 1433e807e5..d5999fadb7 100644 --- a/src/modules/vtol_att_control/standard.cpp +++ b/src/modules/vtol_att_control/standard.cpp @@ -190,7 +190,7 @@ void Standard::update_vtol_state() } else if (_vtol_schedule.flight_mode == TRANSITION_TO_FW) { // continue the transition to fw mode while monitoring airspeed for a final switch to fw mode - if (((_params->airspeed_mode == 1 || + if (((_params->airspeed_disabled || _airspeed->indicated_airspeed_m_s >= _params->transition_airspeed) && time_since_trans_start > _params->front_trans_time_min * 1e6f) || can_transition_on_ground()) { @@ -260,7 +260,7 @@ void Standard::update_transition_state() _airspeed_trans_blend_margin; // time based blending when no airspeed sensor is set - } else if (_params->airspeed_mode == 1 && + } else if (_params->airspeed_disabled && time_since_trans_start < _params->front_trans_time_min * 1e6f && time_since_trans_start > _params->front_trans_time_min * 1e6f / 2.0f) { mc_weight = 1.0f - ((time_since_trans_start - _params->front_trans_time_min * 1e6f / 2.0f) / diff --git a/src/modules/vtol_att_control/vtol_att_control_main.cpp b/src/modules/vtol_att_control/vtol_att_control_main.cpp index c77b28ec8d..8c540c7f49 100644 --- a/src/modules/vtol_att_control/vtol_att_control_main.cpp +++ b/src/modules/vtol_att_control/vtol_att_control_main.cpp @@ -505,7 +505,8 @@ VtolAttitudeControl::parameters_update() param_get(_params_handles.front_trans_throttle, &_params.front_trans_throttle); param_get(_params_handles.back_trans_throttle, &_params.back_trans_throttle); param_get(_params_handles.airspeed_blend, &_params.airspeed_blend); - param_get(_params_handles.airspeed_mode, &_params.airspeed_mode); + param_get(_params_handles.airspeed_mode, &l); + _params.airspeed_disabled = l != 0; param_get(_params_handles.front_trans_timeout, &_params.front_trans_timeout); param_get(_params_handles.mpc_xy_cruise, &_params.mpc_xy_cruise); diff --git a/src/modules/vtol_att_control/vtol_type.h b/src/modules/vtol_att_control/vtol_type.h index a2d0a45a37..04b2f3aa77 100644 --- a/src/modules/vtol_att_control/vtol_type.h +++ b/src/modules/vtol_att_control/vtol_type.h @@ -67,7 +67,7 @@ struct Params { float front_trans_throttle; float back_trans_throttle; float airspeed_blend; - int32_t airspeed_mode; + bool airspeed_disabled; float front_trans_timeout; float mpc_xy_cruise; };