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.鸿蒙南向开发方向

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值