在官方文档里没有找到关于ZBHCI_CMD_GET_CHILD_NODES_REQ的说明,看了sdk里的相关代码,貌似是要传一个startIndex作为参数(payload); 另外官方文档中有关于ZBHCI_CMD_NODES_JOINED_GET_REQ的说明,这个看上去跟ZBHCI_CMD_GET_CHILD_NODES_REQ很像。 请问ZBHCI_CMD_GET_CHILD_NODES_REQ和ZBHCI_CMD_NODES_JOINED_GET_REQ是有什么区别吗?
No related topics |
你好,
两者有轻微的不同,ZBHCI_CMD_GET_CHILD_NODES_REQ获取是child node(该节点的子节点,对于zc/zr有效)信息;ZBHCI_CMD_NODES_JOINED_GET_REQ是获取所有入网节点信息(仅对于zc节点有效)。
谢谢你的回复!
在zigbee SDK中处理命令ZBHCI_CMD_NODES_JOINED_GET_REQ的时候,里面调用到这个函数:ss_nodeMacAddrFromdevKeyPair()
函数的原型和参数说明如下:
/*
* @brief get the MAC address form key pair table so as to get the information of the node which have joined the network
*
* @param start_idx the index of the key pair table
*
* @param num the count of the node want to be read out
*
* @param *validNum the valid count will be read out
*
* @param nodeMacAddrList the node MAC address list
*
* */
u16 ss_nodeMacAddrFromdevKeyPair(u16 start_idx, u8 num, u8 *validNum, addrExt_t *nodeMacAddrList);
这里面的key pair table是指什么东西?可以介绍一下吗? 如果是在协调器上获取入网设备列表的话,这里的start_idx应该传什么值?
每个已经入网的节点对应密钥信息和该节点mac地址绑定,所以有个表将他们做记录,start_idx传0即可,从第一个开始查找。
我传了start_idx=0,然后响应包中返回了3个终端设备的信息(含IEEE地址和短地址),其中有2个设备的短地址是无效地址0xFFFE(可能是这两个设备曾加入过此网络,然后又不在了?又或者是加到别的网络了?)