ZigBee 3.0 《Base-Device-Behavior-Specification》--Network steering(不在网)
来源:互联网 发布:3d网络渲染 编辑:程序博客网 时间:2024/06/18 10:16
8.3 Network steering procedure for a node not on a network
设备还没加网情况下执行Network steering:尝试寻找开放的网络,并选择一个合适的网络加入,然后设备已认证并且获取到了网络密钥,最后,如果是TC网络,通过TC更换自己预定义的link key。vDoPrimaryScan :扫描主要信道还是次要信道,vScanChannels :扫描的通道
1.设置bdbCommissioningStatus= IN_PROGRESS ,vDoPrimaryScan =TRUE,vScanChannels=bdbPrimaryChannelSet ,如果bdbPrimaryChannelSetis = 0x00000000执行第12步
2.节点执行NLME-NETWORK-DISCOVERY.request 原语(附带参数:ScanChannels ,vScanChannels ,ScanDuration ),当网络层收到NLME-NETWORK-DISCOVERY.confirm 原语,指示发现网络的请求状态
3.如果NLME-NETWORK-DISCOVERY.confirm 原语不等于SUCCESS,表明信道扫网不成功,应该跳到12步
4.节点在扫到网络中选出permit joining 标志位为TRUE的开放网络,并决定加入哪个网络
5.如果扫描信道没有发现合适的网络,应该跳到步骤12
6.节点通过MAC association 加入到已找到的网络中,调用NLME-JOIN.request 原语(附带已选择网络的ExtendedPANId ,RejoinNetwor=0x00,
ScanChannels =0x00000000,ScanDuration =0x00,SecurityEnable =FALSE),当收到网络层的NLME-JOIN.confirm 原语,指示了用MAC association 请求加网的的状态。
7.如果NLME-JOIN.confirmprimitive 原语不等于SUCCESS,节点必须跳到步骤6,尝试加入下一个合适网络,有可能再次尝试加入那个网络,但重试次数一定不能大于bdbcMaxSameNetworkRetryAttempts 的次数,如果没有合适网络加入则跳到12步
8.如果NLME-JOIN.confirm primitive 原语等于SUCCESS,表明设备入网成功,节点需要最多等待apsSecurityTimeOutPeriod 毫秒来认证和获取网络密钥,注意网络密钥可能来自TC网络中的TC,使用默认的全局默认的TC link密钥或者安装码生成的预配置密钥,或者分布式网络中的分布式预配置密钥,节点应该根据网络秘钥的加密方式设置bdbNodeJoinLinkKeyType
9.如果节点在apsSecurityTimeOutPeriod期限内没有收到父节点发来的网络密钥,或在此期间内接收到了但不能解密,或者其他方式身份认证失败,节点必须复位网络参数并选择下一个合适的网络加入返回步骤6,可以重新尝试加入这个网络,但不能超过bdbcMaxSameNetworkRetryAttempts 次数,如果没有合适网络去加入了应该跳到12步
10.设置bdbNodeIsOnANetwork =TRUE并广播Device_annce ZDO 命令,如果apsTrustCenterAddress =0xffffffffffffffff ,跳到13步
11.设备需要执行请求新Link Key的流程,如果成功获取新的Link key,继续执行13步,否则设备发送leave request 并复位网络参数,然后设置setsbdbNodeIsOnANetwork=FALSE,bdbCommissioningStatus = TCLK_EX_FAILURE 。设备的网络层执行NLME-LEAVE.request 原语(附带参数:DeviceAddress = NULL,RemoveChildren=FALSE,Rejoin =FALSE),收到NLME-LEAVE.confirm 原语,指示了请求退网的状态,节点必须终止Network steering(不在网)的流程
12.如果vDoPrimaryScan =FALSE或者bdbSecondaryChannelSet =0x00000000 ,设备需要跳到16步,如果bdbSecondaryChannelSet不等于0x00000000 ,必须设置vDoPrimaryScan=FALSE,vScanChannels =bdbSecondaryChannelSet 并跳到步骤2
13.节点必须广播Mgmt_Permit_Joining_req ZDO命令(附带参数:PermitDuration =bdbcMinCommissioningTime ,TC_Significance =0x01),注意这将导致节点接收到这个命令后复位定时器,在此期间他们的permit joining 的标志位是有效的,从而延长时间进一步新节点的加入。
14.如果节点允许其他节点加入,必须将permit joining 的标志位置为有效的,调用NLME-PERMIT-JOINING.request 原语(附带参数:PermitDuration
=bdbcMinCommissioningTime ),当接收到网路层NLME-PERMIT- JOINING. confirm 原语,表明permit joining 有效状态
=bdbcMinCommissioningTime ),当接收到网路层NLME-PERMIT- JOINING. confirm 原语,表明permit joining 有效状态
15.设置bdbCommissioningStatus =SUCCESS,如果节点支持touchlink,那么设置aplFreeNwkAddrRangeBegin,aplFreeNwkAddrRangeEnd,aplFreeGroupID-RangeBegin和aplFreeGroupIDRangeEnd 为0(表示节点已用MAC association入网),节点必须终止Network steering(不在网)的流程
16.节点有可能重试使用厂商自定义的方式或者把bdbCommissioningStatus 设置为NO_NETWORK ,然后节点必须终止Network steering(不在网)的流程,如果还尝试使用厂商自定义的方式,那么bdbCommissioningStatus 和bdbNodeIsOnANetwork 在终止的时候做相应的更新
1 0
- ZigBee 3.0 《Base-Device-Behavior-Specification》--Network steering(不在网)
- ZigBee 3.0 《Base-Device-Behavior-Specification》--Network steering(在网)
- ZigBee 3.0 《Base-Device-Behavior-Specification》--Network formation
- ZigBee 3.0 《Base-Device-Behavior-Specification》--Initialization
- ZigBee 3.0 《Base-Device-Behavior-Specification》--Commissioning
- ZigBee 3.0 《Base-Device-Behavior-Specification》-- Reset
- ZigBee 3.0 《Base-Device-Behavior-Specification》-- Security
- ZigBee 3.0 《Base-Device-Behavior-Specification》--General requirements
- ZigBee 3.0 《Base-Device-Behavior-Specification》--Finding & binding target
- ZigBee 3.0 《Base-Device-Behavior-Specification》--Finding & binding initiator
- ZigBee 3.0 《Base-Device-Behavior-Specification》-- Environment variables
- 第三章 Combining Steering Behavior
- Understanding Steering Behavior: Collision Avoidace(行为控制之:碰撞躲避)
- base-kernel-device files
- Network-base concept
- Linux Standard Base Core Specification 3.2 (1)
- Linux Standard Base Core Specification 3.2(2)
- Linux Standard Base Core Specification 3.1
- RN 最容易crash的代码用法及应对措施(持续更新)
- logger日志模块
- Java设计模式——创建型
- 如何验证扇形面积公式?
- java 16进制字符串和byte数组的相互转换
- ZigBee 3.0 《Base-Device-Behavior-Specification》--Network steering(不在网)
- 锁屏上显示Activity
- 网页快速调用支付宝微信的常用功能
- 【原创】登录和注册页推荐 尊重原创 记得点赞
- libevent的使用
- 记一次配置SSL的问题
- mysql 中的时间 current_time,now(),sysdate()
- Java设计模式——结构型
- 2017年腾讯暑期实习一面经验(测试开发)