OpenHarmony 實戰開發——移植通信子系統

通信子系統目前涉及Wi-Fi和藍牙適配,廠商應當根據芯片自身情況進行適配。

移植指導

Wi-Fi編譯文件內容如下:

路徑:“foundation/communication/wifi_lite/BUILD.gn”

group("wifi") {deps = [ "$ohos_board_adapter_dir/hals/communication/wifi_lite/wifiservice:wifiservice" ]
}

從中可以看到廠商適配相關接口的.c文件存放目錄應為“$ohos_board_adapter_dir/hals/communication/wifi_lite/wifiservice”,且該目錄下BUILD.gn文件中的目標應為“wifiservice”。需要廠商適配的Wi-Fi接口見表1 、表2 和表3,藍牙接口見表4和表5。

表1 wifi_device.h

接口作用
EnableWifi啟用Wi-Fista模式。
DisableWifi禁用Wi-Fi?sta模式。
IsWifiActive檢查Wi-Fi?sta模式是否啟用。
Scan掃描熱點信息。
GetScanInfoList獲取所有掃描到的熱點列表。
AddDeviceConfig配置連接到的熱點信息。
GetDeviceConfigs獲取配置連接到的熱點信息。
RemoveDevice刪除指定的熱點配置信息。
ConnectTo接到指定的熱點。
Disconnect斷開Wi-Fi連接。
GetLinkedInfo獲取熱點連接信息。
RegisterWifiEvent為指定的Wi-Fi事件注冊回調。
UnRegisterWifiEvent取消注冊以前為指定Wi-Fi事件注冊的回調。
GetDeviceMacAddress獲取設備的MAC地址。
AdvanceScan根據指定參數啟動Wi-Fi掃描。

表2 wifi_hotspot_config.h

接口作用
SetBand設置該熱點的頻段。
GetBand獲取該熱點的頻段。

表3 wifi_hotspot.h

接口作用
EnableHotspot啟用Ap熱點模式。
DisableHotspot禁用Ap熱點模式。
SetHotspotConfig設置指定的熱點配置。
GetHotspotConfig獲取指定的熱點配置。
IsHotspotActive檢查Ap熱點模式是否啟用。
GetStationList獲取連接到此熱點的一系列STA。
GetSignalLevel獲取指定接收信號強度指示器(RSSI)和頻帶指示的信號電平。
DisassociateSta使用指定的MAC地址斷開與STA的連接。
AddTxPowerInfo將hotspot功率發送到beacon。

表4 ohos_bt_gatt.h

接口作用
InitBtStack初始化藍牙協議棧。
EnableBtStack使能藍牙協議棧。
DisableBtStack禁用藍牙協議棧。
SetDeviceName設置藍牙設備名稱。
BleSetAdvData設置廣播數據。
BleStartAdv開始廣播。
BleStartAdvEx傳入構建好的廣播數據,參數,開啟藍牙廣播。
BleStopAdv停止發送廣播。
BleUpdateAdv更新advertising參數。
BleSetSecurityIoCap設置藍牙的IO能力為NONE,配對方式為justworks。
BleSetSecurityAuthReq設置藍牙是否需要配對綁定。
BleGattSecurityRsp響應安全連接請求。
ReadBtMacAddr獲取設備MAC地址。
BleSetScanParameters設置掃描參數。
BleStartScan開始掃描。
BleStopScan停止掃描。
BleGattRegisterCallbacks注冊gap,GATT事件回調函數。

表5 ohos_bt_gatt_server.h

接口作用
BleGattsRegister使用指定的應用程序UUID注冊GATT服務器。
BleGattsUnRegister斷開GATT服務器與客戶端的連接。
BleGattsDisconnect斷開GATT服務器與客戶端的連接。
BleGattsAddService添加了一個服務。
BleGattsAddIncludedService將包含的服務添加到指定的服務。
BleGattsAddCharacteristic向指定的服務添加特征。
BleGattsAddDescriptor將描述符添加到指定的特征。
BleGattsStartService啟動一個服務。
BleGattsStopService停止服務。
BleGattsDeleteService刪除一個服務。
BleGattsClearServices清除所有服務。
BleGattsSendResponse向接收到讀取或寫入請求的客戶端發送響應。
BleGattsSendIndication設備側向APP發送藍牙數據。
BleGattsSetEncryption設置GATT連接的加密類型。
BleGattsRegisterCallbacks注冊GATT服務器回調。
BleGattsStartServiceEx根據傳入的服務列表,創建gatt服務。
BleGattsStopServiceEx傳入gatt服務句柄,停止gatt服務。

說明:
不同版本接口可能存在差異,需要根據當前版本的具體文件進行適配。

適配實例

  1. 在“config.json”中添加communication子系統。
    路徑:“vendor/MyVendorCompany/MyProduct/config.json”

    修改如下:

   { "subsystem": "communication", "components": [ { "component": "wifi_lite", "features":[] }] },
  1. 添加適配文件。

    在“vendor/MyVendorCompany/MyProduct/config.json”文件中,通常將配置“ohos_board_adapter_dir”配置為 “//vendor/MyVendorCompany/MyProduct/adapter”。

    在“ohos_board_adapter_dir”目錄下根據上述適配指導中提到的頭文件,適配Wi-Fi、藍牙接口。

