From 2faab3f3b44472d062a6b23288767ade5243f979 Mon Sep 17 00:00:00 2001 From: john30 Date: Sat, 7 Mar 2015 16:25:40 +0100 Subject: [PATCH] fixed previous commit --- src/ebusd/mainloop.cpp | 2 +- src/lib/ebus/message.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ebusd/mainloop.cpp b/src/ebusd/mainloop.cpp index bcc0c0a8..5da3e2c3 100644 --- a/src/ebusd/mainloop.cpp +++ b/src/ebusd/mainloop.cpp @@ -265,7 +265,7 @@ string MainLoop::executeRead(vector &args) if (!hasCache || (message != NULL && message->getLastUpdateTime() > cacheMessage->getLastUpdateTime())) cacheMessage = message; // message is newer/better - if (cacheMessage != NULL && (cacheMessage->getLastUpdateTime() + maxAge > now || cacheMessage->isPassive())) { + if (cacheMessage != NULL && (cacheMessage->getLastUpdateTime() + maxAge > now || (cacheMessage->isPassive() && cacheMessage->getLastUpdateTime() != 0))) { result_t ret = cacheMessage->decodeLastData(result, verbose, fieldIndex==-2 ? NULL : fieldName.c_str(), fieldIndex); if (ret != RESULT_OK) return getResultCode(ret); diff --git a/src/lib/ebus/message.cpp b/src/lib/ebus/message.cpp index d254f17a..fc249d91 100644 --- a/src/lib/ebus/message.cpp +++ b/src/lib/ebus/message.cpp @@ -395,9 +395,11 @@ result_t Message::decodeLastData(ostringstream& output, offset = 0; leadingSeparator = output.str().length() > startPos; result = m_data->read(pt_slaveData, m_lastSlaveData, offset, output, leadingSeparator, verbose, fieldName, fieldIndex, separator); + if (result < RESULT_OK) + return result; if (empty && result == RESULT_EMPTY) return RESULT_ERR_NOTFOUND; - return result; + return RESULT_OK; } bool Message::isLessPollWeight(const Message* other)