Sat, 20 Oct 2018 13:23:15 +0200
Initial checkin brewboard
0 | 1 | #ifndef _TASK_DRIVER_H |
2 | #define _TASK_DRIVER_H | |
3 | ||
4 | /** | |
5 | * @file task_driver.h | |
6 | * @brief The interface to the FreeRTOS driver task. This task drives the Solid | |
7 | * State Relays (SSR) to power the Mash Lauter Tun (MLT) and the Hot | |
8 | * Liquer Tank (HLT) heating elements. It also controls the pump relay. | |
9 | * | |
10 | * It takes the temperature readings from the DS18B20 task. | |
11 | */ | |
12 | ||
13 | ||
14 | typedef enum { | |
15 | MLT_MODE_NONE = 0, ///< Not active | |
16 | MLT_MODE_BANG = 1, ///< Bang on/off mode | |
17 | MLT_MODE_PID = 2, ///< PID mode | |
18 | MLT_MODE_OFF = 3, ///< Off but show setpoint | |
19 | MLT_MODE_EXT = 4, ///< External regulation | |
20 | } MLT_MODE_TYPE; | |
21 | ||
22 | typedef enum { | |
23 | HLT_MODE_NONE = 0, ///< Not active | |
24 | HLT_MODE_BANG = 1, ///< Bang on/off mode | |
25 | HLT_MODE_OFF = 2, ///< Off but show setpoint | |
26 | HLT_MODE_ON = 3, ///< On if free | |
27 | } HLT_MODE_TYPE; | |
28 | ||
29 | ||
30 | /** | |
31 | * @brief Structure containing the information of the driver task. | |
32 | */ | |
33 | typedef struct { | |
34 | bool enable; ///< Enable outputs | |
35 | int mlt_gpio; ///< MLT SSR GPIO pin | |
36 | int mlt_mode; ///< MLT Mode: 0 = off, 1 = bang on/off, 2 = PID, 3 = cooling | |
37 | double mlt_sp; ///< Setpoint MLT temperature | |
38 | double mlt_pv; ///< Current MLT temperature | |
39 | int mlt_power; ///< Current MLT drive power % | |
40 | int hlt_gpio; ///< HLT SSR GPIO pin | |
41 | int hlt_mode; ///< HLT Mode: 0 = off, 1 = bang on/off, 2 = always on | |
42 | double hlt_sp; ///< Setpoint HLT temperature | |
43 | double hlt_pv; ///< Current HLT temperature | |
44 | int hlt_power; ///< Current HLT drive power % | |
45 | bool hlt_and_mlt; ///< True if both MLT and HLT are allowed at the same time. | |
46 | int pump_gpio; ///< Pump SSR GPIO pin | |
47 | int pump_run; ///< Pump on/off | |
48 | } DRIVER_State; | |
49 | ||
50 | ||
51 | /** | |
52 | * @brief FreeRTOS driver task. This task drives the Solid | |
53 | * State Relays (SSR) to power the Mash Lauter Tun (MLT) and the Hot | |
54 | * Liquer Tank (HLT) heating elements. It also controls the pump relay. | |
55 | */ | |
56 | void task_driver(void *); | |
57 | ||
58 | #endif | |
59 |