Browse Source

temperature_compensation: make sure to reset temperature when params change

Makes sure that the offsets & scales are updated and published later on.
sbg
Beat Küng 8 years ago committed by Lorenz Meier
parent
commit
75be1abc4c
  1. 7
      src/modules/sensors/temperature_compensation.cpp
  2. 4
      src/modules/sensors/temperature_compensation.h

7
src/modules/sensors/temperature_compensation.cpp

@ -239,6 +239,13 @@ int TemperatureCompensation::parameters_update() @@ -239,6 +239,13 @@ int TemperatureCompensation::parameters_update()
}
}
/* the offsets & scales might have changed, so make sure to report that change later when applying the
* next corrections
*/
_gyro_data.reset_temperature();
_accel_data.reset_temperature();
_baro_data.reset_temperature();
return ret;
}

4
src/modules/sensors/temperature_compensation.h

@ -254,6 +254,10 @@ private: @@ -254,6 +254,10 @@ private:
{
for (int i = 0; i < SENSOR_COUNT_MAX; ++i) { device_mapping[i] = 255; last_temperature[i] = -100.0f; }
}
void reset_temperature()
{
for (int i = 0; i < SENSOR_COUNT_MAX; ++i) { last_temperature[i] = -100.0f; }
}
uint8_t device_mapping[SENSOR_COUNT_MAX]; /// map a topic instance to the parameters index
float last_temperature[SENSOR_COUNT_MAX];
};

Loading…
Cancel
Save