成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

跟著小白一起學鴻蒙—簡析 OpenHarmony 的 WiFi 能力

系統 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

架構簡析

  • 根據目錄結構和內部文件及編譯框架總結架構如下:

#盲盒+碼# #跟著小白一起學鴻蒙#簡析OpenHarmony的WiFi能力-開源基礎軟件社區

  • 應用層:提供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。

  1. 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。
  1. WiFi系統能力
  • WiFi系統能力通過繼承SystemAbility,實現WiFi服務能力并實現IPC進行通信(服務端實現stub實現)。
  • WiFi系統能力均為so動態庫,被SystemAbility同一管理,包括:wifi_device_ability,wifi_hotspot_ability,wifi_p2p_ability,wifi_scan_ability。
  • WiFI系統服務通過調用WiFi服務實現功能。
  1. 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硬件抽象層進行數據交互。
  1. WiFi硬件抽象
  • WiFi硬件抽象層并不是完全意義的硬件抽象,即是WiFi協議層(wap_supplicant-2.9)之上的適配層,又基于HDF之上使用HDI接口調用驅動能力。
  • WiFi硬件抽象層是獨立的進程,通過cRpc和WiFi服務層交互。
  • 在WiFi硬件層還有etc配置目錄,內部存儲WiFi的默認配置。
  • 目前WiFi主要用的HDI部分集中在ap相關功能,如:WifiSetPowerModel,GetValidFrequenciesForBand。
  1. WiFi協議層(wap_supplicant-2.9)

總結

  1. WiFi服務的結構和之前講的藍牙結構略有不同,為了提供更靈活的能力,WiFi實現了更多的SystemAbility,同時通過idl_client,WiFi服務通過調用wap_supplicant實現具體的WiFi能力。
  2. 目前開源鴻蒙用的WiFi協議站為wpa_supplicant-2.9,提供WiFi的接入和熱點能力。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 51CTO開源基礎軟件社區
相關推薦

2022-11-28 15:42:39

分布式軟總線鴻蒙

2023-03-30 09:19:54

SELinux安全子系統

2022-12-05 15:02:14

鴻蒙用戶鑒權

2022-11-08 15:43:45

開源鴻蒙藍牙協議棧

2022-08-19 19:02:20

開源鴻蒙操作系統

2023-01-03 15:09:10

鴻蒙常用工具

2022-12-06 15:39:16

鴻蒙主干代碼

2022-12-02 14:20:09

Tetris鴻蒙

2022-11-29 16:35:02

Tetris鴻蒙

2022-10-31 15:35:02

Wi-Fi藍牙子系統

2023-03-30 09:32:27

2022-11-14 17:01:34

游戲開發畫布功能

2023-02-27 16:30:32

鴻蒙開源協議分析

2023-04-04 09:24:11

鴻蒙HiDumper

2022-10-10 14:47:04

藍牙應用鴻蒙

2022-08-29 17:25:19

鴻蒙應用開發

2022-10-09 15:05:50

NAPI框架鴻蒙

2022-10-20 16:40:16

JS應用控制LED鴻蒙

2023-03-15 16:19:03

BinderIPC工具

2022-11-24 14:34:41

Hap程序鴻蒙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩视频一区二区三区 | 亚洲最大成人综合 | 日韩精品视频在线观看一区二区三区 | 国产69精品久久99不卡免费版 | 久久久久久久91 | 欧美久久一区二区 | 欧美一区二区三区,视频 | 91在线视频播放 | 成人精品一区二区三区中文字幕 | 国产成人久久 | 日韩成人av在线 | 一级黄色片美国 | 精品一区二区三区免费毛片 | 一区二区免费高清视频 | 国产精品久久av | 国产精品日韩欧美一区二区三区 | 国产精品嫩草影院精东 | 在线亚洲欧美 | 99re在线视频| 国产成人叼嘿视频在线观看 | 欧美日韩激情 | 交专区videossex农村 | 91久久国产综合久久 | a级片网站 | 99视频入口 | 三级视频在线观看 | 97超碰中文网| 日日骚av | 久久久夜色精品亚洲 | 国产精品中文字幕在线播放 | 精品一二三区 | 国产精品一区视频 | 久久大 | 成人欧美一区二区三区 | 一级片在线视频 | 亚洲精品观看 | 日韩精品一区二区三区中文字幕 | 一区二区三区精品视频 | 中文字幕av在线 | 久久久久午夜 | 春色av|