From 86673ecfcb4c1af3c63bd5d46d0e395ac2c4ee7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Tue, 23 Oct 2018 12:02:56 +0200 Subject: [PATCH] navigator: remove dependency on vtol module by using the C param API This is the quickest way to achieve the desired result. Long-term we might do something else. --- src/modules/navigator/navigator.h | 15 ++++++++------- src/modules/navigator/navigator_main.cpp | 11 +++++++++++ 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/modules/navigator/navigator.h b/src/modules/navigator/navigator.h index 0e0c655ebe..54d35dff82 100644 --- a/src/modules/navigator/navigator.h +++ b/src/modules/navigator/navigator.h @@ -283,8 +283,8 @@ public: float get_yaw_timeout() const { return _param_yaw_timeout.get(); } float get_yaw_threshold() const { return _param_yaw_err.get(); } - float get_vtol_back_trans_deceleration() const { return _param_back_trans_dec_mss.get(); } - float get_vtol_reverse_delay() const { return _param_reverse_delay.get(); } + float get_vtol_back_trans_deceleration() const { return _param_back_trans_dec_mss; } + float get_vtol_reverse_delay() const { return _param_reverse_delay; } bool force_vtol(); @@ -371,13 +371,14 @@ private: (ParamFloat) _param_loiter_min_alt, (ParamFloat) _param_takeoff_min_alt, (ParamFloat) _param_yaw_timeout, - (ParamFloat) _param_yaw_err, - - // VTOL parameters TODO: get these out of navigator - (ParamFloat) _param_back_trans_dec_mss, - (ParamFloat) _param_reverse_delay + (ParamFloat) _param_yaw_err ) + param_t _handle_back_trans_dec_mss{PARAM_INVALID}; + param_t _handle_reverse_delay{PARAM_INVALID}; + float _param_back_trans_dec_mss{0.f}; + float _param_reverse_delay{0.f}; + float _mission_cruising_speed_mc{-1.0f}; float _mission_cruising_speed_fw{-1.0f}; float _mission_throttle{-1.0f}; diff --git a/src/modules/navigator/navigator_main.cpp b/src/modules/navigator/navigator_main.cpp index d07ee83881..7ec01e286a 100644 --- a/src/modules/navigator/navigator_main.cpp +++ b/src/modules/navigator/navigator_main.cpp @@ -110,6 +110,9 @@ Navigator::Navigator() : _navigation_mode_array[8] = &_land; _navigation_mode_array[9] = &_precland; _navigation_mode_array[10] = &_follow_target; + + _handle_back_trans_dec_mss = param_find("VT_B_DEC_MSS"); + _handle_reverse_delay = param_find("VT_B_REV_DEL"); } void @@ -162,6 +165,14 @@ Navigator::params_update() parameter_update_s param_update; orb_copy(ORB_ID(parameter_update), _param_update_sub, ¶m_update); updateParams(); + + if (_handle_back_trans_dec_mss != PARAM_INVALID) { + param_get(_handle_back_trans_dec_mss, &_param_back_trans_dec_mss); + } + + if (_handle_reverse_delay != PARAM_INVALID) { + param_get(_handle_reverse_delay, &_param_reverse_delay); + } } void