藍芽mesh組網實戰(朋友節點和低功耗節點篇)
朋友節點和低功耗節點可以說是藍芽mesh組網中的Feature了。
低功耗節點的低功耗,一部分要歸功於朋友節點,朋友節點可以說是包攬了低功耗節點的“接收”功能。就像“菜鳥驛站”和“收件人”,在資料包傳遞給與朋友節點相連的低功耗節點時,朋友節點會先代收(菜鳥驛站收到包裹),低功耗節點定時詢問朋友節點是否有資料,有則接收(收件人去取件),沒有就下次再說。這就給低功耗節點節省了功耗,不用時刻去抓取廣播層中的資料,檢視是否是發給自己的(收件人有自己的學習工作,不用不停地查詢是否有包裹)。若我魔改協議棧,我就是不想要朋友節點,我就是要賭其他節點發包的一瞬間,低功耗節點恰好開啟每分鐘、每小時乃至每天一次的資料接收狀態,那……所以ch582微控制器的藍芽mesh協議棧做了處理,當低功耗節點周圍有朋友節點可以支援它時,就會自動與朋友節點相連,之後才能進行收資料。每個朋友節點最多支援4個低功耗節點,預設開啟轉發功能。對於低功耗節點的傳送資料,低功耗節點就不用考慮對方是否有能力收到資料,配網成功後直接通過廣播層發出去就好了(甚至可以砍掉收資料功能,不用連線朋友節點就可以發資料,但是如肉夾饃不要饃一樣有點奇怪,不推薦這麼用)。
小貼士:①藍芽mesh網路中所有的資料包最終都通過BLE廣播承載層傳輸。配網流程和工作流程是分開的,朋友節點和低功耗節點都需要先行配網再工作。對於低功耗節點來說,比如說採集環境溫度是它的工作;對於朋友節點來說,支援低功耗節點的接收資料是它的本職工作,轉發資料是例程中預設開啟的“轉發”功能的兼職工作(可以在app_mesh_cfg.h中開啟或關閉相關功能,由於硬體限制,除了轉發功能外不建議複用其他功能);故低功耗節點在配網後發資料能夠不依賴朋友節點,直接發出去(反正是廣播,誰抓到包了誰就往外轉發至目標節點)。
-----------------------------------更多圖文介紹待更新-----------------------------------