Topic

FAQ
Login Register
关于telink zigbee SDK中的消息类型ZBHCI_CMD_GET_CHILD_NODES_REQ的疑问
Feb 24, 2023 11:44

/

A

/A

在官方文档里没有找到关于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是有什么区别吗?

4 replies
TL_Soyo Feb 24, 2023 14:04
0
/A

你好,

  两者有轻微的不同,ZBHCI_CMD_GET_CHILD_NODES_REQ获取是child node(该节点的子节点,对于zc/zr有效)信息;ZBHCI_CMD_NODES_JOINED_GET_REQ是获取所有入网节点信息(仅对于zc节点有效)。

yingjie420 [Author] Feb 25, 2023 11:12
0
/A

谢谢你的回复!


在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应该传什么值?





TL_Soyo Feb 27, 2023 13:48
0
/A

每个已经入网的节点对应密钥信息和该节点mac地址绑定,所以有个表将他们做记录,start_idx传0即可,从第一个开始查找。



yingjie420 [Author] Feb 27, 2023 17:34
0
/A

我传了start_idx=0,然后响应包中返回了3个终端设备的信息(含IEEE地址和短地址),其中有2个设备的短地址是无效地址0xFFFE(可能是这两个设备曾加入过此网络,然后又不在了?又或者是加到别的网络了?)