#ifndef STATES_H #define STATES_H #include "stm32f3xx_hal.h" #include "config.h" typedef struct { float temp; uint8_t state_resume; uint8_t state; float setpoint; uint8_t pid_enabled; uint8_t error_code; } therm_status_t; typedef union { struct { uint32_t boottobrew; uint32_t temp_units; uint32_t windup_guard; uint32_t k_p; uint32_t k_i; uint32_t k_d; int32_t temp_offset; uint32_t ignore_error; int32_t setpoint_brew; int32_t setpoint_steam; uint32_t control_mode; uint32_t sensor_type; uint32_t plant_type; uint32_t hysteresis; } val; uint16_t data[128]; } therm_settings_t; enum tempunits { TEMP_UNITS_CELSIUS = 0, TEMP_UNITS_FAHRENHEIT, }; enum state { STATE_IDLE = 0, STATE_SETSENSORTYPE, STATE_SETMODE, STATE_SETPLANTTYPE, STATE_SETHYSTERESIS, STATE_SETP, STATE_SETI, STATE_SETD, STATE_SETSTEPS, STATE_SETWINDUP, STATE_SETBOOTTOBREW, STATE_SETUNITS, STATE_SETTEMPOFFSET, STATE_PREHEAT, STATE_MAINTAIN, STATE_TC_ERROR, STATE_RESET, }; enum control_mode { MODE_PID = 0, MODE_THERMOSTAT, }; enum plant_type { PLANT_HEATER = 0, PLANT_COOLER, }; enum GOTO_MODE { #ifdef BOOTLOADER_SHORTCUT MODE_BOOTLOADER, #endif MODE_HEAT, MODE_SETUP, MODE_RESET, MODE_SIZE, }; enum RESET_MODE { RESET_REBOOT = 0, RESET_DEFAULTS, RESET_BOOTLOADER, RESET_EXIT, RESET_SIZE, }; enum SENSOR_TYPE { SENSOR_NTC = 0, SENSOR_TC_K, SENSOR_TC_E, SENSOR_TC_N, SENSOR_TC_R, SENSOR_TC_S, SENSOR_TC_T, }; #endif