TI论坛
直播中

张丽

7年用户 1500经验值
私信 关注
[问答]

z-stack3.0协调器入网还可以和协调器配对成功吗?

   我想请问下我用一个协调器上电时,在应用层初始化函数中调用函数bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_FORMAtiON);创建一个网络,然后接着调用NLME_PermitJoiningRequest(0);禁止入网,为什么终端调用函数bdb_StartCommissioning(0x02);申请入网还可以和协调器配对成功????

回帖(4)

张丽

2020-4-28 09:48:33
有没有什么办法可以创建网络后,立即禁止入网,只有按键按下时才允许入网???麻烦了
举报

李燕

2020-4-28 10:07:53
引用: 四哥201311 发表于 2020-4-28 17:55
有没有什么办法可以创建网络后,立即禁止入网,只有按键按下时才允许入网???麻烦了

按理说协调器调用NLME_PermitJoiningRequest(0)之后的确是进制别人加入自己创建的网络,但是为什么还可以加入呢?
举报

张丽

2020-4-28 10:35:27
 我已经找到这个问题在哪了,当协调器调用函数bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_FORMATION)创建一个网络成功后,协议栈会在函数zclSampleLight_ProcessCommissioningStatus()中报告网络创建成功,然后会调用函数bdb_StartCommissioning(BDB_COMMISSIONING_MODE_NWK_STEERING | bdbCommissioningModeMsg->bdbRemainingCommissioningModes),这个函数中的BDB_COMMISSIONING_MODE_NWK_STEERING 参数会导致协调器开启允许入网,允许入网时间为宏定义BDBC_MIN_COMMISSIONING_TIME。所以如果协调器只想单纯的创建一个网络,但是并不想立即允许入网,则将上面那个函数中的BDB_COMMISSIONING_MODE_NWK_STEERING 这个参数删除即可。
举报

李燕

2020-4-28 10:50:49
这个bdb消息处理函数的确是做了steering这件事,也就是判断是否已经在网络上,如果在就广播"允许入网"
举报

更多回帖

发帖
×
20
完善资料,
赚取积分