main/task_driver.h

changeset 0
b74b0e4902c3
child 1
ad2c8b13eb88
equal deleted inserted replaced
-1:000000000000 0:b74b0e4902c3
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

mercurial