From ad3d0391abef7254336020ab760d6d4139f3eb3e Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Wed, 22 Feb 2017 23:48:38 +0100 Subject: [PATCH] Navigator: Only update params as they change --- src/modules/navigator/datalinkloss.cpp | 2 -- src/modules/navigator/enginefailure.cpp | 3 --- src/modules/navigator/follow_target.cpp | 2 -- src/modules/navigator/gpsfailure.cpp | 3 --- src/modules/navigator/mission.cpp | 3 --- src/modules/navigator/navigator_main.cpp | 6 +++++- src/modules/navigator/rcloss.cpp | 2 -- src/modules/navigator/rtl.cpp | 3 --- 8 files changed, 5 insertions(+), 19 deletions(-) diff --git a/src/modules/navigator/datalinkloss.cpp b/src/modules/navigator/datalinkloss.cpp index 6c910c9844..5457f6b1f8 100644 --- a/src/modules/navigator/datalinkloss.cpp +++ b/src/modules/navigator/datalinkloss.cpp @@ -93,7 +93,6 @@ void DataLinkLoss::on_activation() { _dll_state = DLL_STATE_NONE; - updateParams(); advance_dll(); set_dll_item(); } @@ -102,7 +101,6 @@ void DataLinkLoss::on_active() { if (is_mission_item_reached()) { - updateParams(); advance_dll(); set_dll_item(); } diff --git a/src/modules/navigator/enginefailure.cpp b/src/modules/navigator/enginefailure.cpp index cf48edb405..56fcbffdfc 100644 --- a/src/modules/navigator/enginefailure.cpp +++ b/src/modules/navigator/enginefailure.cpp @@ -96,9 +96,6 @@ EngineFailure::set_ef_item() { struct position_setpoint_triplet_s *pos_sp_triplet = _navigator->get_position_setpoint_triplet(); - /* make sure we have the latest params */ - updateParams(); - set_previous_pos_setpoint(); _navigator->set_can_loiter_at_sp(false); diff --git a/src/modules/navigator/follow_target.cpp b/src/modules/navigator/follow_target.cpp index 911d284515..5711303259 100644 --- a/src/modules/navigator/follow_target.cpp +++ b/src/modules/navigator/follow_target.cpp @@ -100,8 +100,6 @@ void FollowTarget::on_inactive() void FollowTarget::on_activation() { - updateParams(); - _follow_offset = _param_tracking_dist.get() < 1.0F ? 1.0F : _param_tracking_dist.get(); _responsiveness = math::constrain((float) _param_tracking_resp.get(), .1F, 1.0F); diff --git a/src/modules/navigator/gpsfailure.cpp b/src/modules/navigator/gpsfailure.cpp index 7ece880d1f..8d57319160 100644 --- a/src/modules/navigator/gpsfailure.cpp +++ b/src/modules/navigator/gpsfailure.cpp @@ -89,7 +89,6 @@ GpsFailure::on_activation() { _gpsf_state = GPSF_STATE_NONE; _timestamp_activation = hrt_absolute_time(); - updateParams(); advance_gpsf(); set_gpsf_item(); } @@ -160,8 +159,6 @@ GpsFailure::set_gpsf_item() void GpsFailure::advance_gpsf() { - updateParams(); - switch (_gpsf_state) { case GPSF_STATE_NONE: _gpsf_state = GPSF_STATE_LOITER; diff --git a/src/modules/navigator/mission.cpp b/src/modules/navigator/mission.cpp index 3667f4e6fb..15e5edb133 100644 --- a/src/modules/navigator/mission.cpp +++ b/src/modules/navigator/mission.cpp @@ -444,9 +444,6 @@ Mission::get_absolute_altitude_for_item(struct mission_item_s &mission_item) void Mission::set_mission_items() { - /* make sure param is up to date */ - updateParams(); - /* reset the altitude foh (first order hold) logic, if altitude foh is enabled (param) a new foh element starts now */ altitude_sp_foh_reset(); diff --git a/src/modules/navigator/navigator_main.cpp b/src/modules/navigator/navigator_main.cpp index ce40323c01..1af2299e5c 100644 --- a/src/modules/navigator/navigator_main.cpp +++ b/src/modules/navigator/navigator_main.cpp @@ -278,6 +278,11 @@ Navigator::params_update() { parameter_update_s param_update; orb_copy(ORB_ID(parameter_update), _param_update_sub, ¶m_update); + updateParams(); + + if (_navigation_mode) { + _navigation_mode->updateParams(); + } } void @@ -413,7 +418,6 @@ Navigator::task_main() if (updated) { params_update(); - updateParams(); } /* vehicle control mode updated */ diff --git a/src/modules/navigator/rcloss.cpp b/src/modules/navigator/rcloss.cpp index 89861d7b9f..409f9e329b 100644 --- a/src/modules/navigator/rcloss.cpp +++ b/src/modules/navigator/rcloss.cpp @@ -83,7 +83,6 @@ void RCLoss::on_activation() { _rcl_state = RCL_STATE_NONE; - updateParams(); advance_rcl(); set_rcl_item(); } @@ -92,7 +91,6 @@ void RCLoss::on_active() { if (is_mission_item_reached()) { - updateParams(); advance_rcl(); set_rcl_item(); } diff --git a/src/modules/navigator/rtl.cpp b/src/modules/navigator/rtl.cpp index e40063b844..e109fd4654 100644 --- a/src/modules/navigator/rtl.cpp +++ b/src/modules/navigator/rtl.cpp @@ -136,9 +136,6 @@ RTL::set_rtl_item() { struct position_setpoint_triplet_s *pos_sp_triplet = _navigator->get_position_setpoint_triplet(); - /* make sure we have the latest params */ - updateParams(); - if (!_rtl_start_lock) { set_previous_pos_setpoint(); }