如果provisioner需要配置多个node,每个node的元素个数都不一样,provisioner如何为每个元素分配地址呢。
例如:网络由三个节点组成,节点A有1个元素,节点B有2个元素,节点C由2个元素,节点A的地址为0x0001,节点B的第一个元素如果为0x0002的话,第二个元素必须为0x0003,节点C同理。provisioner在Provisioning Data配网的步骤只发送了一个Unicast Address地址,节点B有2个元素,第二个元素地址是如何分配的? 我看nordic的 light_switch例子配网结束后就立马发送NODE_SETUP_CONFIG_COMPOSITION_GET操作码,这个操作码可以获取节点的元素数量,但并没有看到provisioner使用node响应的CONFIG_OPCODE_COMPOSITION_DATA_STATUS数据,只是把它复制到一个结构体里。
/* Save composition data for later use */
if (p_event->opcode == CONFIG_OPCODE_COMPOSITION_DATA_STATUS)
{
m_node_composition.len = length;
m_node_composition.composition.page_number = p_event->p_msg->composition_data_status.page_number;
memcpy(m_node_composition.composition.data, p_event->p_msg->composition_data_status.data, length - 1);
}