為了能讓大家更好的學習鴻蒙(HarmonyOS NEXT)開發技術,這邊特意整理了《鴻蒙開發學習手冊》(共計890頁),希望對大家有所幫助:https://qr21.cn/FV7h05

《鴻蒙開發學習手冊》:

如何快速入門:https://qr21.cn/FV7h05

  1. 基本概念
  2. 構建第一個ArkTS應用
  3. ……

開發基礎知識:https://qr21.cn/FV7h05

  1. 應用基礎知識
  2. 配置文件
  3. 應用數據管理
  4. 應用安全管理
  5. 應用隱私保護
  6. 三方應用調用管控機制
  7. 資源分類與訪問
  8. 學習ArkTS語言
  9. ……

基于ArkTS 開發:https://qr21.cn/FV7h05

  1. Ability開發
  2. UI開發
  3. 公共事件與通知
  4. 窗口管理
  5. 媒體
  6. 安全
  7. 網絡與鏈接
  8. 電話服務
  9. 數據管理
  10. 后臺任務(Background Task)管理
  11. 設備管理
  12. 設備使用信息統計
  13. DFX
  14. 國際化開發
  15. 折疊屏系列
  16. ……

鴻蒙開發面試真題(含參考答案):https://qr18.cn/F781PH

鴻蒙開發面試大盤集篇(共計319頁):https://qr18.cn/F781PH

1.項目開發必備面試題
2.性能優化方向
3.架構方向
4.鴻蒙開發系統底層方向
5.鴻蒙音視頻開發方向
6.鴻蒙車載開發方向
7.鴻蒙南向開發方向

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/web/11638.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11638.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11638.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++基礎與深度解析 | 數組 | vector | string

文章目錄 一、數組1.一維數組2.多維數組 二、vector三、string 一、數組 1.一維數組 在C中,數組用于存儲具有相同類型和特定大小的元素集合。數組在內存中是連續存儲的,并且支持通過索引快速訪問元素。 數組的聲明: 數組的聲明指定了元素的…

前端人員如何理解進程和線程

進程和線程的概念: 進程和線程本質都是cpu工作過程的時間片。 進程可以理解為cpu在運行指令即加載保存上下文所要用的時間。也可以理解為一個應用程序運行的實例。 線程是進程中更小的單位,描述一段指令所需要的時間。 進程是資源分配的最小單位&#xf…

【數據結構】數組循環隊列的實現

