TI中文支持网
TI专业的中文技术问题搜集分享网站

AF_DataRequest函数返回ZBufferFull(0X11)

       

       协调器连续向多个设备发送控制指令,对某个设备的控制会出现  ZBufferFull 错误返回;

        俺字面意思的话应该是缓冲队列满了,请问下可以修改哪个参数,增加缓冲的长度?

 在配置文件f8wConfig.cfg中     ,有个这个定义,但是我看它是对广播数据的限制  

/* The number of items in the broadcast table */

-DMAX_BCAST=9

另外,在nwk_globals.c文件中,开头有几个相关定义是关于各种Buffe数量的定义的,优化ZBufferFull 错误返回,是不是从这里边进行修改?

// Maximums for the data buffer queue
#define NWK_MAX_DATABUFS_WAITING 8 // Waiting to be sent to MAC
#define NWK_MAX_DATABUFS_SCHEDULED 5 // Timed messages to be sent
#define NWK_MAX_DATABUFS_CONFIRMED 5 // Held after MAC confirms
#define NWK_MAX_DATABUFS_TOTAL 12 // Total number of buffers

但是这几个数值不知道应该改哪个,还是需要几个一起修改? 怕随便修改的话,引起一些位置的问题~~~

协议栈版本是ZHA1.2的,芯片是CC2538

YiKai Chen:

对某个设备的控制会出现ZBufferFull 错误返回是不是因為這個设备無法接收所以導致的呢?先找出真正原因再來修正才能真正解決問題

Alvin Chen:

Hello,
I would recommend to wait for the AF_DATA_CONFIRM_CMD event in the application when a packet is transmitted before sending the next packet. This way you are safe that the transmission buffers are free before the next packet is sent from the application.

user5020974:

回复 Alvin Chen:

谢谢答复~
实现的功能是类似场景控制似的,同时控制多个设备。但是由于云平台的原因,不能使用组命令,需要每个设备分别发送控制指令,没时间发一个控制再等待它的执行状态。就是一瞬间全发出去,再等所有设备的执行状态

user5020974:

回复 YiKai Chen:

目标设备是没问题的,对这个设备进行单独控制没问题,就是和其他多个设备一起连续控制会出问题

YiKai Chen:

回复 user5020974:

對每个设备分别发送控制指令的間隔建議>100 ms

赞(0)
未经允许不得转载:TI中文支持网 » AF_DataRequest函数返回ZBufferFull(0X11)
分享到: 更多 (0)