navigator: RTL don't get invalid params

This commit is contained in:
Daniel Agar
2021-02-12 16:29:26 -05:00
committed by Lorenz Meier
parent 1981519aad
commit ce552a3364
2 changed files with 11 additions and 10 deletions
+8 -8
View File
@@ -642,27 +642,27 @@ void RTL::get_rtl_xy_z_speed(float &xy, float &z)
switch (vehicle_type) { switch (vehicle_type) {
case vehicle_status_s::VEHICLE_TYPE_ROTARY_WING: case vehicle_status_s::VEHICLE_TYPE_ROTARY_WING:
_rtl_xy_speed = param_find("MPC_XY_CRUISE"); _param_rtl_xy_speed = param_find("MPC_XY_CRUISE");
_rtl_descent_speed = param_find("MPC_Z_VEL_MAX_DN"); _param_rtl_descent_speed = param_find("MPC_Z_VEL_MAX_DN");
break; break;
case vehicle_status_s::VEHICLE_TYPE_FIXED_WING: case vehicle_status_s::VEHICLE_TYPE_FIXED_WING:
_rtl_xy_speed = param_find("FW_AIRSPD_TRIM"); _param_rtl_xy_speed = param_find("FW_AIRSPD_TRIM");
_rtl_descent_speed = param_find("FW_T_SINK_MIN"); _param_rtl_descent_speed = param_find("FW_T_SINK_MIN");
break; break;
case vehicle_status_s::VEHICLE_TYPE_ROVER: case vehicle_status_s::VEHICLE_TYPE_ROVER:
_rtl_xy_speed = param_find("GND_SPEED_THR_SC"); _param_rtl_xy_speed = param_find("GND_SPEED_THR_SC");
_rtl_descent_speed = 65535; _param_rtl_descent_speed = PARAM_INVALID;
break; 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; 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; z = 1e6f;
} }
+3 -2
View File
@@ -165,8 +165,9 @@ private:
// These need to point at different parameters depending on vehicle type. // These need to point at different parameters depending on vehicle type.
// Can't hard-code them because we have non-MC/FW/Rover builds // Can't hard-code them because we have non-MC/FW/Rover builds
uint8_t _rtl_vehicle_type{vehicle_status_s::VEHICLE_TYPE_UNKNOWN}; 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_s> _wind_estimate_sub{ORB_ID(wind_estimate)}; uORB::SubscriptionData<wind_estimate_s> _wind_estimate_sub{ORB_ID(wind_estimate)};
uORB::Publication<rtl_flight_time_s> _rtl_flight_time_pub{ORB_ID(rtl_flight_time)}; uORB::Publication<rtl_flight_time_s> _rtl_flight_time_pub{ORB_ID(rtl_flight_time)};