diff -r 000000000000 -r b74b0e4902c3 main/task_ds18b20.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main/task_ds18b20.h Sat Oct 20 13:23:15 2018 +0200 @@ -0,0 +1,48 @@ + +/** + * @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 +#define DS18B20_ERR_NOSENSOR 1 +#define DS18B20_ERR_TOOMANY 2 +#define DS18B20_ERR_CRC 3 +#define DS18B20_ERR_READ 4 + + +/** + * @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 +