main/task_driver.h

Sat, 20 Oct 2018 13:23:15 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 20 Oct 2018 13:23:15 +0200
changeset 0
b74b0e4902c3
child 1
ad2c8b13eb88
permissions
-rw-r--r--

Initial checkin brewboard

#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

mercurial