藍牙|軟體 QCC51xx系列開發之Synergy 使用之電池電量顯示

本文適用範圍

    ADK22.3~

 

問題/功能描述

    使用新版本後,如何實現手機端藍牙耳機經典柱狀電量顯示功能?


實現方案

前面陸續介紹synergy Bluetooth相關知識,本文就是展示如何具體在此版本上解決實際問題。

問題處理邏輯和之前做法一樣。在hfp profile建立配對連接過程中,在合適的地方發送支持電量功能顯示通知給到應用層。應用層接受後就創建循環發送電量的任務。難點在於代碼結構改變,修改位置、使用函數都需要重新定位查找。

 

  1. 查找接口函數用於發送AT指令

               在INC目錄下文件hfp profile對應頭文件中synergy\inc\hf_lib.h,找到HfAtCmdReqSend宏定義,命名理解就是我們要找的接口。往下跟蹤實際使用函數實現也印證了猜測。


     

     2.查找合適位置注入支持電量顯示功能代碼

               在bt目錄下hf profile相關源碼路徑中的查看找到和AT指令處理相關文件,這裡需要結合調試和log信息找到恰當函數

                synergy\bt\profile_managers\handsfree\hf\code\csr_bt_hf_at_inter.c

             
                

              具體添加位置可以詳見下面截圖,這裡不再展示代碼。

 





     3.應用層查找位置添加at指令發送代碼

               找到原始發送電量函數位置,藉助默認框架在同時將本指令一同發出即可

               adk\src\domains\bt\profiles\hfp_profile\hfp_profile_battery_level.c

               

FAQ | 常見問題

1.還可以使用老軟體藍牙協議代碼嗎?

          目前代碼是可以的。它不支持LE audio,後續也不會升級,所以不推薦使用

2.有沒有官方文檔介紹說明?

         有的可以參考文檔80_13827_1,80-34461-1

3.可以支持哪些profile?

         基本statck已經實現了據大部分的profile,不過應用層只有和耳機相關的幾個profile的使用代碼。如果用在車載或其他產品需要自行實現應用層

4.協議使用有什麼額外費用嗎?

         沒有,代碼開放免費使用

5.以前藍牙相關代碼還可以移植過來嗎?

         應用層的還有借鑑作用,底層的代碼都要推倒重來。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論