mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
fw_pos_control_l1 reset internal takeoff and landing state when arming
This commit is contained in:
parent
e6f1a2db12
commit
ec3bc4ee5b
@ -297,12 +297,21 @@ FixedwingPositionControl::parameters_update()
|
||||
void
|
||||
FixedwingPositionControl::vehicle_control_mode_poll()
|
||||
{
|
||||
bool updated;
|
||||
bool updated = false;
|
||||
|
||||
orb_check(_control_mode_sub, &updated);
|
||||
|
||||
if (updated) {
|
||||
orb_copy(ORB_ID(vehicle_control_mode), _control_mode_sub, &_control_mode);
|
||||
const bool was_armed = _control_mode.flag_armed;
|
||||
|
||||
if (orb_copy(ORB_ID(vehicle_control_mode), _control_mode_sub, &_control_mode) == PX4_OK) {
|
||||
|
||||
// reset state when arming
|
||||
if (!was_armed && _control_mode.flag_armed) {
|
||||
reset_takeoff_state(true);
|
||||
reset_landing_state();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1870,10 +1879,10 @@ FixedwingPositionControl::run()
|
||||
}
|
||||
|
||||
void
|
||||
FixedwingPositionControl::reset_takeoff_state()
|
||||
FixedwingPositionControl::reset_takeoff_state(bool force)
|
||||
{
|
||||
// only reset takeoff if !armed or just landed
|
||||
if (!_control_mode.flag_armed || (_was_in_air && _vehicle_land_detected.landed)) {
|
||||
if (!_control_mode.flag_armed || (_was_in_air && _vehicle_land_detected.landed) || force) {
|
||||
|
||||
_runway_takeoff.reset();
|
||||
|
||||
|
||||
@ -447,7 +447,7 @@ private:
|
||||
*/
|
||||
void handle_command();
|
||||
|
||||
void reset_takeoff_state();
|
||||
void reset_takeoff_state(bool force = false);
|
||||
void reset_landing_state();
|
||||
|
||||
/*
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user