藍牙 | 軟體:gatt服務建置

關鍵字 :QualcommADKGATTBLE

新的ADK採用了Synergy庫來管理藍牙協議,因此之前自訂的GATT服務庫需要進行一些調整,以適配當前的Synergy架構。接下來,小編將帶大家重新搭建一個GATT服務,本文參考了Device Information Service的程式碼。

 

1. 文件結構調整

將GATT的庫檔案放置在Synergy的資料夾下,整體檔案結構如下所示:

 

這裡可以看到,Server 的標頭檔被安排到獨立的資料夾中,這與之前的檔案結構有所不同。

 

2. 更新工程配置

由於Synergy是獨立的工程,因此需要將新增的檔案加入到source_lists.xml中,這樣其他工程才能調用庫的介面。

 

3. Task 機制變化

在Synergy架構下,Task機制發生了顯著變化。初始化時需要使用Synergy的Task表示方式來處理訊息。

以下是 CSR_BT_BIU_SERVER_IFACEQUEUE 相關聲明:

此外,SYNERGY_TASK_ID_T 的列舉列表需要特別注意。雖然 ID 可以隨意定義,但其對應的初始化和處理函數的位置必須與所在位置保持一致。例如,如果 ID 被放置在 DIS Server 下,那麼在 SynergyTaskInit 表中也需要在 DIS Server 下進行初始化。

同時在 SynergyTaskHandler 表中也需要保持一致。

4. 應用層呼叫

最後,在應用層添加對庫的調用和處理即可實現自訂的GATT服務。相關檔案位置如下圖所示:

至此,您就可以成功新增自己的GATT服務了。如果需要參考程式碼或相關資料,可以聯繫FAE獲取支援。

 

以上是本期部落格文章的全部內容,如有疑問請在文章下方留言評論,或者聯繫我們,我們會盡量安排處理喔 (o´ω`o)و。感謝大家的瀏覽,我們下期再見!

 

 

FAQ 1:如何調試自訂的GATT服務?


A1:可以透過nRF Connect工具,同時結合ADK的日誌輸出進行調試。

 

常見問題 2:Synergy 庫的主要優勢是什麼?
A2:Synergy 庫提供了更高效的藍牙協議管理機制,同時支援模組化開發,方便擴展與維護。

 

常見問題 3:如何處理Synergy架構下的Task訊息?
A3:SynergyTaskHandler 表中放入的函數同時也是消息處理函數。

 

常見問題 4:是否可以同時使用多個自訂 GATT 服務?
A4:可以,您可以透過在source_lists.xml中新增多個服務檔案,並在應用層進行調用。

 

FAQ 5:Synergy 庫是否支援其他藍牙協議?
A6:是的,Synergy庫支援多種藍牙協議,包括BLE、BR/EDR等。

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

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

參考來源

:

評論