连续对一多节点发送单播的消息,第七个节点出现ZBufferFull
VV:
发送数据,数据有没有从发送出去,如果没有的话,那是会出现的。
另外发送的速度多快
Jesse Huang:
回复 VV:
VV你好,我现在用的是Zigbee3.0.1协议栈,芯片为CC2538,在发送6次数据给终端设备,终端设备在休眠所以无响应,然后协调器就一直发送不出数据了,发送函数返回状态“ZBufferFull”,连发送数据给路由器都不可以。请问怎么改善这种情况?
Viki Shi:
回复 Jesse Huang:
是广播还是单播?
YiKai Chen:
回复 Jesse Huang:
你是不是在一個回圈中一直發送訊號?
Jesse Huang:
回复 Viki Shi:
单播,终端设备是一个ZHA协议栈的门磁设备,我在想会不会是发送给终端设备的数据缓存满了所以导致发送不出数据,可是发送给“彩灯”路由节点的信息并不需要缓存,为什么还是发送不出去呢
Jesse Huang:
回复 YiKai Chen:
不是的,是通过串口发送指令发送命令的。
Jesse Huang:
回复 Viki Shi:
顺便说一下我的3.0协议栈的网络参数是按照 TI 的《AN123 – Breaking the 400-Node ZigBee® Network Barrier With TI’s ZigBee SoC and Z-Stack™ Software》文档里的参考参数填写的。
YiKai Chen:
回复 Jesse Huang:
串口有持續要求送出封包嗎?
Jesse Huang:
回复 YiKai Chen:
具体情况是这样的:协议栈为Zigbee3.0.1,芯片为CC2538,PC通过串口手动发送10条读取attribute命令给门磁设备(终端类型),门磁设备在休眠所以无法发送“data request”给协调器接收数据,然后协调器再发送开关命令给彩灯(路由器类型),抓包观察是没有发出的,并且“zcl_SendCommand”命令返回的状态为“ZBufferFull”,等过了七八秒中之后又可以正常开关灯了。
我的猜测是发送给终端设备的数据是需要缓存的,缓存满了之后就无法添加新的终端信息缓存了,可是发送给路由节点的数据是直接发送不需要缓存的,为什么都发不出去呢?
门磁设备和彩灯设备均为ZHA版本的设备。
Zigbee 3.0协议栈的参数配置是按照TI的“400节点网络文档”来设置的。
Jesse Huang:
回复 Viki Shi:
具体情况是这样的:协议栈为Zigbee3.0.1,芯片为CC2538,PC通过串口手动发送10条读取attribute命令给门磁设备(终端类型),门磁设备在休眠所以无法发送“data request”给协调器接收数据,然后协调器再发送开关命令给彩灯(路由器类型),抓包观察是没有发出的,并且“zcl_SendCommand”命令返回的状态为“ZBufferFull”,等过了七八秒中之后又可以正常开关灯了。我的猜测是发送给终端设备的数据是需要缓存的,缓存满了之后就无法添加新的终端信息缓存了,可是发送给路由节点的数据是直接发送不需要缓存的,为什么都发不出去呢?门磁设备和彩灯设备均为ZHA版本的设备。Zigbee 3.0协议栈的参数配置是按照TI的“400节点网络文档”来设置的。