hi
i found that end device often retransmission data,i don't know what causes this problem.
this distance between the end device and its parent is very close.and i use the sniffer to catch the packet and the rssi of the packet are all larger than -30dbm.
but the the retransmission phenomenon is quite obvious;
the screenshots is shown as follow
what can i do to solve or inprove this phenomenon?
hoping your advice whether right or wrong?
regards!
Dears,
I see there is ACK to your ED so the retransmission should be caused by your application. How do you send out a packet? Trigger by a button or send out periodically?
i send the periodically,without aps acknowledgement;
Can you show me your SYSTEM_HEARTBEAT_EVT?
ok
You do not return with event^ SYSTEM_HEARTBEAT_EVT in your if statement. It should looks like:
if (event & SYSTEM_HEARTBEAT_EVT)
{
basicRfReportHeartbeatFrame();
return (event^ SYSTEM_HEARTBEAT_EVT);
}
Add return to see if it solves your problem.
dear YiKai Chen,
I have a try,and the related result is waiting for;
but i feel confused that i use below code in function void zb_HandleOsalEvent( uint16 event ),
and the funtion zb_HandleOsalEvent() is called shown as follow
at the end ,variable enents will set 0 return.
so in my opinion,it is not need to clean the SYSTEM_HEARTBEAT_EVT!
now the result is that this phenomenon is solved perfectly.
can you explain to me?
thank you !
i am so sorry to tell you
i found the problem is also exist,i found the end device will retransmission sometimes,but the problem is improved!
If you don not use event^ SYSTEM_HEARTBEAT_EVT to exclude the bit of SYSTEM_HEARTBEAT_EVT, it will keeps there and enter the "if statement" always every time your zb_HandleOsalEvent is called. You can not just use return 0 since you have process the event. You need to clear the bit.
What is the value of SYSTEM_HEARTBEAT_PERIOD? Do you set it very short?
the value i set is equal to 60 seconds,this mean that the heartbeat frame is reported every minute to the coordiantor
Show me the latest sniffer log will make it possible to see where the problem is.
Try to set -DAPSC_MAX_FRAME_RETRIES=0 in your f8wconfig.cfg.
you mean that to disable the retransmission function ?
Yes!