From b79a26135c93d251d2c1841170788534f1bab454 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Sun, 22 Nov 2020 14:48:23 +1100 Subject: [PATCH] AP_NavEKF3: move posvel fusion health booleans to be on the stack --- .../AP_NavEKF3/AP_NavEKF3_PosVelFusion.cpp | 21 ++++++------------- libraries/AP_NavEKF3/AP_NavEKF3_core.h | 3 --- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/libraries/AP_NavEKF3/AP_NavEKF3_PosVelFusion.cpp b/libraries/AP_NavEKF3/AP_NavEKF3_PosVelFusion.cpp index 8c62eaa3b4..3b3259e82a 100644 --- a/libraries/AP_NavEKF3/AP_NavEKF3_PosVelFusion.cpp +++ b/libraries/AP_NavEKF3/AP_NavEKF3_PosVelFusion.cpp @@ -35,26 +35,21 @@ void NavEKF3_core::ResetVelocity(resetDataSource velResetSource) stateStruct.velocity.y = gps_corrected.vel.y; // set the variances using the reported GPS speed accuracy P[5][5] = P[4][4] = sq(MAX(frontend->_gpsHorizVelNoise,gpsSpdAccuracy)); - // clear the timeout flags and counters - velTimeout = false; - lastVelPassTime_ms = imuSampleTime_ms; } else if ((imuSampleTime_ms - extNavVelMeasTime_ms < 250 && velResetSource == resetDataSource::DEFAULT) || velResetSource == resetDataSource::EXTNAV) { // use external nav data as the 2nd preference // already corrected for sensor position stateStruct.velocity.x = extNavVelDelayed.vel.x; stateStruct.velocity.y = extNavVelDelayed.vel.y; P[5][5] = P[4][4] = sq(extNavVelDelayed.err); - velTimeout = false; - lastVelPassTime_ms = imuSampleTime_ms; } else { stateStruct.velocity.x = 0.0f; stateStruct.velocity.y = 0.0f; // set the variances using the likely speed range P[5][5] = P[4][4] = sq(25.0f); - // clear the timeout flags and counters - velTimeout = false; - lastVelPassTime_ms = imuSampleTime_ms; } + // clear the timeout flags and counters + velTimeout = false; + lastVelPassTime_ms = imuSampleTime_ms; } for (uint8_t i=0; i