Monitor for central heating system (e.g. 2zones+hw) Supports up to 15 temp probes (DS18B20/DS18S20) 3 valve monitors Gas pulse meter recording Use stand-alone or with nodeEnergyServer See http://robdobson.com/2015/09/central-heating-monitor
Dependencies: EthernetInterfacePlusHostname NTPClient Onewire RdWebServer SDFileSystem-RTOS mbed-rtos mbed-src
Diff: RdDS18B20.h
- Revision:
- 9:0e103c2f869a
- Parent:
- 8:5980547ae71c
- Child:
- 16:89778849e9f7
--- a/RdDS18B20.h Sat Feb 21 19:00:08 2015 +0000 +++ b/RdDS18B20.h Sun Feb 22 11:57:12 2015 +0000 @@ -8,28 +8,34 @@ #include "mbed.h" #include "Onewire.h" -#define MAX_BUS_DEVICES 8 - class DS18B20 { public: DS18B20(PinName mbedPin); void ReqConvert(); - double GetTemperature(int addrIdx); + double ReadTemperature(int addrIdx); void DebugPrintAddress(int addrIdx); void SearchToGetAddresses(); int GetNumAddresses() { return _numValidAddresses; } - uint8_t* GetAddress(int addrIdx); + uint8_t* GetAddress(int addrIdx, uint8_t* addrBufPtr); char* GetAddressStr(int addrIdx); + double GetLatestTemperature(int addrIdx, time_t& timeOfReading); + + static const int ONEWIRE_ADDR_STRLEN = 3 * ONEWIRE_ADDR_BYTES + 1; + static const int MAX_BUS_DEVICES = 8; + + static const int INVALID_TEMPERATURE = -1000.0; private: int _numValidAddresses; uint8_t _addrTable[MAX_BUS_DEVICES][ONEWIRE_ADDR_BYTES]; + double _temperatureTable[MAX_BUS_DEVICES]; + time_t _timeOfReadingTable[MAX_BUS_DEVICES]; Onewire _oneWire; - char _addrStr[3 * ONEWIRE_ADDR_BYTES + 1]; + char _addrStr[ONEWIRE_ADDR_STRLEN]; }; #endif \ No newline at end of file