From e6c7cb62c0cdfb42289f74ea2c5ec4d1438ea573 Mon Sep 17 00:00:00 2001 From: Marco Hauswirth Date: Fri, 8 May 2026 13:55:26 +0200 Subject: [PATCH] fix(ekf2): move constant_pos gating to common_condition --- .../ekf2/EKF/aid_sources/magnetometer/mag_control.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/modules/ekf2/EKF/aid_sources/magnetometer/mag_control.cpp b/src/modules/ekf2/EKF/aid_sources/magnetometer/mag_control.cpp index a52cdff330..670f819ce8 100644 --- a/src/modules/ekf2/EKF/aid_sources/magnetometer/mag_control.cpp +++ b/src/modules/ekf2/EKF/aid_sources/magnetometer/mag_control.cpp @@ -186,17 +186,16 @@ void Ekf::controlMagFusion(const imuSample &imu_sample) && !_control_status.flags.mag_field_disturbed && !_control_status.flags.ev_yaw && !_control_status.flags.gnss_yaw - && (!_control_status.flags.yaw_manual || _control_status.flags.mag_aligned_in_flight); + && (!_control_status.flags.yaw_manual || _control_status.flags.mag_aligned_in_flight) + && !_control_status.flags.constant_pos; _control_status.flags.mag_3D = common_conditions_passing && (_params.ekf2_mag_type == static_cast(MagFuseType::AUTO)) - && _control_status.flags.mag_aligned_in_flight - && !_control_status.flags.constant_pos; + && _control_status.flags.mag_aligned_in_flight; _control_status.flags.mag_hdg = common_conditions_passing && ((_params.ekf2_mag_type == static_cast(MagFuseType::HEADING)) - || (_params.ekf2_mag_type == static_cast(MagFuseType::AUTO) && !_control_status.flags.mag_3D)) - && !_control_status.flags.constant_pos; + || (_params.ekf2_mag_type == static_cast(MagFuseType::AUTO) && !_control_status.flags.mag_3D)); } if (_control_status.flags.mag_3D && !_control_status_prev.flags.mag_3D) {