【移植】OpenHarmony 轻量级系统之通信子系统移植

107 阅读4分钟

通信子系统目前涉及 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 事件回调函数。

DD一下:欢迎大家关注工粽号<程序猿百晓生>,可以了解到以下知识点。

`欢迎大家关注工粽号<程序猿百晓生>,可以了解到以下知识点。`
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案) 
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......

表 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、蓝牙接口。