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?
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?
If my post answers your question, please click on "Verify Answer" button to benefit others who have the same issue.
Visit Climax at SECURITY ESSEN 2016
In reply to YiKai Chen:
i send the periodically,without aps acknowledgement;
In reply to liangliang lou:
Can you show me your SYSTEM_HEARTBEAT_EVT?
You do not return with event^ SYSTEM_HEARTBEAT_EVT in your if statement. It should looks like:
if (event & SYSTEM_HEARTBEAT_EVT)
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
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.