safety state and input error detection
This commit is contained in:
@ -1,21 +1,40 @@
|
||||
#pragma once
|
||||
|
||||
#define MAX(a, b) ((a) > (b) ? (a) : (b))
|
||||
#define AVG10_SAMPLE_SIZE 10U
|
||||
#define AVG60_SAMPLE_SIZE 60U
|
||||
|
||||
typedef enum _BurnerErrorState
|
||||
{
|
||||
NO_ERROR,
|
||||
FAULT
|
||||
} eBurnerErrorState;
|
||||
|
||||
typedef enum _MeasurementMode
|
||||
typedef enum _MeasurementErrorState
|
||||
{
|
||||
CURRENT,
|
||||
AVERAGE_10S,
|
||||
AVERAGE_60S
|
||||
} eMeasurementMode;
|
||||
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 _Measurement
|
||||
{
|
||||
float fCurrentValue;
|
||||
sAverage average10s;
|
||||
sAverage average60s;
|
||||
eMeasurementErrorState state;
|
||||
} sMeasurement;
|
||||
|
||||
void initInputs(void);
|
||||
float getChamberTemperature(eMeasurementMode mode);
|
||||
float getOutdoorTemperature(eMeasurementMode mode);
|
||||
float getInletFlowTemperature(eMeasurementMode mode);
|
||||
float getReturnFlowTemperature(eMeasurementMode mode);
|
||||
sMeasurement getChamberTemperature(void);
|
||||
sMeasurement getOutdoorTemperature(void);
|
||||
sMeasurement getInletFlowTemperature(void);
|
||||
sMeasurement getReturnFlowTemperature(void);
|
||||
eBurnerErrorState getBurnerError(void);
|
Reference in New Issue
Block a user