1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #pragma once
- #include <stdint.h>
- namespace AP {
- class PerfInfo {
- public:
- PerfInfo() {}
- /* Do not allow copies */
- PerfInfo(const PerfInfo &other) = delete;
- PerfInfo &operator=(const PerfInfo&) = delete;
- void reset();
- void ignore_this_loop();
- void check_loop_time(uint32_t time_in_micros);
- uint16_t get_num_loops() const;
- uint32_t get_max_time() const;
- uint32_t get_min_time() const;
- uint16_t get_num_long_running() const;
- uint32_t get_avg_time() const;
- uint32_t get_stddev_time() const;
- float get_filtered_time() const;
- void set_loop_rate(uint16_t rate_hz);
- void update_logging();
- private:
- uint16_t loop_rate_hz;
- uint16_t overtime_threshold_micros;
- uint16_t loop_count;
- uint32_t max_time; // in microseconds
- uint32_t min_time; // in microseconds
- uint64_t sigma_time;
- uint64_t sigmasquared_time;
- uint16_t long_running;
- uint32_t last_check_us;
- float filtered_loop_time;
- bool ignore_loop;
- };
- };
|