我在使用CC2530 作为终端设备加入ZHA的网络,其中CC2530的
zgApsAllowR19Sec设置为TRUE,
初始化时候,先调用bdb_initialize(),然后按键后调用 bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING);
用抓包数据分析数据交互过程,
终端设备发送beacon,收到应答后,然后终端设备发送association request ,协调器应答association response ,然后终端设备发送几次 data request , 协调器发送data response ,这样交互几次之后,终端设备再次发送association request ,协调器再次应答association response。
直到BDB的回调函数返回BDB_COMMISSIONING_NO_NETWORK ,才会结束。
为什么会多次发送association request ,为什么收到association response后,BDB不返回SUCCESS???
问题2:
我让设备自己离开网络,调用如下函数:
NLME_LeaveReq_t leaveReq;
osal_memset((uint8 *)&leaveReq,0,sizeof(NLME_LeaveReq_t));
osal_memcpy(leaveReq.extAddr,NLME_GetExtAddr(),Z_EXTADDR_LEN);
leaveReq.removeChildren = 0;
leaveReq.rejoin = 0;
leaveReq.silent = 0;
NLME_LeaveReq( &leaveReq );
为什么调用这个函数后,有时候设备重启,有时候设备不重启。
osal_memset((uint8 *)&leaveReq,0,sizeof(NLME_LeaveReq_t));
osal_memcpy(leaveReq.extAddr,NLME_GetExtAddr(),Z_EXTADDR_LEN);
leaveReq.removeChildren = 0;
leaveReq.rejoin = 0;
leaveReq.silent = 0;
NLME_LeaveReq( &leaveReq );
为什么调用这个函数后,有时候设备重启,有时候设备不重启。
设备重启后,有时候会提示PARENT_LOST ,有时候不提示PARENT_LOST。
问题3:
当提示PARENT_LOST后,我调用了bdb_ZedAttemptRecoverNwk();
为什么调用ZedAttemptRecoverNwk()函数后,不能再次收到BDB的回调函数事件 , 我看手册是调用ZedAttemptRecoverNwk()后,不论是否入网成功,BDB的回调函数都应该被执行,来通知用户程序是否入网成功。
下图是入网时候多次association的抓包截图:
VV:
问题一,协调器在回复Associate Response以后,协调器有回复Transport Key没有解析出来的,请确认两边的Trust Center Link Key是否一样?
为什么要把zgApsAllowR19Sec设置成TRUE
问题二,如果终端节点要让自己离网,请把extAddr设置成NULL
问题三,在ZDO_STATE_CHANGE里面有收到状态改变么?
请问你们现在开发什么产品,是否需要过zb3.0的认证?