如何让子节点直接加入网络?
---直接方式
下面讲述如何一个子设备,在其潜在父节点预先指派的情况下加入网络
以这种方式加入网络的过程中,首先由父节点发起,下面根据建网的过程来讲述
父节点:
首先调用NLME-DIRECT-JOIN.requese 原语,在目的地址部分设置成要求加入网络设备的IEEE地址,当这个过程初始化后,在父节点的网络层要判断该子设备是否已经加入网络,如果在其关联表中找到了这个设备,将终止操作,并通过NLME-DIRECT-JOIN.confirm原语告诉应用层,设备已经加入网络,如果没有找到匹配的,在网络层,如果可能,将分配一个在这个网络中唯一的16位网络地址,将在其关联表中为这个子节点创建一个表项,如果不可以,NLME-DIRECT-JOIN.confirm原语告诉应用层表已满,如果可以,NLME-DIRECT-JOIN.confirm原语告诉应用层创建成功.注意,这个过程父节点设备是没有向空中发射信息,只是在自己设备内处理.但是,在子设备要求加入时,以孤节点方式实现,因为该过程和孤节点方式重新加入实现方式一样.
子节点:
子节点通过孤节点方式加入首先子设备调用NLME-JOIN.request原语,
并在RejoinNetwork项设置为真,然后网络层要求MAC执行孤节点扫描,对设置的信道,该步由MLME-SCAN.request初始化,通过MLME-SCN.comfirm原语返回结果.如果扫描成功,网络层将通过调用NLME-JOIN.confirm 原语告之应用层,加入成功.如果扫描没有成功,网络层将终止操作,并告之应用层,没有找到网络,该步通过调用NLME-JOIN.confirm 原语实现.子节点要求加入后,父节点将做如下处理在MAC层收到MLME-ORPHAN.indication原语,只有协调器或路由器将做进一步处理.当这一过程完成后,网络层将首先查找看其子设备是否为孤节点,如果有,将比较IEEE地址,如果匹配,将获取相应的16位网络地址,通过MAC层MLME-ORPHAN.reponse原语告之子设备.
请问TI大神&大侠板油们 这个原理在父节点和子节点如何用代码实现呢?
你解决了吗?我试了好像以孤节点加入的话加入的是上次设备加入的协调器网络,和发送这个DIRECT_JOIN的zigbee无关啊,