diff --git a/EKF/ekf.cpp b/EKF/ekf.cpp index d2fcd3b940..9826627baa 100644 --- a/EKF/ekf.cpp +++ b/EKF/ekf.cpp @@ -42,6 +42,21 @@ #include "ekf.h" #include "mathlib.h" +#ifndef __PX4_QURT +#if defined(__cplusplus) && !defined(__PX4_NUTTX) +#include +#define ISFINITE(x) std::isfinite(x) +#else +#define ISFINITE(x) isfinite(x) +#endif +#endif + +#if defined(__PX4_QURT) +// Missing math.h defines +#define ISFINITE(x) __builtin_isfinite(x) +#endif + + Ekf::Ekf(): _filter_initialised(false), _earth_rate_initialised(false), @@ -343,7 +358,7 @@ bool Ekf::update() calculateOutputStates(); // check for NaN or inf on attitude states - if (!std::isfinite(_state.quat_nominal(0)) || !std::isfinite(_output_new.quat_nominal(0))) { + if (!ISFINITE(_state.quat_nominal(0)) || !ISFINITE(_output_new.quat_nominal(0))) { return false; }