50 lines
1.0 KiB
C
50 lines
1.0 KiB
C
#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
|
|
|
|
typedef enum _BurnerErrorState
|
|
{
|
|
NO_ERROR,
|
|
FAULT
|
|
} eBurnerErrorState;
|
|
|
|
typedef enum _MeasurementErrorState
|
|
{
|
|
MEASUREMENT_NO_ERROR,
|
|
MEASUREMENT_FAULT
|
|
} eMeasurementErrorState;
|
|
|
|
typedef struct _Average
|
|
{
|
|
float fValue;
|
|
float samples[MAX(AVG10_SAMPLE_SIZE, AVG60_SAMPLE_SIZE)];
|
|
size_t bufferIndex;
|
|
size_t bufferCount;
|
|
} sAverage;
|
|
|
|
typedef struct _Predict
|
|
{
|
|
float fValue;
|
|
float samples[PRED60_SAMPLE_SIZE];
|
|
size_t bufferIndex;
|
|
size_t bufferCount;
|
|
} sPredict;
|
|
|
|
typedef struct _Measurement
|
|
{
|
|
float fCurrentValue;
|
|
sAverage average10s;
|
|
sAverage average60s;
|
|
sPredict predict60s;
|
|
eMeasurementErrorState state;
|
|
} sMeasurement;
|
|
|
|
void initInputs(void);
|
|
sMeasurement getChamberTemperature(void);
|
|
sMeasurement getOutdoorTemperature(void);
|
|
sMeasurement getInletFlowTemperature(void);
|
|
sMeasurement getReturnFlowTemperature(void);
|
|
eBurnerErrorState getBurnerError(void); |