This library allows to parse and work with data sent by the Paradigma pelletti oven.
ParadigmaTemperature.h
- Committer:
- leihen
- Date:
- 2013-06-26
- Revision:
- 1:9c48326ad8c9
- Parent:
- 0:4873b21e0bca
File content as of revision 1:9c48326ad8c9:
#ifndef __PARADIGMATEMPERATURE_H__ #define __PARADIGMATEMPERATURE_H__ #include <string> #include "ParadigmaBase.h" namespace Paradigma { typedef enum { // Temperatures from Monitor Data 1 T_aussen, T_warm_wasser, T_kessel_vorlauf, T_kessel_ruecklauf, T_HK1_raum, T_HK2_raum, T_HK1_vorlauf, T_HK2_vorlauf, T_HK1_ruecklauf, T_HK2_ruecklauf, T_puffer_oben, T_puffer_unten, T_zirkulation, // Temperatures form Monitor Data 2 T_HK1_raum_soll, T_HK2_raum_soll, T_HK1_vorlauf_soll, T_HK2_vorlauf_soll, T_warm_wasser_soll, T_puffer_soll } ParadigmaTemperatureSelector_t; __packed class ParadigmaTemperature { unsigned short m_temp; public: ParadigmaTemperature() : m_temp(0) {} operator string() const { char Buffer[14]; sprintf(Buffer, "%3d,%1d C", m_temp/10, m_temp%10); return Buffer; } operator float() const { return ((float)m_temp)/10.0f; } ParadigmaTemperature& operator=(float f) { m_temp = (int)ceil(f*10.0f); return *this; } ParadigmaTemperature& operator=(ParadigmaTemperature &p) { m_temp = p.m_temp; return *this; } public: /** On the MBED we need to swap the high and lowbytes after reading from stream. * this function will be called from reading routine. */ void adjustEndiness() { m_temp = ((m_temp&0xFF)<<8) | ((m_temp>>8)&0xFF); } }; } #endif