Wed, 10 Jun 2020 09:43:51 +0200
SDK settings to reduce bin size. Some log messages to debug level. Added KWH usage registration. Added equipment power usage for HLT and MLT. Equipment database upgraded to version 2, expandable. Fixed some screen errors during temperature mash steps.
#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. */ /** * @brief MLT working mode. */ 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; /** * @brief HLT working mode. */ 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