通信子系统目前涉及 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":[] }
]
},
2.添加适配文件。
在“vendor/MyVendorCompany/MyProduct/config.json”文件中,通常将配置“ohos_board_adapter_dir”配置为 “//vendor/MyVendorCompany/MyProduct/adapter”。
在“ohos_board_adapter_dir”目录下根据上述适配指导中提到的头文件,适配 Wi-Fi、蓝牙接口。
总是有很多小伙伴反馈说:OpenHarmony开发不知道学习哪些技术?不知道需要重点掌握哪些OpenHarmony开发知识点? 为了解决大家这些学习烦恼。在这准备了一份很实用的鸿蒙全栈开发学习路线与学习文档给大家用来跟着学习。
针对一些列因素,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线,包含了鸿蒙开发必掌握的核心知识要点,内容有(OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony驱动开发、系统定制移植……等)技术知识点。

OpenHarmony 开发环境搭建:https://gitcode.com/HarmonyOS_MN/733GH/overview

《OpenHarmony源码解析》
搭建开发环境
系统架构分析
- 构建子系统
- 启动流程
- 子系统
- 分布式任务调度子系统
- 分布式通信子系统
- 驱动子系统
- ……

OpenHarmony 设备开发学习手册:https://gitcode.com/HarmonyOS_MN

鸿蒙开发面试真题(含参考答案):https://gitcode.com/HarmonyOS_MN/733GH/overview


1940

被折叠的 条评论
为什么被折叠?



