From 7b51c907f5d5d7cd3dabc04172674ecbb2b6755d Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 13 Mar 2015 19:16:50 +1100 Subject: [PATCH] AP_Compass: zero some more variables in constructor and init --- libraries/AP_Compass/AP_Compass_AK8963.cpp | 6 +++++- libraries/AP_Compass/AP_Compass_HIL.cpp | 3 ++- libraries/AP_Compass/AP_Compass_HMC5843.cpp | 9 +++++++++ libraries/AP_Compass/AP_Compass_PX4.cpp | 8 +++++--- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/libraries/AP_Compass/AP_Compass_AK8963.cpp b/libraries/AP_Compass/AP_Compass_AK8963.cpp index 83c045e5fb..33a2d3be31 100644 --- a/libraries/AP_Compass/AP_Compass_AK8963.cpp +++ b/libraries/AP_Compass/AP_Compass_AK8963.cpp @@ -286,7 +286,11 @@ bool AP_Compass_AK8963_MPU9250::read_raw() AP_Compass_AK8963::AP_Compass_AK8963(Compass &compass) : AP_Compass_Backend(compass), - _backend(NULL) + _backend(NULL), + _initialised(false), + _state(CONVERSION), + _last_update_timestamp(0), + _last_accum_time(0) { _initialised = false; _mag_x_accum =_mag_y_accum = _mag_z_accum = 0; diff --git a/libraries/AP_Compass/AP_Compass_HIL.cpp b/libraries/AP_Compass/AP_Compass_HIL.cpp index 61b731eb3f..05e06119c2 100644 --- a/libraries/AP_Compass/AP_Compass_HIL.cpp +++ b/libraries/AP_Compass/AP_Compass_HIL.cpp @@ -27,7 +27,8 @@ extern const AP_HAL::HAL& hal; // constructor AP_Compass_HIL::AP_Compass_HIL(Compass &compass): - AP_Compass_Backend(compass) + AP_Compass_Backend(compass), + _compass_instance(0) { _compass._setup_earth_field(); } diff --git a/libraries/AP_Compass/AP_Compass_HMC5843.cpp b/libraries/AP_Compass/AP_Compass_HMC5843.cpp index 82b4c69acb..b17160c21d 100644 --- a/libraries/AP_Compass/AP_Compass_HMC5843.cpp +++ b/libraries/AP_Compass/AP_Compass_HMC5843.cpp @@ -60,7 +60,16 @@ extern const AP_HAL::HAL& hal; // constructor AP_Compass_HMC5843::AP_Compass_HMC5843(Compass &compass): AP_Compass_Backend(compass), + _i2c_sem(NULL), + _mag_x(0), + _mag_y(0), + _mag_z(0), + _mag_x_accum(0), + _mag_y_accum(0), + _mag_z_accum(0), _accum_count(0), + _last_accum_time(0), + _compass_instance(0), _retry_time(0), _product_id(0) {} diff --git a/libraries/AP_Compass/AP_Compass_PX4.cpp b/libraries/AP_Compass/AP_Compass_PX4.cpp index 8b7812c3b1..f491913bc4 100644 --- a/libraries/AP_Compass/AP_Compass_PX4.cpp +++ b/libraries/AP_Compass/AP_Compass_PX4.cpp @@ -43,8 +43,10 @@ extern const AP_HAL::HAL& hal; // constructor AP_Compass_PX4::AP_Compass_PX4(Compass &compass): - AP_Compass_Backend(compass) -{} + AP_Compass_Backend(compass), + _num_sensors(0) +{ +} // detect the sensor AP_Compass_Backend *AP_Compass_PX4::detect(Compass &compass) @@ -91,7 +93,7 @@ bool AP_Compass_PX4::init(void) // remember if the compass is external set_external(_instance[i], ioctl(_mag_fd[i], MAGIOCGEXTERNAL, 0) > 0); - _count[0] = 0; + _count[i] = 0; _sum[i].zero(); }