25#ifndef PROTOCORE_TELEMETRY_H
26#define PROTOCORE_TELEMETRY_H
31#if PC_ENABLE_TELEMETRY
54void pc_window_init(pc_window *w,
float *buf, uint16_t cap);
57void pc_window_push(pc_window *w,
float sample);
60uint16_t pc_window_count(
const pc_window *w);
63float pc_window_mean(
const pc_window *w);
66float pc_window_variance(
const pc_window *w);
69float pc_window_stddev(
const pc_window *w);
72float pc_window_min(
const pc_window *w);
75float pc_window_max(
const pc_window *w);
90void pc_rate_init(pc_rate *r);
100float pc_rate_update(pc_rate *r,
float value, uint32_t now_ms);
116void pc_totalizer_init(pc_totalizer *t);
125double pc_totalizer_add(pc_totalizer *t,
float rate, uint32_t now_ms);
128double pc_totalizer_total(
const pc_totalizer *t);
131void pc_totalizer_reset(pc_totalizer *t);
User-facing configuration for ProtoCore.