• Zigbee 分享
  • AF_DataRequest()返回内存溢出,即afStatus_MEM_FAIl=0x10

前言
芯片型号:我用CC2530做了一套智能家居
SDK版本:zstack home 1.2.2a对接标准zigbee ha传感器和对接私有2.5.1a的私有设备

方法
使用AF_DataRequest来控制私有的2.5.1a设备
使用zcl_SendCommand来控制标准设备

问题
调用AF_DataRequest()时候会返回0x10,为afStatus_MEM_FAIl,内存溢出,只有频繁调用AF_DataRequest()才会出现,请问是什么原因呢?

临时解决办法

if(status=afStatus_MEM_FAIl){
   //复位cc2530芯片
}

彻底解决办法
可以使用zcl_SendCommand来控制私有的2.5.1a设备
将私有设备全部按照zcl格式进行收发,这是按龙哥思想来执行的。(龙哥是一名优秀的zigbee工程师)

    1.af-datarequest 是把你要发送的条目放到发送队列中,内存溢出很可能是队列满了
    2.zcl的命令你翻查下去,其实底层还是调用了af-datarequest的请求原语。至于你的内存问题,发送的时候顺带打印一下发送的数据,你可以方便查看纠错

      因为我是频繁调用,并且可能发送不成功,af-datarequest 函数有对应的清空队列的api吗?不然我只能复位了

        撰写回复...