46 #include <matrix/math.hpp> 51 Integrator(uint32_t auto_reset_interval = 4000 ,
bool coning_compensation =
false);
70 bool put(
const uint64_t ×tamp,
const matrix::Vector3f &val, matrix::Vector3f &integral, uint32_t &integral_dt);
84 bool put_with_interval(
unsigned interval_us, matrix::Vector3f &val, matrix::Vector3f &integral, uint32_t &integral_dt);
93 matrix::Vector3f
get(
bool reset, uint32_t &integral_dt);
105 matrix::Vector3f
get_and_filtered(
bool reset, uint32_t &integral_dt, matrix::Vector3f &filtered_val);
116 uint32_t _auto_reset_interval{0};
119 uint64_t _last_integration_time{0};
120 uint64_t _last_reset_time{0};
122 matrix::Vector3f _alpha{0.0f, 0.0f, 0.0f};
123 matrix::Vector3f _last_alpha{0.0f, 0.0f, 0.0f};
124 matrix::Vector3f _beta{0.0f, 0.0f, 0.0f};
125 matrix::Vector3f _last_val{0.0f, 0.0f, 0.0f};
126 matrix::Vector3f _last_delta_alpha{0.0f, 0.0f, 0.0f};
128 bool _coning_comp_on{
false};
134 void _reset(uint32_t &integral_dt);
bool put_with_interval(unsigned interval_us, matrix::Vector3f &val, matrix::Vector3f &integral, uint32_t &integral_dt)
Put an item into the integral but provide an interval instead of a timestamp.
Definition: integrator.cpp:118
void set_autoreset_interval(uint32_t auto_reset_interval)
Set auto reset interval during runtime.
Definition: integrator.h:113
Definition: integrator.h:48
void reset(enum BMP280_BUS busid)
Reset the driver.
Definition: bmp280.cpp:743
bool put(const uint64_t ×tamp, const matrix::Vector3f &val, matrix::Vector3f &integral, uint32_t &integral_dt)
Put an item into the integral.
Definition: integrator.cpp:54
Common header for mathlib exports.
matrix::Vector3f get_and_filtered(bool reset, uint32_t &integral_dt, matrix::Vector3f &filtered_val)
Get the current integral and reset the integrator if needed.
Definition: integrator.cpp:150