allow scan for FE, only store scan data if non-empty
This commit is contained in:
@@ -968,7 +968,7 @@ void BusHandler::formatSeenInfo(ostringstream& output)
|
|||||||
|
|
||||||
result_t BusHandler::scanAndWait(unsigned char dstAddress, SymbolString& slave)
|
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;
|
return RESULT_ERR_INVALID_ADDR;
|
||||||
m_seenAddresses[dstAddress] |= SCAN_INIT;
|
m_seenAddresses[dstAddress] |= SCAN_INIT;
|
||||||
Message* scanMessage = m_messages->getScanMessage();
|
Message* scanMessage = m_messages->getScanMessage();
|
||||||
@@ -990,7 +990,7 @@ result_t BusHandler::scanAndWait(unsigned char dstAddress, SymbolString& slave)
|
|||||||
if (result!=RESULT_ERR_NO_SIGNAL)
|
if (result!=RESULT_ERR_NO_SIGNAL)
|
||||||
m_seenAddresses[dstAddress] |= SCAN_DONE;
|
m_seenAddresses[dstAddress] |= SCAN_DONE;
|
||||||
}
|
}
|
||||||
if (result!=RESULT_OK)
|
if (result != RESULT_OK || slave.size() == 0) // avoid "invalid position" during decode
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
return scanMessage->storeLastData(pt_slaveData, slave, 0); // update the cache
|
return scanMessage->storeLastData(pt_slaveData, slave, 0); // update the cache
|
||||||
|
|||||||
Reference in New Issue
Block a user