天天看点

Matter理论介绍-通用-1-03:桥接器-数据结构一、简介二、桥接器的数据结构【参考目录】

【 源码、 文档、 软件、 硬件、 技术交流、 技术支持, 入口见 文末】 【所有相关 IDE、 SDK和 例程源码均可从群文件 免费获取, 免安装, 解压即用】

持续更新中,欢迎关注!

一、简介

Bridge(桥接器)存在的意义在于让Matter生态系统能够兼容非Matter的设备,从而达到用户可以同时使用原本就存在的智能设备和新的Matter设备。

下图从逻辑上简单表明了桥接设备实现的功能:非matter设备被视Matter生态系统中桥接设备上的一个节点。 Matter节点既可以和Matter设备通信,同时也可以和桥接器上的Bridged Device(桥接设备)节点进行通信(网桥设备需要实现两种协议之间的转换)。

Matter理论介绍-通用-1-03:桥接器-数据结构一、简介二、桥接器的数据结构【参考目录】

接下来说明如何基于数据模型的概念认识桥接设备。

二、桥接器的数据结构

当桥接器成功入网后,其被Matter生态系统视为至少一个节点。在这个节点中必须包含以下信息。

  1. 包含并公开一组对应非Matter协议的设备的端点。
  2. 包含并公开一个设备类型为 Aggregator 的端点,该端点中Descriptor cluster包含PartsList attribute属性,PartsList attribute中包含了所有的非Matter协议设备的端点信息。
  3. 每个桥接设备端点都与 Aggregator 端点中的PartsList属性相对应。并且桥接设备端点上的Descriptor cluster提供了关于桥接设备的特定信息,比如设备类型等。
Matter理论介绍-通用-1-03:桥接器-数据结构一、简介二、桥接器的数据结构【参考目录】

当一个桥接器需要桥接多种技术/逻辑分组的情况下,可以在桥接器的数据结构中进行对应的分层与集合,来区分不同的桥接技术以及他们分别对应的设备,并且每一个分层都有自己的Aggregator 的端点来表示相关信息。

Matter理论介绍-通用-1-03:桥接器-数据结构一、简介二、桥接器的数据结构【参考目录】

上面两幅图的桥接设备都使一样的,唯一的不同点在于分类方法。

2.1 桥接器的拓扑或逻辑分组

桥接器需要包含桥接设备的拓扑或者逻辑分组信息。假设桥接器包含了50盏灯却不包含这些灯的逻辑分组或者命名信息,那么用户在控制器上只能看见一个由50盏灯组成的列表,而不知道这些灯在那间屋子里,或起到什么功能,这显然是不能接受的。

如果桥接器包含了拓扑或逻辑分组信息,那么这些信息会在Aggregator 端点的ActionList cluster的EndpointLists attribute中进行公开,而ActionList attribute在没有动作时为空。桥接设备可以有选择性地向Matter生态系统公开部分或者全部拓扑信息。

以下图片展示了包含拓扑或逻辑分组信息的桥接器。需要注意的是除此之外还有组合桥接设备的组合端点情况(EP24,25,26),称EP24为根端点,EP25、26为叶端点。并且可以看到EP 25,26被列在EP 24的PartsList中,这表明它们继承了EP24的设备类型和基本信息。

Matter理论介绍-通用-1-03:桥接器-数据结构一、简介二、桥接器的数据结构【参考目录】

此时用户在控制器上所看到的界面就是明确有序的。

Matter理论介绍-通用-1-03:桥接器-数据结构一、简介二、桥接器的数据结构【参考目录】

2.2 桥接器的原生matter功能

桥接器除了具有桥接功能外完全还可以具有原生Matter功能,其原生Matter功能也抽象为一个端点(endpoint)存在于网桥的数据结构之中,但不同的是对应的EP数据结构有所不同(例如没有Bridged Node设备类型等)。

而且Aggregator 端点的ActionList cluster的EndpointLists attribute属性中也不会包含原生Matter功能对应的端点。

下图黄色部分代表Matter原生功能。

Matter理论介绍-通用-1-03:桥接器-数据结构一、简介二、桥接器的数据结构【参考目录】

2.3 桥接设备相关信息

桥接器上的每一个由桥接设备抽象来的端点都应该包含一个名为Bridged Device Basic Information 的cluster来体现这个桥接设备基本信息。

而桥接器本身应该包含一个Descriptor cluster ,其中的PartsList属性包含所有的由桥接设备抽象而来的端点,并且每个端点的设备类型属性后都要加上Bridged Node。(上面的图中都表现出了这一点。)

当一个桥接设备被抽象为多个端点时,此时端点的Bridged Device Basic Information 和桥接器的Descriptor cluster都应该只针对这一组端点的根端点。(如图43、EP24所示)

当桥接设备包含电源并且桥接器能够获得有关电源状态的信息时,桥接设备对应的端点上应该包含Power Source Configuration cluster 和 Power Source cluster来展示相关信息。(如图43、EP23所示)

还有两种特殊情况需要说明:

  1. 当桥接设备被抽象为多个端点,并且该设备仅包含一个电源,则Power Source Configuration cluster应该出现在根端点处,而Power Source cluster出现在对应包含电源的设备端点上。
  2. 当桥接设备含有多个电源时,每一个电源都要由相应的Power Source cluster来表示其信息,并出现在包含电源的设备对应端点上(每个端点最多出现一个);而Power Source Configuration cluster应该出现在这组端点的根端点上,里面包含了这个桥接设备所有含有Power Source cluster的端点号。

当桥接设备不包含电源或者电源信息对桥接器不可见的情况下,桥接设备的端点不包含Power Source Configuration cluster和Power Source cluster。

2.4 桥接设备功能的Clusters(设备类型)

对于每个桥接设备,桥接器应将其相对应的Matter设备类型的所需的Cluster都展示出来。

这样就使得Matter设备可以识别桥接设备的设备类型并与它的Cluster进行交互,就像是与相应类型的原生Matter设备的交互那样。

【参考目录】

  • CSA-Matter协议官方文档

(注:任何相关问题,欢迎在文末技术交流QQ群中交流讨论。)

Matter理论介绍-通用-1-03:桥接器-数据结构一、简介二、桥接器的数据结构【参考目录】

持续更新中,欢迎关注!

【所有相关 IDE、 SDK和 例程源码均可从群文件 免费获取, 免安装, 解压即用】 【 源码、 文档、 软件、 硬件、 技术交流、 技术支持, 入口见 文末】

Matter理论介绍-通用-1-03:桥接器-数据结构一、简介二、桥接器的数据结构【参考目录】

继续阅读