今天這篇文章主要想結合 NXP K32W061 Matter 工程跟大家分享學習 Matter 核心規範中的 Data Model 。下圖是 Matter 核心規範中給出的分層結構,主要分為7 個部分,Data Model 作為其中之一,它主要定義了 Matter 中設備的數據模型,不同的設備之間通過這些定義進行交互。
(圖片來源 Matter-1.2-Core-Specification.pdf)
Matter Data Model 中定義了設備中包含 Node,每個 Node 中可能包含了多個 Endpoint,Endpoint 中可能啟用了多個 Cluster,每個 Cluster 則包含了對應的 Attribute,Command 等等。以下將對應 K32W061 Lighting Example 分別介紹。
- Node
Node 即節點,節點在 Matter 中是一個可尋址的資源,且該資源在同一 Matter 網絡中具有唯一地址,在實際場景中,一個支持 Matter 的燈是一個 Node,手機上的 APP 作為 Matter Controller 是一個 Node,它們都有唯一的 Node ID。Matter 中支持一個實體設備擁有多個 Node。
- Endpoint
Endpoint 即端點,每一個 Node 都包含一個或者多個 Endpoint,Endpoint 可以描述為一個邏輯實例,最常見的例子就是一個 Matter 的智能插座,在智能插座這個 Node 中,它有四個插位,每個插位就是一個 Endpoint,這樣可以分別控制不同的插位開關。在K32W061 Lighting Example 中可以看到,K32W061 Lighting 有兩個 Endpoint,其中 Root Endpoint 這是每一個設備都需要有的。
- Cluster
Cluster 是具體的功能集合,在 Matter 規範中專門有《Matter Application Cluster Specification》用於描述講解 Matter 中包含的各種 Cluster ,例如在 K32W061 Lighting Example中用於控制燈亮滅的 Cluster On/Off,對於不同的實體設備,需要啟用的 Cluster 在Matter 中都有詳細的定義,例如 Color Temperature Light需要用到 Cluster Color Control,Contact Sensor 需要用到 Cluster Boolean State等等,詳情可參見 《Matter Device Library Specification》。
- Attributes
Attributes 則是對應了 Cluster 中具體的屬性,例如前面提到 K32W061 Lighting Example 用到了 On/Off 這個 Cluster,在這個 Cluster 中有一個比較重要的屬性就叫 OnOff,類型為 bool,該屬性的值對應了燈的 On 或者 Off 狀態,當手機 APP Matter Controller 下發控制指令最終則需要改變該屬性的值,同樣的,在本地改變燈的狀態時,通過改變該屬性值,以讓 APP 同步燈的狀態。
- Commands
Commands 是具體的控制命令,例如下圖截取了 K32W061 Lighting Example 中 Cluster On/Off 支持的命令,例如 On、Off、Toggle 等等,命令具有方向,通常由 Client 到 Server,或者 Server 到 Client,兩者都是 Cluster 的接口。
以上就是本文章的全部內容,希望對大家有所幫助,對文章內容有錯誤或者疑問的也希望大家不吝賜教,共同探討學習。
參考資料:
Matter-1.2-Core-Specification
Matter-1.2-Device-Library-Specification
Matter-1.2-Application-Cluster-Specification
Guidance-Document-to-Matter-1.1-in-Chinese
評論