关于z-stack 无线循环发包不正常问题
您好 我的协议栈是2.4.0-1.4.0版本的,目标板是CC2530。 发现在使用Z-stack开发项目时候,需要循环发送无线包 使用到了此AF_DataRequest函数,但当我的LinkNumber数(也就是循环发送包次数)增加到4时,发送就出现错误,开始以为发包间隔时间太短,所以在每次进入循环发送包时候加了1S延时,但还是没有解决问题。是不是底层配置文件对发包数量进行了限制呢?下面是我的部分代码,希望得到解答。谢谢!
for(;send_PacketComplect<LinkNumber;send_PacketComplect++)
{
for(int i=0;i<20;i++)
{
Onboard_wait(50000);
}
SourceNodeInf[1]=sendNumber;
SourceNodeInf[2]=send_PacketComplect;
SourceNodeInf[3]=LinkNumber;
if( AF_DataRequest( &RouterEnd_DstAddr,
//端点描述符
&RouterEnd_epDesc,
//簇ID
LINK_NODE_CLUSTERID,
//发送字节长度
4,
//发送数据
SourceNodeInf,
//发送序列号
&RouterEnd_TransID,
//设备为路由发现
AF_DISCV_ROUTE,
//路由半径
AF_DEFAULT_RADIUS)==afStatus_SUCCESS)
{
HalLedSet(HAL_LED_1,HAL_LED_MODE_BLINK);
sendNumber++;
}
都 一天了,,没人解答?
AF_DataRequest并不是真正的发送函数,只是把数据包填充到发送队列中,你必须要退出当前任务,运行到MAC和NWK的任务中,才能发出数据来。你那种方法只是无聊的去消耗CC2530的内存,最后导致CC2530内存溢出死机。
你好:
首先非常感谢您能关注并回答这个问题,你说的是发送队列溢出的现象吧,我们当时也考虑过这个问题,所以在每次循环都加入了1s时间的延迟,我不理解这个时间还不够解决队列溢出问题?而且我们测试了节点也没有死机,还能正常接收上位机发送的其他命令并能正常执行啊。你所指的退出当前任务能说的基体点吗?谢谢!