allow scan for FE, only store scan data if non-empty

This commit is contained in:
john30
2016-09-18 12:10:24 +02:00
parent a6dd03033a
commit 50b74b491b
+2 -2
View File
@@ -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