我的协调器用Zstack mesh协议栈,终端用Zstack 3.0协议栈,请问可以组网么?是否可以通过修改协议栈,让终端入网?
Viki Shi:
Zstack mesh是单独的profile,zstack 3.0把很多profile集合到一起了。修改后可以组网,改动的地方比较多,可以看一下这边的zstack 3.0新特征:
www.ti.com/…/swra615a.pdf
user4711142:
回复 Viki Shi:
用Zstack 3.0.2发现组网特别不稳定,我想自定义组网部分大代码,包括丢失父节点、重启终端、重启协调器,交换秘钥等等可能造成重新组网的代码。请问有没有相关机制的详细讲解?
user4711142:
回复 Viki Shi:
现在我的终端重启后,无法入网,这个是抓包好像终端只发送了 Data Reauest
Viki Shi:
回复 user4711142:
你是用mesh跟Zstack 3.0.2组网?改动了哪些地方?
user4711142:
回复 Viki Shi:
没有,两个设备都是ZSTack3.02,组网不稳定,终端重启后,无法重新入网。
Zstack mesh组网稳定,所以想自己添加或修改Zstack 3.0.2组网部分的代码,让其稳定
user4711142:
回复 Viki Shi:
重启无法入网.rar这个是抓包文件,能否帮我看一下为什么终端重启后,不能组网
Viki Shi:
回复 user4711142:
跟这边的问题类似:e2echina.ti.com/…/191514
在协调器端添加bdb_StartCommissioning试试
user4711142:
回复 Viki Shi:
添加了,终端重启前两次可以入网,之后就不能入网了,除非复位协调器。if(events & MYAPP_PER_JOIN_EVT) //循环开启入网窗口{bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_FORMATION);//NLME_PermitJoiningRequest(254);//允许一直入网。10秒osal_start_timerEx(zclGenericApp_TaskID,MYAPP_PER_JOIN_EVT,10000); //3.3s后产生允许入网事件return ( events ^ MYAPP_PER_JOIN_EVT );}
我在协调器端添加了
bdb_setTCRequireKeyExchange(FALSE); //不进行TCLK交换
Viki Shi:
回复 user4711142:
我用CC26X2板子测了一下,zc_doorlock/zed_doorlock,每次都可以rejoin,抓包见附件
New folder.7z