本文基本內容來自幾位大牛的博客,順便加上了個人見解,記錄於此是怕時間一久忘記。
Mesh走的是Becon廣播交互,本身不連接,通過互相掃描和廣播來交互。
低功耗節點(LPN)是Mesh裏面最基礎的節點,類似於BLE設備;friend節點用來存儲發往低功耗節點(LPN)的消息和安全更新,一般沒有功耗限制;中繼節點用來傳遞消息;代理節點處理gatt和mesh網絡之間的消息。
元素
每個節點有一個或多個元素(必須有一個主元素),例如,一個Mesh燈節點,燈的開關(主元素),燈的顏色(其它元素1),燈的亮度(其它元素2)。節點中的每個元素都有一個唯一的地址,稱爲單播地址(unicast address),使每個元素都有址可尋,例如在Mesh底層代碼裏控制燈開關、顏色、亮度都是分配了不同地址來處理。
一個元素裏最少擁有一個Model,一個Model裏面可以有多個元素狀態(元素和元素狀態是兩回事,例如燈的開關這個功能是元素,燈打開或者燈關閉是元素狀態,而model就是這個定義了這個元素狀態可以被改變還是只可以讀)。
Model
model 有三種類型:control 、server 和client ,這裏面control包含了server和client ,model相當於一個節點的功能;
Server model: 定義了狀態states, 狀態轉換 state transitions, 狀態綁定state bindings 和包含了哪些消息,當然也同樣定義了與這些消息,狀態,狀態轉換相關的行爲Behaviors。
Control model:具備client model的功能與其他的server model進行交互,同時也可以有server model功能與其他client model進行交互。內置了邏輯控制層(一套規則和行爲在各個與之連接的模型中進行協調交互)。
Client model: 沒有定義任何的狀態States,但是它定義了要收發哪些消息。定義這些消息是爲了GET,SET或者獲取在Server models裏面定義的狀態。
比如,定義一個燈的開關狀態,那麼擁有這個狀態(可以被開關)的叫做server model,去查詢、接收或者設置這個狀態的叫做client model,同時擁有這兩個功能的叫做control model。一個節點可以有多個model,就相當於BLE裏面的服務(profile)。
(原文地址:https://blog.csdn.net/JaLLs/article/details/88864967)
Sig Mesh
就是藍牙技術聯盟統一推出的Mesh公有協議(基於CSR),Sig Mesh有三種類型地址,唯一地址(元素使用的unicast address)、虛擬地址、組地址,所以一般是用唯一地址來判斷是哪個設備。