main/task_ds18b20.h

Thu, 29 Jul 2021 22:36:17 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Thu, 29 Jul 2021 22:36:17 +0200
changeset 114
1413c4c5cd8c
parent 1
ad2c8b13eb88
permissions
-rw-r--r--

Fixed Brewfather beerxml import.


/**
 * @file task_ds18b20.h
 * @brief The FreeRTOS task to query the DS18B20 sensors on one or two
 *        one-wire busses. Each bus must have only one sensor. That way
 *        we don't need to care about the DS18B20 internal ROM address.
 *        The task will update the DS18B20_State structure.
 *
 * Using a compile setting with make menuconfig it is possible to compile
 * a simulator instead of real hardware sensors. The simulator includes
 * fake kettles so that the temperature actually changes with the 
 * activation of the kettle Solid State Relays. Only usefull for developers.
 */

#ifndef	_TASK_DS18B20_H
#define	_TASK_DS18B20_H

/*
 * Error codes in this task
 */
#define	DS18B20_ERR_NONE		0			///< No errors
#define DS18B20_ERR_NOSENSOR		1			///< No sensor detected
#define	DS18B20_ERR_TOOMANY		2			///< Too many sensors
#define	DS18B20_ERR_CRC			3			///< CRC read error
#define	DS18B20_ERR_READ		4			///< Generic read error


/**
 * @brief Structure containing the variables for the DS18B20 task.
 */
typedef struct {
    bool   mlt_valid;			///< MLT sensor valid reading.
    double mlt_temperature;		///< Current MLT temperature.
    int    mlt_error;			///< MLT error number.
    bool   hlt_valid;			///< HLT sensor valid reading.
    double hlt_temperature;		///< Current HLT temperature.
    int    hlt_error;			///< HLT error number.
} DS18B20_State;


/**
 * @brief The FreeRTOS task to update the DS18B20 temperature sensors.
 */
void task_ds18b20(void *);


#endif

mercurial