From 50b74b491bba2a869ae6ed75ae7f7b0fba38413e Mon Sep 17 00:00:00 2001 From: john30 Date: Sun, 18 Sep 2016 12:10:24 +0200 Subject: [PATCH] allow scan for FE, only store scan data if non-empty --- src/ebusd/bushandler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ebusd/bushandler.cpp b/src/ebusd/bushandler.cpp index 3000f9fc..4affc49b 100644 --- a/src/ebusd/bushandler.cpp +++ b/src/ebusd/bushandler.cpp @@ -968,7 +968,7 @@ void BusHandler::formatSeenInfo(ostringstream& output) result_t BusHandler::scanAndWait(unsigned char dstAddress, SymbolString& slave) { - if (!isValidAddress(dstAddress, false) || isMaster(dstAddress)) + if (!isValidAddress(dstAddress) || isMaster(dstAddress)) return RESULT_ERR_INVALID_ADDR; m_seenAddresses[dstAddress] |= SCAN_INIT; Message* scanMessage = m_messages->getScanMessage(); @@ -990,7 +990,7 @@ result_t BusHandler::scanAndWait(unsigned char dstAddress, SymbolString& slave) if (result!=RESULT_ERR_NO_SIGNAL) m_seenAddresses[dstAddress] |= SCAN_DONE; } - if (result!=RESULT_OK) + if (result != RESULT_OK || slave.size() == 0) // avoid "invalid position" during decode return result; return scanMessage->storeLastData(pt_slaveData, slave, 0); // update the cache