From 59e3ab8c16a549ac374481e23d54e37a5e8a4017 Mon Sep 17 00:00:00 2001 From: Micke Prag Date: Thu, 7 Mar 2013 14:59:31 +0100 Subject: [PATCH] Handle Oregon EA4C temperatures over 100 degrees. This closes #261 --- telldus-core/service/ProtocolOregon.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/telldus-core/service/ProtocolOregon.cpp b/telldus-core/service/ProtocolOregon.cpp index 54b288f4..6882019a 100644 --- a/telldus-core/service/ProtocolOregon.cpp +++ b/telldus-core/service/ProtocolOregon.cpp @@ -34,6 +34,7 @@ std::string ProtocolOregon::decodeEA4C(const std::string &data) { uint8_t checksumw = (value >> 4) & 0xF; bool neg = value & (1 << 3); + int hundred = value & 3; checksum += (value & 0xF); value >>= 8; @@ -58,7 +59,7 @@ std::string ProtocolOregon::decodeEA4C(const std::string &data) { return ""; } - double temperature = ((temp1 * 100) + (temp2 * 10) + temp3)/10.0; + double temperature = ((hundred * 1000) + (temp1 * 100) + (temp2 * 10) + temp3)/10.0; if (neg) { temperature = -temperature; }