Browse Source

Plane: Support landing terminations on landing backends that support it

master
Michael du Breuil 8 years ago committed by Tom Pittenger
parent
commit
4fd13d5205
  1. 20
      ArduPlane/afs_plane.cpp

20
ArduPlane/afs_plane.cpp

@ -17,14 +17,18 @@ void AP_AdvancedFailsafe_Plane::terminate_vehicle(void)
{ {
plane.g2.servo_channels.disable_passthrough(true); plane.g2.servo_channels.disable_passthrough(true);
// and all aux channels if (_terminate_action == TERMINATE_ACTION_LAND) {
SRV_Channels::set_output_scaled(SRV_Channel::k_flap_auto, 100); plane.landing.terminate();
SRV_Channels::set_output_scaled(SRV_Channel::k_flap, 100); } else {
SRV_Channels::set_output_scaled(SRV_Channel::k_aileron, SERVO_MAX); // aerodynamic termination is the default approach to termination
SRV_Channels::set_output_scaled(SRV_Channel::k_rudder, SERVO_MAX); SRV_Channels::set_output_scaled(SRV_Channel::k_flap_auto, 100);
SRV_Channels::set_output_scaled(SRV_Channel::k_elevator, SERVO_MAX); SRV_Channels::set_output_scaled(SRV_Channel::k_flap, 100);
SRV_Channels::set_output_limit(SRV_Channel::k_manual, SRV_Channel::SRV_CHANNEL_LIMIT_TRIM); SRV_Channels::set_output_scaled(SRV_Channel::k_aileron, SERVO_MAX);
SRV_Channels::set_output_limit(SRV_Channel::k_none, SRV_Channel::SRV_CHANNEL_LIMIT_TRIM); SRV_Channels::set_output_scaled(SRV_Channel::k_rudder, SERVO_MAX);
SRV_Channels::set_output_scaled(SRV_Channel::k_elevator, SERVO_MAX);
SRV_Channels::set_output_limit(SRV_Channel::k_manual, SRV_Channel::SRV_CHANNEL_LIMIT_TRIM);
SRV_Channels::set_output_limit(SRV_Channel::k_none, SRV_Channel::SRV_CHANNEL_LIMIT_TRIM);
}
plane.servos_output(); plane.servos_output();

Loading…
Cancel
Save