self->cycle_time = 0;
}
-void ff_timefilter_update(TimeFilter *self, double system_time, double period)
+double ff_timefilter_update(TimeFilter *self, double system_time, double period)
{
if (!self->cycle_time) {
/// init loop
self->cycle_time += self->feedback2_factor * loop_error;
self->integrator2_state += self->feedback3_factor * loop_error / period;
}
-}
-
-double ff_timefilter_read(TimeFilter *self)
-{
return self->cycle_time;
}
* at (or as close as possible to) the moment the device hardware interrupt
* occured (or any other event the device clock raises at the beginning of a
* cycle).
- */
-void ff_timefilter_update(TimeFilter *self, double system_time, double period);
-
-/**
- * Retrieve the filtered time
- *
- * The returned value represents the filtered time, in seconds, of the
- * beginning of the current cycle as updated by the last call to
- * ff_timefilter_update()
- *
- * This is the value that should be used for timestamping.
*
- * Warning: you must call ff_timefilter_update() before this, otherwise the
- * result is undetermined.
+ * @return the filtered time, in seconds
*/
-double ff_timefilter_read(TimeFilter *);
+double ff_timefilter_update(TimeFilter *self, double system_time, double period);
/**
* Reset the filter