From 1962706a336bef112575354f2d3710a17896cf4e Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 14 Mar 2015 12:31:23 +1100 Subject: [PATCH] AP_Compass: fixed last_update, using last_update_usec() this broke use of compass in the EKF --- libraries/AP_Compass/AP_Compass_Backend.cpp | 1 + libraries/AP_Compass/AP_Compass_HMC5843.cpp | 2 -- libraries/AP_Compass/Compass.cpp | 2 +- libraries/AP_Compass/Compass.h | 6 ++++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libraries/AP_Compass/AP_Compass_Backend.cpp b/libraries/AP_Compass/AP_Compass_Backend.cpp index 761be17e06..7f2375e805 100644 --- a/libraries/AP_Compass/AP_Compass_Backend.cpp +++ b/libraries/AP_Compass/AP_Compass_Backend.cpp @@ -34,6 +34,7 @@ void AP_Compass_Backend::publish_field(const Vector3f &mag, uint8_t instance) apply_corrections(state.field, instance); state.last_update_ms = hal.scheduler->millis(); + _compass._last_update_usec = hal.scheduler->micros(); } /* diff --git a/libraries/AP_Compass/AP_Compass_HMC5843.cpp b/libraries/AP_Compass/AP_Compass_HMC5843.cpp index b17160c21d..41aa20cae0 100644 --- a/libraries/AP_Compass/AP_Compass_HMC5843.cpp +++ b/libraries/AP_Compass/AP_Compass_HMC5843.cpp @@ -389,8 +389,6 @@ void AP_Compass_HMC5843::read() _accum_count = 0; _mag_x_accum = _mag_y_accum = _mag_z_accum = 0; - _compass.last_update = hal.scheduler->micros(); // record time of update - // rotate to the desired orientation if (_product_id == AP_COMPASS_TYPE_HMC5883L) { field.rotate(ROTATION_YAW_90); diff --git a/libraries/AP_Compass/Compass.cpp b/libraries/AP_Compass/Compass.cpp index 2dbe052a62..7a2e7e057f 100644 --- a/libraries/AP_Compass/Compass.cpp +++ b/libraries/AP_Compass/Compass.cpp @@ -275,7 +275,7 @@ const AP_Param::GroupInfo Compass::var_info[] PROGMEM = { // their values. // Compass::Compass(void) : - last_update(0), + _last_update_usec(0), _null_init_done(false), _thr_or_curr(0.0f), _backend_count(0), diff --git a/libraries/AP_Compass/Compass.h b/libraries/AP_Compass/Compass.h index 210f4eb125..dc26ea2122 100644 --- a/libraries/AP_Compass/Compass.h +++ b/libraries/AP_Compass/Compass.h @@ -47,8 +47,6 @@ class Compass { friend class AP_Compass_Backend; public: - uint32_t last_update; //< micros() time of last update - /// Constructor /// Compass(); @@ -233,6 +231,8 @@ public: // enable HIL mode void set_hil_mode(void) { _hil_mode = true; } + // return last update time in microseconds + uint32_t last_update_usec(void) const { return _last_update_usec; } static const struct AP_Param::GroupInfo var_info[]; @@ -253,6 +253,8 @@ private: void _add_backend(AP_Compass_Backend *(detect)(Compass &)); void _detect_backends(void); + //< micros() time of last update + uint32_t _last_update_usec; // backend objects AP_Compass_Backend *_backends[COMPASS_MAX_BACKEND];