1#ifndef RATE_LIMITED_LOOP_HPP
2#define RATE_LIMITED_LOOP_HPP
39 const std::function<
void(
double)> &rate_limited_func,
const std::function<
bool()> &termination_condition_func,
IterationStats get_average_loop_stats()
Definition fixed_frequency_loop.cpp:66
void start(const std::function< void(double)> &rate_limited_func, const std::function< bool()> &termination_condition_func, std::function< void(IterationStats)> loop_stats_function=[](IterationStats is) {})
a sleep based loop that runs a function at a fixed interval
Definition fixed_frequency_loop.cpp:15
double max_update_rate_hz
Definition fixed_frequency_loop.hpp:31
bool rate_limiter_enabled
Definition fixed_frequency_loop.hpp:47
Stopwatch stopwatch
Definition fixed_frequency_loop.hpp:50
FixedFrequencyLoop(double max_update_rate_hz=60)
Definition fixed_frequency_loop.hpp:32
std::deque< IterationStats > iteration_stats_history
Definition fixed_frequency_loop.hpp:42
Definition fixed_frequency_loop.hpp:9
double measured_period_delta_wrt_requested_period
Definition fixed_frequency_loop.hpp:15
double measured_period
Definition fixed_frequency_loop.hpp:12
double measured_frequency_hz
Definition fixed_frequency_loop.hpp:13
double sleeping_until
Definition fixed_frequency_loop.hpp:16
double time_at_start_of_iteration
Definition fixed_frequency_loop.hpp:11
double requested_period
Definition fixed_frequency_loop.hpp:14
friend std::ostream & operator<<(std::ostream &os, const IterationStats &stats)
Definition fixed_frequency_loop.hpp:18
A stopwatch which measures how frequently it's been pressed in seconds to be used to measure at what ...
Definition stopwatch.hpp:11