我来回答你提到的问题:
1.首先你的网络如果是tree/cluster tree的话,网络中的Router是不能动态路由的,所以如果某个router死掉的话,这条路经就会断掉。所以tree型网络直适合比较简单的网络,同时对网络的稳定性很高。在实际的网络中,mesh网络是必较多见的。mesh网络是支持动态路由的。如果某个router死掉的话,在网络层会起用route repair这个功能,去寻找其他的路由途径。这个过程,是需要一个路由算法来完成的,比如说通过link quality来决定。。。
2.每个device在出厂前,都会有一个64位的硬件地址(IEEE地址)。所以如果你想知道一个DEVICE的16位的地址的话,你可以调用NLME_GetshortAddr(),相反你可以调用NLME_GetExtAddr().你可以参照z-stack的开发文档说明。
3.在一个网络中,首先有coordinator起来建立网络,然后其他的devices申请加入。这个网络的拓扑结构是由每个devices的location决定的。如果是tree网络的话,网络的拓扑是定好的。但如果是mesh的网络,这个网络会根据这个网络中devices的变化会动态改变的。当然你如果用了NV_RESTORE的话,你的信息就会存下来。
4。如果你用了NV_RESTORE的话,你可以在网络重新起来的时候,去掉原来的信息。在SARD板子上,是按住SW3的同时,再POWER ON. Route repair是在网络层完成的工作,应用层是不用去管的,只要你启用了mesh功能,就可以了。 |