fix Bau091A:IsAckRequired for Broadcasts

This commit is contained in:
Ing-Dom 2024-12-23 22:11:34 +01:00
parent 919b8e35eb
commit c1588e12d5

View File

@ -175,17 +175,25 @@ TPAckType Bau091A::isAckRequired(uint16_t address, bool isGrpAddr)
{ {
// ACK for broadcasts // ACK for broadcasts
if (address == 0) if (address == 0)
{
ack = TPAckType::AckReqAck; ack = TPAckType::AckReqAck;
}
else
{
if(lcconfig & LCCONFIG::GROUP_IACK_ROUT) if(lcconfig & LCCONFIG::GROUP_IACK_ROUT)
{
// is group address in filter table? ACK if yes, No if not // is group address in filter table? ACK if yes, No if not
if(_netLayer.isRoutedGroupAddress(address, 1)) if(_netLayer.isRoutedGroupAddress(address, 1))
ack = TPAckType::AckReqAck; ack = TPAckType::AckReqAck;
else else
ack = TPAckType::AckReqNone; ack = TPAckType::AckReqNone;
}
else else
{
// all are ACKED // all are ACKED
ack = TPAckType::AckReqAck; ack = TPAckType::AckReqAck;
}
}
#ifdef KNX_TUNNELING #ifdef KNX_TUNNELING
if(_dlLayerPrimary.isSentToTunnel(address, isGrpAddr)) if(_dlLayerPrimary.isSentToTunnel(address, isGrpAddr))
ack = TPAckType::AckReqAck; ack = TPAckType::AckReqAck;
@ -209,7 +217,7 @@ TPAckType Bau091A::isAckRequired(uint16_t address, bool isGrpAddr)
#endif #endif
} }
printf("ack %u\n", ack);
return ack; return ack;
} }