OpenHarmony开发——移植通信子系统

2024-08-03 22:29:33 浏览数 (2)

通信子系统目前涉及Wi-Fi和蓝牙适配,厂商应当根据芯片自身情况进行适配。

移植指导

Wi-Fi编译文件内容如下:

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

代码语言:ts复制
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”

修改如下:

代码语言:ts复制
   { 
       "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、蓝牙接口。

写在最后

如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