ekf2: stopMagFusion() reset yaw_align if mag heading was active

- we also need to clear mag_aligned_in_flight
This commit is contained in:
Daniel Agar
2024-06-04 10:29:18 -04:00
parent bfe3c86aeb
commit fb659ae200
@@ -275,6 +275,15 @@ void Ekf::stopMagFusion()
if (_control_status.flags.mag) {
ECL_INFO("stopping mag fusion");
if (_control_status.flags.yaw_align && (_control_status.flags.mag_3D || _control_status.flags.mag_hdg)) {
// reset yaw alignment from mag unless using GNSS aiding
const bool using_ne_aiding = _control_status.flags.gps || _control_status.flags.aux_gpos;
if (!using_ne_aiding) {
_control_status.flags.yaw_align = false;
}
}
_control_status.flags.mag = false;
_control_status.flags.mag_dec = false;
@@ -289,6 +298,8 @@ void Ekf::stopMagFusion()
_fault_status.flags.bad_hdg = false;
}
_control_status.flags.mag_aligned_in_flight = false;
_fault_status.flags.bad_mag_x = false;
_fault_status.flags.bad_mag_y = false;
_fault_status.flags.bad_mag_z = false;