簡述
在兩個BLE裝置處于連接配接狀态下時,其連接配接參數是很重要的,比如其中的connInterval, connSlaveLatency, connSupervision Timeout。這些參數是可以在連接配接狀态下進行更新的。
一張消息圖
先來看一張表示Connection Update Procedure(連接配接更新過程)的消息圖:
說明
過程的發起者
從上面的消息圖看是master發起的,spec規定LL_CONECTION_UPDATE_REQ隻能master發起,slave不能發起。而slave可以通過L2CAP LE signaling channel或者用Connection Parameter Request發起要更新的parameters,而實際鍊路的連接配接參數的更新,還是要master來發起的。spec這裡說的有些拗口。
另外,如果master和slave都支援“Connection Parameters Request procedure”–“連接配接參數請求過程”的話,可以使用“Connection Parameters Request procedure”中描述的方式進行連接配接參數的更新!關于“Connection Parameters Request procedure”請參考這篇文章Link層控制之連接配接參數請求。
關于“連接配接更新過程”與“連接配接參數請求過程”關系
這兩者開始看是有點混淆的,還是因為需要支援不同的特性吧。
master需要修改更新連接配接參數時,可以先走“連接配接參數請求過程”,如果slave端不支援或者得到slave端的回複是拒絕時,master再走“連接配接更新過程”來發起連接配接參數更新了。
連接配接參數更新過程的時序
見下圖: