zstack中父节点如何获取自己的子节点相关信息
如题;父节点如何知道有哪些子节点已经加入网络,如何区分出这些子节点分别是什么功能,支持哪些端口和服务等等
zigbee入网规则中,子节点加入网络会得到父节点分配的16位短地址,以此区分不同节点。
我其实想问,协调器如何知道网络中所有设备的16位短地址,他们分别注册了哪些endpoint,那些endpoint分别又支持哪些cluster,
你好,
协调器知道网络中设备的16地址,你有几种方法可以获得
1)每个节点入网的时候都会发出来Device Announce,这个消息是广播消息,那么协调器也可以收到的消息,你把对应的设备的地址保存下来就可以了。
2)通过ZDP_IEEEAddrReq来获得,具体做法在文档 C:\Texas Instruments\Z-Stack Home 1.2.0\Documents Method for Discovering Network Topology.pdf
3)通过ZDP_MgmtLqiReq,做法跟2)类似。
在知道节点的短地址以后,按照下面顺序
1)发送Node Descriptor Request, 在Node Descriptor Response里面,会获取关于zigbee设备层面的基本信息,包括节点类型,供电方式,哪个厂家的,工作在哪个信道,等等,具体可以看ZigBee Specification 和ZigBee Cluster Library
2)然后再发送Active Endpoints Request,在Active Endpoints Response里面,会获取关于节点支持哪些endpoint
3)然后针对每个Endpoint发送 Simple Descriptor Request,在Simple Descriptor Response里面,会获取这个endpoint下面支持的profile、 out cluster、in cluster等等,到此关于这个节点的基本的设备信息,应用信息,功能信息都获取到了!
暂时没有验证,应该可行
谢谢分享,很实用的功能