From 248773a7c82b36bc3f043c106bfc39e0264c6e97 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 15 Apr 2017 20:36:39 +1000 Subject: [PATCH] AP_NavEKF3: allow access to quaternion for each instance --- libraries/AP_NavEKF3/AP_NavEKF3.cpp | 5 +++-- libraries/AP_NavEKF3/AP_NavEKF3.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libraries/AP_NavEKF3/AP_NavEKF3.cpp b/libraries/AP_NavEKF3/AP_NavEKF3.cpp index 69af0a4b91..124c7d20ef 100644 --- a/libraries/AP_NavEKF3/AP_NavEKF3.cpp +++ b/libraries/AP_NavEKF3/AP_NavEKF3.cpp @@ -1037,10 +1037,11 @@ void NavEKF3::getRotationBodyToNED(Matrix3f &mat) const } // return the quaternions defining the rotation from NED to XYZ (body) axes -void NavEKF3::getQuaternion(Quaternion &quat) const +void NavEKF3::getQuaternion(int8_t instance, Quaternion &quat) const { + if (instance < 0 || instance >= num_cores) instance = primary; if (core) { - core[primary].getQuaternion(quat); + core[instance].getQuaternion(quat); } } diff --git a/libraries/AP_NavEKF3/AP_NavEKF3.h b/libraries/AP_NavEKF3/AP_NavEKF3.h index d30bcffdbd..a93b9d55b5 100644 --- a/libraries/AP_NavEKF3/AP_NavEKF3.h +++ b/libraries/AP_NavEKF3/AP_NavEKF3.h @@ -170,7 +170,7 @@ public: void getRotationBodyToNED(Matrix3f &mat) const; // return the quaternions defining the rotation from NED to XYZ (body) axes - void getQuaternion(Quaternion &quat) const; + void getQuaternion(int8_t instance, Quaternion &quat) const; // return the innovations for the specified instance // An out of range instance (eg -1) returns data for the the primary instance