smart-oil-heating-control-s.../main/control.h
2024-12-22 16:34:26 +01:00

49 lines
971 B
C

#pragma once
#include <time.h>
#define MAX_TEMPERATURE_ENTRIES_PER_DAY 24U
typedef enum _ControlState
{
CONTROL_STARTING,
CONTROL_HEATING,
CONTROL_OUTDOOR_TOO_WARM,
CONTROL_RETURN_FLOW_TOO_WARM,
CONTROL_BURNER_FAULT,
CONTROL_FAULT,
} eControlState;
typedef enum _ControlWeekday
{
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY,
WEEKDAY_COUNT
} eControlWeekday;
typedef struct _ControlTimestamp
{
uint8_t hour;
uint8_t minute;
} sControlTimestamp;
typedef struct _ControlTemperatureEntry
{
sControlTimestamp timestamp;
float fReturnFlowTemperature;
float fChamberTemperature;
} sControlTemperatureEntry;
typedef struct _ControlDay
{
eControlWeekday day;
size_t entryCount; // number of entries for each day
sControlTemperatureEntry aTemperatureEntries[MAX_TEMPERATURE_ENTRIES_PER_DAY];
} sControlDay;
void initControl(void);
eControlState getControlState(void);