Do not run transition flight task when not enable altitude control

This commit is contained in:
xdwgood 2020-10-30 09:04:23 +08:00 committed by Lorenz Meier
parent bf330a51b2
commit 802c68a62e
3 changed files with 2 additions and 7 deletions

View File

@ -44,8 +44,6 @@ bool FlightTaskTransition::updateInitialize()
bool FlightTaskTransition::activate(const vehicle_local_position_setpoint_s &last_setpoint)
{
_transition_altitude = PX4_ISFINITE(last_setpoint.z) ? last_setpoint.z : _position(2);
_transition_yaw = PX4_ISFINITE(last_setpoint.yaw) ? last_setpoint.yaw : _yaw;
return FlightTask::activate(last_setpoint);
}

View File

@ -50,8 +50,4 @@ public:
bool activate(const vehicle_local_position_setpoint_s &last_setpoint) override;
bool updateInitialize() override;
bool update() override;
private:
float _transition_altitude = 0.0f;
float _transition_yaw = 0.0f;
};

View File

@ -171,7 +171,8 @@ void FlightModeManager::start_flight_task()
_flight_tasks.switchTask(FlightTaskIndex::None);
}
if (_vehicle_status_sub.get().in_transition_mode) {
// Only run transition flight task if altitude control is enabled (e.g. in Altitdue, Position, Auto flight mode)
if (_vehicle_status_sub.get().in_transition_mode && _vehicle_control_mode_sub.get().flag_control_altitude_enabled) {
should_disable_task = false;
FlightTaskError error = _flight_tasks.switchTask(FlightTaskIndex::Transition);