跟着小白一起学鸿蒙—简析 OpenHarmony 的 WiFi 能力-鸿蒙2.0 wifi
跟着小白一起学鸿蒙—简析 OpenHarmony 的 WiFi 能力
作者:王石 2022-11-22 15:15:46系统 OpenHarmony Wi-Fi(发音: /ˈwaɪfaɪ/),又称“无线网路”,是Wi-Fi联盟的商标,一个基于IEEE 802.11标准的无线局域网技术。想了解更多关于开源的内容,请访问:
51CTO开源基础软件社区
https://ost.51cto.com
WiFi功能是无线短距的重要能力,在工作、生活中我们已经离不开WiFi设备了,比如家里的路由,手机,各种智能家居设备。Wi-Fi(发音: /ˈwaɪfaɪ/),又称“无线网路”,是Wi-Fi联盟的商标,一个基于IEEE 802.11标准的无线局域网技术。“Wi-Fi”常被写成“WiFi”或“Wifi”,但是这些写法并没有被Wi-Fi联盟认可。1999年,几家富有远见的公司联合起来组成了一个全球性非营利性协会——无线以太网兼容性联盟(Wireless Ethernet Compatibility Alliance, WECA),其目标是使用一种新的无线网络技术,无论品牌如何,都能带来最佳的用户体验。在2000年,该小组采用术语“Wi-Fi”作为其技术工作的专有名称,并宣布了正式名称:Wi-Fi Alliance。Wi-Fi以IEEE 802.11为标准,Wi-Fi联盟在2018年发起“Generational Wi-Fi”行销计画,基于主要的Wi-Fi技术(PHY)版本,引入了更容易让消费者了解的“Wi-Fi世代名称”(Wi-Fi generation names),格式为“Wi-Fi”后跟一个整数,并鼓励采用世代名称作为行业术语。
第一代,以IEEE 802.11原始标准为准,工作频段为2.4GHz,最高速率半双工2 Mbit/s。第二代,以IEEE 802.11b为准,工作频段为2.4GHz,最高速率半双工11 Mbit/s,认证计画为“Wi-Fi CERTIFIED b”。第三代,以IEEE 802.11a为准,工作频段为5GHz,最高速率54 Mbit/s,认证计画为“Wi-Fi CERTIFIED a”。基于IEEE_802.11g、2.4GHz工作频段、最高速率半双工54 Mbit/s,认证计画为“Wi-Fi CERTIFIED g”。第四代,以IEEE 802.11n为准,世代名称为“Wi-Fi 4”,信道宽度20MHz、40MHz,工作频段为2.4GHz和5GHz,最高4条空间流,最大副载波调制64-QAM,最高速率半双工600 Mbit/s,认证计画为“Wi-Fi CERTIFIED n”。第五代,以IEEE 802.11ac为准,世代名称为“Wi-Fi 5”,信道宽度20MHz、40MHz、80MHz、80+ 80MHz、160MHz,工作频段为5GHz,最高8条空间流,最大副载波调制256-QAM,最高速率半双工6.9 Gbit/s,认证计画为“Wi-Fi CERTIFIED ac”。第六代,以IEEE 802.11ax为准,世代名称为“Wi-Fi 6”,信道宽度20MHz、40MHz、80MHz、80+ 80MHz、160MHz,工作频段为2.4GHz和5GHz,最高8条空间流,最大副载波调制1024-QAM,最高速率半双工[29][30]9.6 Gbit/s,认证计画为“Wi-Fi CERTIFIED 6”。注意:Wi-Fi与IEEE 802.11常常被混淆,两者的区别可以概述为IEEE 802.11是一种无线局域网标准,而Wi-Fi是IEEE 802.11标准的一种实现。
概述
在开源鸿蒙的源码里和系统功能相关的部分大多都放在foundation这个文件夹里,而通讯相关的部分则是在communication这个文件夹内。我们本篇要分析的WiFi功能就是在foundation/communication/wifi路径下,具体目录结构如下:
.├── dhcp//dhcp: 动态主机设置协议(Dynamic Host Configuration Protocol)是IP网络的网络协议,在应用层使用UDP协议工作,主要用途为:1,自动分配IP地址;2,对所有电脑做中央管理;│ ├── BUILD.gn│ ├── bundle.json│ ├── dhcp.gni│ ├── dhcp_lite.gni│ ├── interfaces│ ├── services│ └── test└── wifi//wifi实现部分├── application├── BUILD.gn├── bundle.json├── frameworks├── hisysevent.yaml├── interfaces├── services├── test├── utils├── wifi.gni└── wifi_lite.gni在开源鸿蒙的源码里还有两个和wifi相关的目录,都是针对小型开发板的。
wifi_aware (仅支持Hi3861开发板).├── BUILD.gn├── bundle.json├── frameworks│ └── source├── hals│ └── hal_wifiaware.h├── interfaces│ └── kits├── LICENSE├── README.md└── README_zh.md
wifi_lite (wifi-iot开发板).├── BUILD.gn├── bundle.json├── interfaces│ ├── README.md│ └── wifiservice├── LICENSE├── README.md└── README_zh.md
架构简析
根据目录结构和内部文件及编译框架总结架构如下:应用层:提供WiFi Direct接口使用DEMO,使用@ohos.wifi接口提供的p2p相关接口,实现一个WLAN直连的Setting界面。接口层:提供两个dts接口(@ohos.wifi.d.ts, @ohos.wifiext.d.ts)和NativeC接口(软总线会使用这些接口实现分布式通信能力)。框架层:分两个子层,NAPI框架实现层,为wifi,wifiext和wifi_native_js,其中wifi_native_js已经被淘汰;Native SDK层,实现所有js层代码接口适配并调用innerapi的实现;WiFi接口实现层,使用IPC架构同WiFi服务层通信(WIFI_DEVICE_ABILITY_ID:1120;WIFI_HOTSPOT_ABILITY_ID:1121;WIFI_P2P_ABILITY_ID:1123;WIFI_SCAN_ABILITY_ID:1124)将从NAPI收到的命令,或者别的子系统收到的命令经由IPC架构发送给服务层,并注册服务层observer,收听由服务层上报的事件。服务层:分三个子部分,能力部分,管理部分,硬件部分,分别如下:能力集部分,对上提供应用接口支持,采用systemability能力框架,分以下几个功能模块:wifi_standard_sa_profile: wifi能力配置(1120:wifi_device_ability;1121:wifi_hotspot_ability;1123:wifi_p2p_ability;1124:wifi_scan_ability)wifi_device_ability: wifi设备能力,如开关wifi,配置(ssid,加密方式等),连接情况。wifi_hotspot_ability: wifi热点能力,如wifi热点配置,开关,设置黑名单,电源模式。wifi_p2p_ability: p2p能力,如wifi直连的开关,设备发现,创建群组,p2p连接,获取连接信息,状态,hid2d。wifi_scan_ability: 扫描能力,如wifi扫描的开关。管理部分,对上对接能力集的功能,对下调用idl_client接口调用硬件能力,分以下几个功能模块:wifi_manager_service.so: 提供service的管理能力,管理serviceDllMap,通过load对应的so提供sta,ap(根据wifi_feature_with_ap_num配置决定),p2p,scan服务实例获取接口; 同时提供wifi服务的管理能力,比如权限,wifi的配置,network supplier。wifi_common_service.so: 提供wifi芯片的能力配置,主要服务是ChipCapability(IsSupportDbdc, Csa, RadarDetect, DfsChannel, IndoorChannel),通过idlclient请求驱动数据。wifi_sta_service: wifi station(无线客户端)服务,对接实现sta能力集能力。wifi_ap_service: wifi ap(无线接入点)服务,对接实现ap能力集能力。wifi_p2p_service: wifi p2p(无线直连)服务,对接实现p2p能力集能力。wifi_scan_service: wifi扫描服务,对接实现扫描能力集能力。wifi_idl_client: wifi硬件适配层客户端,提供cRPC调用wifi设备的硬件抽象层。wifi_toolkit: wifi工具簇,包括ifconfig,iptools,arp,dhcp,mac,rawsocket,ipv4,ipv6,wifisetting,wificonfig等工具。硬件抽象部分,分以下功能模块:wifi_hal_service: 独立进程,wifi硬件抽象服务,采用cRPC架构,集成wpa_supplicant-2.9的标准能力,调用hdi接口。硬件驱动:HDF:功能简析
NAPI和cadapterWiFi系统能力WiFi服务idl_clientWiFiHalwpa_supplicantIFACE跨进程,IPC调用通过samgr获取服务Proxy对象链接对应服务so,c++调用链接对应的idlso,c接口调用cRPC调用链接wap_supplicant.so, c接口调用udpNAPI和cadapterWiFi系统能力WiFi服务idl_clientWiFiHalwpa_supplicantIFACE。
WiFi框架能力(NAPI接口,cadapter接口及wifi_sdk)NAPI接口为应用层(ets,js)提供接口,调用WiFi系统层能力。cadapter实现c接口,为其他能力提供接口(比如软总线),调用WiFi系统能力。wifi_sdk封装了系统能力调用的框架,通过proxy方式访问具体的WiFi系统能力,具体如下:#define WIFI_DEVICE_ABILITY_ID 1120。#define WIFI_HOTSPOT_ABILITY_ID 1121。#define WIFI_P2P_ABILITY_ID 1123。#define WIFI_SCAN_ABILITY_ID 1124。WiFi系统能力WiFi系统能力通过继承SystemAbility,实现WiFi服务能力并实现IPC进行通信(服务端实现stub实现)。WiFi系统能力均为so动态库,被SystemAbility同一管理,包括:wifi_device_ability,wifi_hotspot_ability,wifi_p2p_ability,wifi_scan_ability。WiFI系统服务通过调用WiFi服务实现功能。WiFi服务WiFi服务层包括:wifi_scan_service,wifi_sta_service 和 wifi_ap_service,wifi_p2p_service(后两个针对标准设备)。主服务为wifi_manager_service,内部管理一张dll表,定义对应的WiFi服务,通过WiFi能力层调用,加载不同dll,获得不同服务。WiFi服务层主要通过idl_client同WiFi硬件抽象层进行数据交互。WiFi硬件抽象WiFi硬件抽象层并不是完全意义的硬件抽象,即是WiFi协议层(wap_supplicant-2.9)之上的适配层,又基于HDF之上使用HDI接口调用驱动能力。WiFi硬件抽象层是独立的进程,通过cRpc和WiFi服务层交互。在WiFi硬件层还有etc配置目录,内部存储WiFi的默认配置。目前WiFi主要用的HDI部分集中在ap相关功能,如:WifiSetPowerModel,GetValidFrequenciesForBand。WiFi协议层(wap_supplicant-2.9)参考链接:https://w1.fi/wpa_supplicant/。实现WiFi接入和WiFi热点的协议栈。实现基础的驱动(nl80211)。总结
WiFi服务的结构和之前讲的蓝牙结构略有不同,为了提供更灵活的能力,WiFi实现了更多的SystemAbility,同时通过idl_client,WiFi服务通过调用wap_supplicant实现具体的WiFi能力。目前开源鸿蒙用的WiFi协议站为wpa_supplicant-2.9,提供WiFi的接入和热点能力。想了解更多关于开源的内容,请访问:
51CTO开源基础软件社区
https://ost.51cto.com。
责任编辑:jianghua 来源:51CTO开源基础软件社区 Wi-Fi鸿蒙推荐系统
电脑公司Ghost Win8.1 x32 精选纯净版2022年7月(免激活) ISO镜像高速下载
语言:中文版系统大小:2.98GB系统类型:Win8电脑公司Ghost Win8.1x32位纯净版V2022年7月版本集成了自2022流行的各种硬件驱动,首次进入系统即全部硬件已安装完毕。电脑公司Ghost Win8.1x32位纯净版具有更安全、更稳定、更人性化等特点。集成最常用的装机软件,精心挑选的系统维护工具,加上绿茶独有
微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载
语言:中文版系统大小:5.13GB系统类型:Win11微软Win11原版22H2下载_Win11GHOST 免 激活密钥 22H2正式版64位免费下载系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Win11 64位 Office办公版(免费)优化 1、保留 Edge浏览器。 2、隐藏“操作中心”托盘图标。 3、保留常用组件(微软商店,计算器,图片查看器等)。 5、关闭天气资讯。
Win11 21H2 官方正式版下载_Win11 21H2最新系统免激活下载
语言:中文版系统大小:4.75GB系统类型:Win11Ghost Win11 21H2是微软在系统方面技术积累雄厚深耕多年,Ghost Win11 21H2系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。Ghost Win11 21H2是微软最新发布的KB5019961补丁升级而来的最新版的21H2系统,以Windows 11 21H2 22000 1219 专业版为基础进行优化,保持原汁原味,系统流畅稳定,保留常用组件
windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载
语言:中文版系统大小:5.31GB系统类型:Win11windows11中文版镜像 微软win11正式版简体中文GHOST ISO镜像64位系统下载,微软win11发布快大半年了,其中做了很多次补丁和修复一些BUG,比之前的版本有一些功能上的调整,目前已经升级到最新版本的镜像系统,并且优化了自动激活,永久使用。windows11中文版镜像国内镜像下载地址微软windows11正式版镜像 介绍:1、对函数算法进行了一定程度的简化和优化
微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载
语言:中文版系统大小:5.31GB系统类型:Win11微软windows11正式版GHOST ISO镜像 win11下载 国内最新版渠道下载,微软2022年正式推出了win11系统,很多人迫不及待的要体验,本站提供了最新版的微软Windows11正式版系统下载,微软windows11正式版镜像 是一款功能超级强大的装机系统,是微软方面全新推出的装机系统,这款系统可以通过pe直接的完成安装,对此系统感兴趣,想要使用的用户们就快来下载
微软windows11系统下载 微软原版 Ghost win11 X64 正式版ISO镜像文件
语言:中文版系统大小:0MB系统类型:Win11微软Ghost win11 正式版镜像文件是一款由微软方面推出的优秀全新装机系统,这款系统的新功能非常多,用户们能够在这里体验到最富有人性化的设计等,且全新的柔软界面,看起来非常的舒服~微软Ghost win11 正式版镜像文件介绍:1、与各种硬件设备兼容。 更好地完成用户安装并有效地使用。2、稳定使用蓝屏,系统不再兼容,更能享受无缝的系统服务。3、为
雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载
语言:中文版系统大小:4.75GB系统类型:雨林木风Windows11专业版 Ghost Win11官方正式版 (22H2) 系统下载在系统方面技术积累雄厚深耕多年,打造了国内重装系统行业的雨林木风品牌,其系统口碑得到许多人认可,积累了广大的用户群体,雨林木风是一款稳定流畅的系统,一直以来都以用户为中心,是由雨林木风团队推出的Windows11国内镜像版,基于国内用户的习惯,做了系统性能的优化,采用了新的系统
雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO
语言:中文版系统大小:5.91GB系统类型:Win7雨林木风win7旗舰版系统下载 win7 32位旗舰版 GHOST 免激活镜像ISO在系统方面技术积累雄厚深耕多年,加固了系统安全策略,雨林木风win7旗舰版系统在家用办公上跑分表现都是非常优秀,完美的兼容各种硬件和软件,运行环境安全可靠稳定。win7 32位旗舰装机版 v2019 05能够帮助用户们进行系统的一键安装、快速装机等,系统中的内容全面,能够为广大用户
相关文章
- 笔记本屏幕暗,本文教您怎样处理
- Win10打开控制台提示“管理员已停止mmc.exe”怎样处理?
- Win10电脑的perfmon.exe是什么?perfmon.exe可以禁用吗?
- win7桌面图标不见了怎样办,本文教您处理win7桌面
- win7系统怎么修改启动菜单
- 雨林木风win7纯净版32位最新系统推荐
- 安装win10时windows只能安装到GPT磁盘怎么回事【详解】
- WinXP打开添加/删除程序面板显示空白怎样办?
- 火狐 Firefox 浏览器 113.0.1 发布:修复 Windows 11 桌面窗口管理器 (DWM) 错误及颜色显示 Bug
- 华硕v556uq怎么装win8 华硕v556uq装win8方法
- win8.1系统下怎么把公用网络改成专用网络【详解】
- 修复win7系统最好的软件
- win11怎么控制联网 win11控制联网方法【详解】
- win7系统电脑关机很慢卡在关机界面如何win7关机卡解决
- xp系统之家官网专业纯净版最新系统推荐
- 运用微信人家建设微信微网站的图文步骤_微信
- Win10专业版怎么让电脑不休眠?Win10专业版让电脑不休眠的方法
- 系统之家win8 64位系统旗舰版系统下载
热门系统
- 1华硕笔记本&台式机专用系统 GhostWin7 32位正式旗舰版2018年8月(32位)ISO镜像下载
- 2深度技术 Windows 10 x86 企业版 电脑城装机版2018年10月(32位) ISO镜像免费下载
- 3雨林木风 Ghost Win7 SP1 装机版 2020年4月(32位) 提供下载
- 4电脑公司 装机专用系统Windows10 x86喜迎国庆 企业版2020年10月(32位) ISO镜像快速下载
- 5深度技术 Windows 10 x86 企业版 六一节 电脑城装机版 版本1903 2022年6月(32位) ISO镜像免费下载
- 6深度技术 Windows 10 x64 企业版 电脑城装机版2021年1月(64位) 高速下载
- 7新萝卜家园电脑城专用系统 Windows10 x64 企业版2019年10月(64位) ISO镜像免费下载
- 8新萝卜家园 GhostWin7 SP1 最新电脑城极速装机版2018年8月(32位)ISO镜像下载
- 9电脑公司Ghost Win8.1 x32 精选纯净版2022年5月(免激活) ISO镜像高速下载
- 10新萝卜家园Ghost Win8.1 X32 最新纯净版2018年05(自动激活) ISO镜像免费下载
热门文章
常用系统
- 1笔记本系统Ghost Win8.1 (X64) 新春特别 全新纯净版2021年2月(永久激活) 提供下载
- 2番茄花园 GHOST XP SP3 专业优化版 V2016.07 下载
- 3雨林木风系统 Ghost XP SP3 装机版 YN2019年12月 ISO镜像高速下载
- 4雨林木风 Ghost Win10 32位专业版国庆特别版V2021.10
- 5番茄花园Ghost Win10 快速专业版x64 v2023.07最新下载
- 6Win10精简版下载_Win10 64位精简版低内存电脑专用系统2023.01
- 7电脑公司Ghost Win7 Sp1 元旦特别 装机万能版2020年1月(32位) 提供下载
- 8番茄花园 GHOST WIN7 SP1 X86 极速体验版 V2017.09 (32位) 下载
- 9深度技术 WIN7 64位通用安装版 V2023.09 下载
- 10Win10最新专业版(免激活)下载_深度技术 Ghost Win10 64位 永久免费版下载