I am trying to send a 120-byte message to my coordinator.
At first, I only set the flags: dstEpInfo.txOptions |= (APS_TX_OPT_ACK_TX | APS_TX_OPT_FRAG_PERMITTED); but the transmission still failed.
I finally got it working, but only after I changed my APS_MAX_WINDOW_SIZE setting to 2+.
Does anyone know why modifying the window size was the magic fix for this? I want to make sure I understand the underlying APS logic so I don't run into memory or routing issues down the road.
Hi,
This parameter APS_MAX_WINDOW_SIZE controls how many data blocks are sent before an ACK is needed, otherwise the fragment sending will fail.
From what you're describing, it seems like the coordinator only sends an ACK after receiving 2 blocks. You can check if the APS_MAX_WINDOW_SIZE on the coordinator side is 2.