在线时间5 小时
UID3570829
注册时间2019-6-11
NXP金币0
TA的每日心情 | 衰 2019-9-27 13:18 |
---|
签到天数: 3 天 连续签到: 1 天 [LV.2]偶尔看看I
注册会员

- 积分
- 52
- 最后登录
- 2019-10-18
|
本帖最后由 kongchunxiu 于 2019-9-25 19:07 编辑
问题描述
协调器和终端通信时,协调器有时会出现错误提示ZPS_XS_E_NO_FREE_APDU,对应值是0x81,,英文注释为No free APDUs (resource error) - the number of APDUs is set in the "Instances" property of the appropriate "APDU" child of the "PDU Manager" section of the ZPS Configuration Editor
,表示APDU资源不够,该怎么解决?
开发环境
芯片用的NXP的MKW41Z512,软件用的MCUXpresso IDE,SDK版本是2.2.0,是官网选好芯片后直接生成的SDK库,程序是选的SDK库中的Zigbee 3.0的协调器例程,另外自己增加一些定时发送数据的逻辑。
目前困境
NXP协议栈不开放源码,无法调试接口,我这边发现错误后,只能去找错误码定义,非常不利于我查问题。Zigbee群和NXP官网也都问过查过了,没什么收获。
相关代码
status = ZPS_eAplAfUnicastAckDataReq(pdu_data, 0x1234, 1, 1/*255*/, dst_addr, ZPS_E_APL_AF_UNSECURE, 0, NULL);代码说明:
1.第一个参数是要发的数据,在准备这个数据时,调用了Zigbee的一些接口,这些接口的返回值也都表示没有错误出现。
2.第二个参数是目标集群,这个我是随便填写的,调试过程中也发现这个集群ID不影响协调器和终端之间的数据交互(也可能有影响,只是我调试时没遇到这个情况);
3.第三个参数是原节点;
4.第四个参数是目标节点;
5.第五个参数是安全模式,也是随便选的,不要安全,想着参数是按照它的定义来传的,应该不会有错。
调试过程中我的目的只是想要借助zigbee网络来传递数据,不需要ZCL层,我透传自己的应用层协议数据就足够了,即我只是借助了zigbee网络这个载体来传数据。
备注
当我将终端数量增加时(目前最多也就加到6个终端,数据发送的时间间隔是1秒),就会很容易出现这个错误。
|
-
错误提示
-
错误定义
|