average value for last 24h

This commit is contained in:
2025-10-12 13:10:26 +02:00
parent 9974e2d738
commit 067dc84afa
4 changed files with 63 additions and 15 deletions

View File

@ -1,9 +1,10 @@
#pragma once
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define AVG10_SAMPLE_SIZE 10U
#define AVG60_SAMPLE_SIZE 60U
#define PRED60_SAMPLE_SIZE 60U
#define AVG10S_SAMPLE_SIZE 10U
#define AVG60S_SAMPLE_SIZE 60U
#define AVG24H_SAMPLE_SIZE 60U * 60U * 24U
#define PRED60S_SAMPLE_SIZE 60U
typedef enum _BurnerErrorState
{
@ -20,7 +21,7 @@ typedef enum _MeasurementErrorState
typedef struct _Average
{
float fValue;
float samples[MAX(AVG10_SAMPLE_SIZE, AVG60_SAMPLE_SIZE)];
float samples[MAX(AVG10S_SAMPLE_SIZE, AVG60S_SAMPLE_SIZE)];
size_t bufferIndex;
size_t bufferCount;
} sAverage;
@ -28,7 +29,7 @@ typedef struct _Average
typedef struct _Predict
{
float fValue;
float samples[PRED60_SAMPLE_SIZE];
float samples[PRED60S_SAMPLE_SIZE];
size_t bufferIndex;
size_t bufferCount;
} sPredict;
@ -38,6 +39,7 @@ typedef struct _Measurement
float fCurrentValue;
sAverage average10s;
sAverage average60s;
sAverage average24h;
sPredict predict60s;
eMeasurementErrorState state;
} sMeasurement;