本文適用範圍
22.1~
問題/功能描述
如何控制輸出synergy的調試信息
實現方案
在前面介紹了如何開控制啟synergy的調試信息,本文將介紹進一步細分控制log信息的輸出。
在默認開啟後整個模塊都在一個等級下列印,若設置等級較低,那將會不停輸出信息,實際每次調試通常關注的信息是很小範圍的,多數都是無效信息。那麼就需要下面介紹的如何區分列印。
- 確認CSR_LOG_ENABLE打開,配置輸出等級
- 確認CSR_LOG_ENABLE_REGISTRATION定義打開
在確定開啟後,synergy初始化各個子任務時會使用CSR_LOG_TEXT_REGISTER接口將task註冊到log服務中去,默認輸出等級設置為LOG_INFO。信息都保存在全局數組變量g_log_registrations中,由於子任務初始化順序已經固定,所以在該數組中每個模塊對應序列也是固定。
註冊函數CsrLogTextRegister2
3.輸出函數SynergyLogPrint,可以看到在輸出前會判斷當前配置的輸出等級和log使用輸出等級的比較,若配置的等級高於當前的等級則會輸出,否則就丟棄
4.Pydbg接口控制方式
apps1.fw.gbl.g_log_registrations[0].logLevel.value=5
value取值依然是0到5,日誌信息依次增多。這樣在調試狀態可以實時控制
綜上,我們可以配合設置將默認等級拉低,將需要的log拉高這樣輸出信息更有針對性,也讓工作更高效。
常見問題
1.目前支持的藍牙標準是多少
目前支持到5.3
2.SynergyLogPrint函數MDE中看不到實現?
源文件沒有加載到工程中,所以看不到
3.synergy中子任務按什麼順序註冊
按照枚舉類型SYNERGY_TASK_ID_T順序註冊
4.synergy debug受應用層log輸出設定控制嗎
兩個模塊是獨立的互不干擾
5.有沒有官方文檔介紹說明
有的可以參考文檔80_13827_1,80-34461-1
評論
一路向北
8 個月前