Added Who-Is-Router process for Notification Class recipient unknown router addresses. (#1243)
* Added Who-Is-Router-To-Network process in basic Notification Class when recipient address is missing the router MAC address. * Added buffer_length parameter to octet string buffer decode functions * Fixed BACnet address handling for I-Am-Router address updating the recipient list address for the next hop router. * Changed VMAC encoding and decoding to use octet string buffer API to reduce stack RAM.
This commit is contained in:
@@ -125,6 +125,28 @@ void bacnet_recipient_address_set(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Inspect the BACnetRecipient data structure for valid router address
|
||||
* @param recipient - BACnetRecipient structure
|
||||
* @return true if BACnetRecipient is a valid address
|
||||
*/
|
||||
bool bacnet_recipient_address_router_unknown(const BACNET_RECIPIENT *recipient)
|
||||
{
|
||||
bool status = false;
|
||||
|
||||
if (recipient) {
|
||||
if ((recipient->tag == BACNET_RECIPIENT_TAG_ADDRESS) &&
|
||||
(recipient->type.address.net != 0) &&
|
||||
(recipient->type.address.net != BACNET_BROADCAST_NETWORK) &&
|
||||
(recipient->type.address.len != 0) &&
|
||||
(recipient->type.address.mac_len == 0)) {
|
||||
status = true;
|
||||
}
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Copy the BACnetRecipient complex data from src to dest
|
||||
* @param src - BACnetRecipient 1 structure
|
||||
|
||||
Reference in New Issue
Block a user