FlightTask: if not in air, reActivate the task which will set the setpoints to current

vehicle state.
This commit is contained in:
Dennis Mannhart
2018-09-12 10:24:53 +02:00
committed by Daniel Agar
parent 1f0d559d65
commit c3ba2687ac
3 changed files with 15 additions and 0 deletions
+8
View File
@@ -130,6 +130,14 @@ const char *FlightTasks::errorToString(const int error)
return "This error is not mapped to a string or is unknown.";
}
void FlightTasks::reActivate()
{
if (_current_task.task) {
_current_task.task->activate();
}
}
void FlightTasks::_updateCommand()
{
// lazy subscription to command topic
+5
View File
@@ -131,6 +131,11 @@ public:
*/
void setYawHandler(WeatherVane *ext_yaw_handler) {_current_task.task->setYawHandler(ext_yaw_handler);}
/**
* This method will re-activate current task.
*/
void reActivate();
private:
/**
@@ -692,6 +692,8 @@ MulticopterPositionControl::run()
setpoint.yawspeed = NAN;
setpoint.yaw = _states.yaw;
constraints.landing_gear = vehicle_constraints_s::GEAR_KEEP;
// reactivate the task which will reset the setpoint to current state
_flight_tasks.reActivate();
}
// limit altitude only if local position is valid