smart-oil-heating-control-s.../main/inputs.h

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);