From ce552a33647daf83a21c2fd7313df7b3589e84b5 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Fri, 12 Feb 2021 16:29:26 -0500 Subject: [PATCH] navigator: RTL don't get invalid params --- src/modules/navigator/rtl.cpp | 16 ++++++++-------- src/modules/navigator/rtl.h | 5 +++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/modules/navigator/rtl.cpp b/src/modules/navigator/rtl.cpp index 0ebddbe77e..62b339a627 100644 --- a/src/modules/navigator/rtl.cpp +++ b/src/modules/navigator/rtl.cpp @@ -642,27 +642,27 @@ void RTL::get_rtl_xy_z_speed(float &xy, float &z) switch (vehicle_type) { case vehicle_status_s::VEHICLE_TYPE_ROTARY_WING: - _rtl_xy_speed = param_find("MPC_XY_CRUISE"); - _rtl_descent_speed = param_find("MPC_Z_VEL_MAX_DN"); + _param_rtl_xy_speed = param_find("MPC_XY_CRUISE"); + _param_rtl_descent_speed = param_find("MPC_Z_VEL_MAX_DN"); break; case vehicle_status_s::VEHICLE_TYPE_FIXED_WING: - _rtl_xy_speed = param_find("FW_AIRSPD_TRIM"); - _rtl_descent_speed = param_find("FW_T_SINK_MIN"); + _param_rtl_xy_speed = param_find("FW_AIRSPD_TRIM"); + _param_rtl_descent_speed = param_find("FW_T_SINK_MIN"); break; case vehicle_status_s::VEHICLE_TYPE_ROVER: - _rtl_xy_speed = param_find("GND_SPEED_THR_SC"); - _rtl_descent_speed = 65535; + _param_rtl_xy_speed = param_find("GND_SPEED_THR_SC"); + _param_rtl_descent_speed = PARAM_INVALID; break; } } - if (param_get(_rtl_xy_speed, &xy) != 0) { + if ((_param_rtl_xy_speed == PARAM_INVALID) || param_get(_param_rtl_xy_speed, &xy) != PX4_OK) { xy = 1e6f; } - if (param_get(_rtl_descent_speed, &z) != 0) { + if ((_param_rtl_descent_speed == PARAM_INVALID) || param_get(_param_rtl_descent_speed, &z) != PX4_OK) { z = 1e6f; } diff --git a/src/modules/navigator/rtl.h b/src/modules/navigator/rtl.h index 57cd49b2da..6b5cd4118d 100644 --- a/src/modules/navigator/rtl.h +++ b/src/modules/navigator/rtl.h @@ -165,8 +165,9 @@ private: // These need to point at different parameters depending on vehicle type. // Can't hard-code them because we have non-MC/FW/Rover builds uint8_t _rtl_vehicle_type{vehicle_status_s::VEHICLE_TYPE_UNKNOWN}; - param_t _rtl_xy_speed{PARAM_INVALID}; - param_t _rtl_descent_speed{PARAM_INVALID}; + + param_t _param_rtl_xy_speed{PARAM_INVALID}; + param_t _param_rtl_descent_speed{PARAM_INVALID}; uORB::SubscriptionData _wind_estimate_sub{ORB_ID(wind_estimate)}; uORB::Publication _rtl_flight_time_pub{ORB_ID(rtl_flight_time)};