Navigator: Add support to read cruising speed off a mission item

This commit is contained in:
Lorenz Meier
2016-03-13 18:07:47 +01:00
parent cc5afdd6b5
commit 2549505e7b
3 changed files with 43 additions and 1 deletions
+17 -1
View File
@@ -151,7 +151,10 @@ Navigator::Navigator() :
_param_loiter_radius(this, "LOITER_RAD"),
_param_acceptance_radius(this, "ACC_RAD"),
_param_datalinkloss_obc(this, "DLL_OBC"),
_param_rcloss_obc(this, "RCL_OBC")
_param_rcloss_obc(this, "RCL_OBC"),
_param_cruising_speed_hover(this, "MPC_XY_VEL_MAX", false),
_param_cruising_speed_plane(this, "FW_AIRSPD_TRIM", false),
_mission_cruising_speed(0.0f)
{
/* Create a list of our possible navigation types */
_navigation_mode_array[0] = &_mission;
@@ -615,6 +618,19 @@ Navigator::get_acceptance_radius()
return get_acceptance_radius(_param_acceptance_radius.get());
}
float
Navigator::get_cruising_speed()
{
/* there are three options: The mission-requested cruise speed, or the current hover / plane speed */
if (_mission_cruising_speed > 0.001f) {
return _mission_cruising_speed;
} else if (_vstatus.is_rotary_wing) {
return _param_cruising_speed_hover.get();
} else {
return _param_cruising_speed_plane.get();
}
}
float
Navigator::get_acceptance_radius(float mission_item_radius)
{