隊列(Queue)是一種特殊的線性數據結構,它遵循FIFO(First In First Out,先入先出)的原則。隊列只允許在表的前端(front)進行刪除操作,而在表的后端(rear&#…

MySQL中導出CSV格式數據 | Java處理CSV數據

1. 導出不帶表頭的CSV數據 SELECT dataid, recordfilename INTO OUTFILE /tmp/uk_callcenter_event3.csv FIELDS TERMINATED BY , LINES TERMINATED BY \n FROM table_name WHERE createtime > 2024-03-27 22:00:00 AND createtime < 2024-04-29 23:59:59 AND timehou…

使用selenium控制已經打開的瀏覽器,應該如何實現。

要使用Selenium控制一個已經打開的瀏覽器實例&#xff0c;你可以通過以下步驟實現&#xff0c;這里以Google Chrome瀏覽器為例&#xff1a; 步驟 1: 啟動Chrome瀏覽器并啟用遠程調試 首先&#xff0c;你需要以遠程調試模式啟動Chrome瀏覽器。這可以通過在命令行中使用特定參數來…

python下載及安裝

1、python下載地址&#xff1a; Python Releases for Windows | Python.orgThe official home of the Python Programming Languagehttps://www.python.org/downloads/windows/ 2、python安裝 &#xff08;1&#xff09; 直接點擊下載后的可執行文件.exe &#xff08;2&…

Spring Boot項目怎么集成Gitee登錄

一、背景 現在的越來越多的項目&#xff0c;需要集成第三方系統進行登錄。今天我們以Spring Boot項目集成Gitee為例&#xff0c;演示一下怎么使用Oauth2協議&#xff0c;集成第三方系統登錄。 不了解oauth2的&#xff0c;可以看我之前的文章。Ouath2是怎么實現在第三方應用認…

MySQL創建儲存過程函數

DDL CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 學號,createDate datetime DEFAULT NULL COMMENT 創建時間,modifyDate datetime DEFAULT NULL COMMENT 修改時間,userName varchar(30) NOT NULL COMMENT 學生名稱,pwd varchar(36) DEFAULT NULL COMME…

代碼隨想錄算法訓練營第五十二天

今日效率低下&#xff0c;努力把題做完。做快一點&#xff01;&#xff01;&#xff01; 300.最長遞增子序列 class Solution { public:int lengthOfLIS(vector<int>& nums) {if (nums.size() 1) return 1;vector<int>dp(nums.size(),1);int result 0;for(i…

計算機畢業設計Python+Spark知識圖譜課程推薦系統 課程預測系統 課程大數據 課程數據分析 課程大屏 mooc慕課推薦系統 大數據畢業設計

1 緒 論 1.1 課題研究背景 在線教育學習平臺是學生用來進行校內或校外拓展課程學習的平臺&#xff0c;平臺需要具備在線視頻觀看&#xff0c;作業提交&#xff0c;形成性考核等功能。在學生學習的過程中&#xff0c;學校的管理者或負責教師需要了解學生的學習情況和學習狀態&…

Spring STOMP-發送消息

如果你想要從應用程序的任何地方向連接的客戶端發送消息&#xff0c;要怎么做&#xff1f;任何應用程序組件都可以向brokerChannel發送消息。要這樣做&#xff0c;最簡單方法是注入一個SimpMessagingTemplate并使用它來發送消息。通常&#xff0c;你會按類型注入它&#xff0c;…

WWW服務器搭建(2)——Apache服務器配置與管理

一、Apache簡介 1.1 關于Apache Apache HTTP Server&#xff08;簡稱Apache&#xff09;是Apache軟件基金會的一個開放源碼的Web服務器&#xff0c;可以在大多數計算機操作系統中運行&#xff0c;由于其跨平臺和安全性被廣泛使用&#xff0c;是最流行的Web服務器端軟件之一。…

01-02-5

1、單鏈表中按位置查找 a.原理 通過傳遞的位置&#xff0c;返回該位置對應的地址&#xff0c;放到主函數定義的指針變量中。 我們認為位置從&#xff1a;有數據的節點開始計數 即如下結構&#xff1a; 查找位置&#xff0c;就是返回該位置對應的空間地址。 b.代碼說明 Ⅰ…

H5嵌入原生----兼容安卓與ios

主要分UI展示&#xff0c;鍵盤&#xff0c;輸入框等等。解決bug最苦惱的問題不是沒有解決方案&#xff0c;而是你沒有找到真正的原因。再就是現象難以重現&#xff0c;每次都要發布代碼&#xff0c;然后到手機app中去測試&#xff0c;模擬。這些地方會耗費大量的精力。 一、UI…

【軟設】常見易錯題匯總

目錄 計算機系統基礎 程序語言基礎 數據結構 算法設計與分析 計算機網絡與信息安全 軟件工程基礎 開發方法&#xff08;結構化與面向對象&#xff09; 數據庫 操作系統 知識產權相關的法律法規 &#x1f92f;&#x1f92f;&#x1f92f;&#x1f92f;&#x1f92f;&#x1f9…

《系統架構設計師教程(第2版)》第10章-軟件架構的演化和維護-07-軟件架構維護

文章目錄 1. 軟件架構知識管理1.1 概念1.2 架構知識的獲取1.3 作用1.4 架構知識管理的現狀 2 軟件架構修改管理3 軟件架構版本管理4. 示例4.1 背景4.2 數據獲取4.3 數據計算4.4 結果分析4.4.1 圈復雜度 (CCN)4.4.2 扇入扇出度 (FFC)4.4.3 模塊間耦合度 (CBO)4.4.4 模塊的響應 (…

mysql group by 細節介紹

mysql中group by的用法是配合聚合函數&#xff0c;利用分組信息進行統計&#xff0c;語句如“select name,sum(id) from test group by name,number”。 先來看下表1&#xff0c;表名為test&#xff1a; 執行如下SQL語句&#xff1a; SELECT name FROM test GROUP BY name 你…

OFDM802.11a的FPGA實現(十四)data域的設計優化,擠掉axi協議傳輸中的氣泡

原文鏈接&#xff08;相關文章合集&#xff09;&#xff1a;OFDM 802.11a的xilinx FPGA實現 目錄 1.前言 2.data域的時序要求 3.Debug 1.前言 前面12篇文章詳細講述了&#xff0c;OFDM 802.11a發射部分data域的FPGA實現和驗證&#xff0c;今天對data域的設計做一個總結。在…

electron 多窗口 vuex/pinia 數據狀態同步簡易方案(利用 LocalStorage)

全局 stroe 添加 mutations 狀態同步方法 // 用于其他窗口同步 vuex 中的 DeviceTcpDataasyncDeviceTcpData(state: StateType, data: any) {state.deviceTcpData data},App.vue 里 onMounted(() > {console.log("App mounted");/*** vuex 多窗口 store 同步*//…

springboot306基于Java的民宿管理系統(源碼+包運行+配套LW+技術指導)

項目描述 臨近學期結束&#xff0c;開始畢業設計制作&#xff0c;你還在做java程序網絡編程&#xff0c;期末作業&#xff0c;老師的作業要求覺的困難嗎?不知道畢業設計該怎么辦?網頁功能的數量是否太多?沒有合適的類型或系統?等等。今天給大家介紹一篇基于Java的民宿管理…