ZigBee协调器连续广播10次失败,只有前6次成功
大家好,
最近用到ZigBee的广播技术,代码中设定协调器在接收到串口数据之后将数据广播出去,设定广播10次,但是只有前6次能广播成功,这是问什么?麻烦解释一下。
修改代码如下:
-DMAX_BCAST=25
#if !defined ( MAX_BCAST_RETRIES )
#define MAX_BCAST_RETRIES 2
#endif
#if !defined ( PASSIVE_ACK_TIMEOUT )
#define PASSIVE_ACK_TIMEOUT 5
#endif
#if !defined ( BCAST_DELIVERY_TIME )
#define BCAST_DELIVERY_TIME 5 //30
#endif
调用广播函数如下:
for(i=0; i<TOTAL_PU_NUMBER; i++)
{
while(*(p+1) < 97 && *(p+1) != '\0')
{
if(*(p+1) != ',' && *(p+2) == ',')
{
pu[j] = (*(p+1)-0x30)*100;
p += 2;
j++;
}
else if(*(p+1) != ',' && *(p+2) != ',' && *(p+3) == ',')
{
pu[j] = (*(p+1)-0x30)*1000+(*(p+2)-0x30)*100;
j++;
if(*(p+4) >= 97)
{
p += 4;
break;
}
else p += 3;
}
}
puWareInit( &puWare[i], pu[j-1], pu, j/(i+1)-1, 1);
len = CaculateOtaDataLen(pData);
RailCommsApp_Send_BROADCAST_Message( pData, len );
}
附上抓包文件,谢谢
附件如下图
调试发现当发送第七个数据包时的返回值是0x11,这是什么问题?
0x11表示ZBufferFull
应该是网buffer里面放数据放的太快了,是否可以在两次广播之间加一定的延时呢
