smart-oil-heating-control-s.../main/control.h
2024-12-26 20:27:42 +01:00

50 lines
985 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_FAULT_BURNER,
CONTROL_FAULT_SAFETY,
CONTROL_FAULT_SNTP,
} eControlState;
typedef enum _ControlWeekday
{
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY,
} 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);