diff -r 000000000000 -r b74b0e4902c3 main/task_driver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main/task_driver.h Sat Oct 20 13:23:15 2018 +0200 @@ -0,0 +1,59 @@ +#ifndef _TASK_DRIVER_H +#define _TASK_DRIVER_H + +/** + * @file task_driver.h + * @brief The interface to the FreeRTOS driver task. This task drives the Solid + * State Relays (SSR) to power the Mash Lauter Tun (MLT) and the Hot + * Liquer Tank (HLT) heating elements. It also controls the pump relay. + * + * It takes the temperature readings from the DS18B20 task. + */ + + +typedef enum { + MLT_MODE_NONE = 0, ///< Not active + MLT_MODE_BANG = 1, ///< Bang on/off mode + MLT_MODE_PID = 2, ///< PID mode + MLT_MODE_OFF = 3, ///< Off but show setpoint + MLT_MODE_EXT = 4, ///< External regulation +} MLT_MODE_TYPE; + +typedef enum { + HLT_MODE_NONE = 0, ///< Not active + HLT_MODE_BANG = 1, ///< Bang on/off mode + HLT_MODE_OFF = 2, ///< Off but show setpoint + HLT_MODE_ON = 3, ///< On if free +} HLT_MODE_TYPE; + + +/** + * @brief Structure containing the information of the driver task. + */ +typedef struct { + bool enable; ///< Enable outputs + int mlt_gpio; ///< MLT SSR GPIO pin + int mlt_mode; ///< MLT Mode: 0 = off, 1 = bang on/off, 2 = PID, 3 = cooling + double mlt_sp; ///< Setpoint MLT temperature + double mlt_pv; ///< Current MLT temperature + int mlt_power; ///< Current MLT drive power % + int hlt_gpio; ///< HLT SSR GPIO pin + int hlt_mode; ///< HLT Mode: 0 = off, 1 = bang on/off, 2 = always on + double hlt_sp; ///< Setpoint HLT temperature + double hlt_pv; ///< Current HLT temperature + int hlt_power; ///< Current HLT drive power % + bool hlt_and_mlt; ///< True if both MLT and HLT are allowed at the same time. + int pump_gpio; ///< Pump SSR GPIO pin + int pump_run; ///< Pump on/off +} DRIVER_State; + + +/** + * @brief FreeRTOS driver task. This task drives the Solid + * State Relays (SSR) to power the Mash Lauter Tun (MLT) and the Hot + * Liquer Tank (HLT) heating elements. It also controls the pump relay. + */ +void task_driver(void *); + +#endif +