藍牙協議棧更新連接參數

     本人對藍牙協議棧也算是個小白,以前都沒有接觸過藍牙協議棧這塊,來到現公司後還是接觸,有些客戶的藍牙協議棧在遙控器向主機端發送連接參數更新請求後被拒絕,或者更新成功後發給遙控的又是另外一個數值,之前老大讓我改了三個宏定義就可以,BTM_BLE_CONN_INT_MIN_DEF設成6,BTM_BLE_CONN_INT_MAX_DEF設成40,BTM_BLE_CONN_INT_MIN_LIMIT設成0x0006.之前一直不知道爲什麼這麼改下就可以了。後面碰到一個問題,終於找到連接參數是怎麼更新的,當然這裏只是一部分。有大神看到可以幫忙補充。

        因爲遙控器發給主機的的更新連接參數的packet是acl data,所以必定會在l2c_rcv_acl_data處理該patcket。該函數是專門處理ACL 類型的數據包的。根據解析出來的rcv_cid爲L2CAP_BLE_SIGNALLING_CID,即可找到具體的處理函數l2cble_process_sig_cmd,在該函數中會去解析出packet包中的min_interval,max_interval,latency以及timeout。然後給t_l2c_linkcb這個結構中對應的值更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章