Browse Source

AP_Soaring: fixed filter constructor calls

fixes valgrind error from copy of filter objects on the stack
c415-sdk
Andrew Tridgell 4 years ago
parent
commit
fbbb4a1183
  1. 3
      libraries/AP_Soaring/AP_Soaring.cpp
  2. 4
      libraries/AP_Soaring/AP_Soaring.h
  3. 3
      libraries/AP_Soaring/Variometer.cpp
  4. 5
      libraries/AP_Soaring/Variometer.h

3
libraries/AP_Soaring/AP_Soaring.cpp

@ -149,9 +149,6 @@ SoaringController::SoaringController(AP_SpdHgtControl &spdHgt, const AP_Vehicle: @@ -149,9 +149,6 @@ SoaringController::SoaringController(AP_SpdHgtControl &spdHgt, const AP_Vehicle:
_throttle_suppressed(true)
{
AP_Param::setup_object_defaults(this, var_info);
_position_x_filter = LowPassFilter<float>(1.0/60.0);
_position_y_filter = LowPassFilter<float>(1.0/60.0);
}
void SoaringController::get_target(Location &wp)

4
libraries/AP_Soaring/AP_Soaring.h

@ -56,8 +56,8 @@ class SoaringController { @@ -56,8 +56,8 @@ class SoaringController {
float _thermalability;
LowPassFilter<float> _position_x_filter;
LowPassFilter<float> _position_y_filter;
LowPassFilter<float> _position_x_filter{1/60.0};
LowPassFilter<float> _position_y_filter{1/60.0};
protected:
AP_Int8 soar_active;

3
libraries/AP_Soaring/Variometer.cpp

@ -9,9 +9,6 @@ Manages the estimation of aircraft total energy, drag and vertical air velocity. @@ -9,9 +9,6 @@ Manages the estimation of aircraft total energy, drag and vertical air velocity.
Variometer::Variometer(const AP_Vehicle::FixedWing &parms) :
_aparm(parms)
{
_climb_filter = LowPassFilter<float>(1.0/60.0);
_vdot_filter2 = LowPassFilter<float>(1.0f/60.0f);
}
void Variometer::update(const float thermal_bank, const float polar_K, const float polar_Cd0, const float polar_B)

5
libraries/AP_Soaring/Variometer.h

@ -32,9 +32,8 @@ class Variometer { @@ -32,9 +32,8 @@ class Variometer {
AverageFilterFloat_Size5 _sp_filter;
// low pass filter @ 30s time constant
LowPassFilter<float> _climb_filter;
LowPassFilter<float> _vdot_filter2;
LowPassFilter<float> _climb_filter{1/60.0};
LowPassFilter<float> _vdot_filter2{1/60.0};
public:
Variometer(const AP_Vehicle::FixedWing &parms);

Loading…
Cancel
Save